packages feed

control-monad-free 0.5 → 0.5.0.1

raw patch · 3 files changed

+12/−7 lines, 3 filesdep +deepseqdep ~basedep ~mtldep ~transformersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: deepseq

Dependency ranges changed: base, mtl, transformers

API changes (from Hackage documentation)

- Control.Monad.Free: instance [overlap ok] (Functor f) => Functor (Free f)
- Control.Monad.Free: instance [overlap ok] (Functor f) => Monad (Free f)
- Control.Monad.Free: instance [overlap ok] (Functor f) => MonadFree f (Free f)
- Control.Monad.Free: instance [overlap ok] (Functor f) => MonadTrans (FreeT f)
- Control.Monad.Free: instance [overlap ok] (Traversable f) => Traversable (Free f)
- Control.Monad.Free.Improve: instance [overlap ok] (Functor f) => MonadFree f (C (Free f))
- Control.Monad.Free.Improve: instance [overlap ok] (MonadPlus mu) => MonadPlus (C mu)
+ Control.Monad.Free: instance [overlap ok] (NFData a, NFData (f (Free f a))) => NFData (Free f a)
+ Control.Monad.Free: instance [overlap ok] Functor f => Functor (Free f)
+ Control.Monad.Free: instance [overlap ok] Functor f => Monad (Free f)
+ Control.Monad.Free: instance [overlap ok] Functor f => MonadFree f (Free f)
+ Control.Monad.Free: instance [overlap ok] Functor f => MonadTrans (FreeT f)
+ Control.Monad.Free: instance [overlap ok] Traversable f => Traversable (Free f)
+ Control.Monad.Free.Improve: instance [overlap ok] Functor f => MonadFree f (C (Free f))
+ Control.Monad.Free.Improve: instance [overlap ok] MonadPlus mu => MonadPlus (C mu)
- Control.Monad.Free: Impure :: (f (Free f a)) -> Free f a
+ Control.Monad.Free: Impure :: !f (Free f a) -> Free f a
- Control.Monad.Free: foldFree :: (Functor f) => (a -> b) -> (f b -> b) -> Free f a -> b
+ Control.Monad.Free: foldFree :: Functor f => (a -> b) -> (f b -> b) -> Free f a -> b
- Control.Monad.Free: free :: (MonadFree f m) => m a -> m (Either a (f (m a)))
+ Control.Monad.Free: free :: MonadFree f m => m a -> m (Either a (f (m a)))
- Control.Monad.Free: wrap :: (MonadFree f m) => f (m a) -> m a
+ Control.Monad.Free: wrap :: MonadFree f m => f (m a) -> m a
- Control.Monad.Free.Improve: improve :: (Monad mu) => C mu a -> mu a
+ Control.Monad.Free.Improve: improve :: Monad mu => C mu a -> mu a
- Control.Monad.Free.Improve: rep :: (Monad mu) => mu a -> C mu a
+ Control.Monad.Free.Improve: rep :: Monad mu => mu a -> C mu a

Files

Control/Monad/Free.hs view
@@ -18,8 +18,9 @@   ) where  import Control.Applicative+import Control.DeepSeq import Control.Monad-import Control.Monad.Trans+import Control.Monad.Trans.Class import Data.Foldable import Data.Monoid import Data.Traversable as T@@ -34,7 +35,7 @@     free = evalFree (Pure . Left) (Pure . Right)     wrap = Impure -data Free f a = Impure (f (Free f a)) | Pure a+data Free f a = Impure !(f (Free f a)) | Pure a deriving instance (Eq a, Eq (f(Free f a))) => Eq (Free f a) deriving instance (Ord a, Ord (f(Free f a))) => Ord (Free f a) deriving instance (Show a, Show (f(Free f a))) => Show (Free f a)@@ -55,6 +56,10 @@     return          = Pure     Pure a    >>= f = f a     Impure fa >>= f = Impure (fmap (>>= f) fa)++instance (NFData a, NFData (f(Free f a))) => NFData (Free f a) where+  rnf (Pure a) = rnf a `seq` ()+  rnf (Impure fa) = rnf fa `seq` ()  isPure Pure{} = True; isPure _ = False isImpure = not . isPure
Control/Monad/Free/Zip.hs view
@@ -2,7 +2,7 @@ module Control.Monad.Free.Zip (zipFree, zipFree_) where  import Control.Monad.Free-import Control.Monad.Trans+import Control.Monad.Trans.Class #ifdef TRANSFORMERS import Control.Monad.Trans.State #else
control-monad-free.cabal view
@@ -1,6 +1,6 @@ name: control-monad-free-version: 0.5-Cabal-Version:  >= 1.2.3+version: 0.5.0.1+Cabal-Version:  >= 1.6 build-type: Simple license: PublicDomain author: Luke Palmer, Pepe Iborra@@ -23,9 +23,9 @@  Library   buildable: True-  build-depends: base >= 2 && < 5+  build-depends: base >= 2 && < 5, deepseq   if flag(transformers)-     build-depends: transformers+     build-depends: transformers == 0.2.*      cpp-options: -DTRANSFORMERS   else      build-depends: mtl