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 +7/−2
- Control/Monad/Free/Zip.hs +1/−1
- control-monad-free.cabal +4/−4
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