packages feed

control-monad-free 0.6.1 → 0.6.2

raw patch · 5 files changed

+47/−36 lines, 5 filesdep −prelude-extrasdep ~basesetup-changedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: prelude-extras

Dependency ranges changed: base

API changes (from Hackage documentation)

- Control.Monad.Free: instance Constructor C1_0Free
- Control.Monad.Free: instance Constructor C1_1Free
- Control.Monad.Free: instance Datatype D1Free
- Control.Monad.Free: instance [overlap ok] (Eq a, Eq1 f) => Eq (Free f a)
- Control.Monad.Free: instance [overlap ok] (Functor f, Foldable f) => Foldable (Free f)
- Control.Monad.Free: instance [overlap ok] (Functor f, Functor a, Monad a) => Applicative (FreeT f a)
- Control.Monad.Free: instance [overlap ok] (Functor f, Functor m) => Functor (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Functor f, Functor m, Monad m, MonadPlus m) => Alternative (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Functor f, Monad m) => Monad (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Functor f, Monad m) => MonadFree f (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Functor f, Monad m, MonadIO m) => MonadIO (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Functor f, Monad m, MonadPlus m) => MonadPlus (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Ord a, Ord1 f) => Ord (Free f a)
- Control.Monad.Free: instance [overlap ok] (Show a, Show1 f) => Show (Free f a)
- Control.Monad.Free: instance [overlap ok] (Traversable m, Traversable f) => Foldable (FreeT f m)
- Control.Monad.Free: instance [overlap ok] (Traversable m, Traversable f) => Traversable (FreeT f m)
- Control.Monad.Free: instance [overlap ok] Eq1 f => Eq1 (Free f)
- Control.Monad.Free: instance [overlap ok] Functor f => Applicative (Free f)
- 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] Generic (Free f a)
- Control.Monad.Free: instance [overlap ok] Ord1 f => Ord1 (Free f)
- Control.Monad.Free: instance [overlap ok] Traversable f => Traversable (Free f)
- Control.Monad.Free: instance [overlap ok] Typeable Free
- Control.Monad.Free: unFreeT :: FreeT f m a -> m (Either a (f (FreeT f m a)))
- Control.Monad.Free.Improve: instance [overlap ok] (Monad m, Functor f) => MonadFree f (C (FreeT f m))
- Control.Monad.Free.Improve: instance [overlap ok] Applicative (C mu)
- Control.Monad.Free.Improve: instance [overlap ok] Functor (C mu)
- Control.Monad.Free.Improve: instance [overlap ok] Functor f => MonadFree f (C (Free f))
- Control.Monad.Free.Improve: instance [overlap ok] Monad (C mu)
- Control.Monad.Free.Improve: instance [overlap ok] MonadPlus mu => Alternative (C mu)
- Control.Monad.Free.Improve: instance [overlap ok] MonadPlus mu => MonadPlus (C mu)
- Control.Monad.Free.Improve: instance [overlap ok] MonadTrans C
+ Control.Monad.Free: (<$!>) :: Monad m => (a -> b) -> m a -> m b
+ Control.Monad.Free: (<$) :: Functor f => a -> f b -> f a
+ Control.Monad.Free: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
+ Control.Monad.Free: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ Control.Monad.Free: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
+ Control.Monad.Free: (>>) :: Monad m => m a -> m b -> m b
+ Control.Monad.Free: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ Control.Monad.Free: [unFreeT] :: FreeT (f :: Type -> Type) (m :: Type -> Type) a -> m (Either a (f (FreeT f m a)))
+ Control.Monad.Free: ap :: Monad m => m (a -> b) -> m a -> m b
+ Control.Monad.Free: class Functor (f :: Type -> Type)
+ Control.Monad.Free: class Applicative m => Monad (m :: Type -> Type)
+ Control.Monad.Free: class Monad m => MonadFail (m :: Type -> Type)
+ Control.Monad.Free: class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type)
+ Control.Monad.Free: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
+ Control.Monad.Free: fmap :: Functor f => (a -> b) -> f a -> f b
+ Control.Monad.Free: foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+ Control.Monad.Free: foldM_ :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m ()
+ Control.Monad.Free: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
+ Control.Monad.Free: forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
+ Control.Monad.Free: forever :: Applicative f => f a -> f b
+ Control.Monad.Free: guard :: Alternative f => Bool -> f ()
+ Control.Monad.Free: infixl 1 >>
+ Control.Monad.Free: infixl 4 <$!>
+ Control.Monad.Free: infixr 1 <=<
+ Control.Monad.Free: instance (Data.Traversable.Traversable m, Data.Traversable.Traversable f) => Data.Foldable.Foldable (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (Data.Traversable.Traversable m, Data.Traversable.Traversable f) => Data.Traversable.Traversable (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, Data.Foldable.Foldable f) => Data.Foldable.Foldable (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Functor a, GHC.Base.Monad a) => GHC.Base.Applicative (Control.Monad.Free.FreeT f a)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Functor m) => GHC.Base.Functor (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Functor m, GHC.Base.Monad m, GHC.Base.MonadPlus m) => GHC.Base.Alternative (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => Control.Monad.Free.MonadFree f (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => GHC.Base.Monad (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m, Control.Monad.IO.Class.MonadIO m) => Control.Monad.IO.Class.MonadIO (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m, GHC.Base.MonadPlus m) => GHC.Base.MonadPlus (Control.Monad.Free.FreeT f m)
+ Control.Monad.Free: instance (GHC.Classes.Eq a, Data.Functor.Classes.Eq1 f) => GHC.Classes.Eq (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance (GHC.Classes.Ord a, Data.Functor.Classes.Ord1 f) => GHC.Classes.Ord (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance (GHC.Show.Show a, Data.Functor.Classes.Show1 f) => GHC.Show.Show (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance Data.Functor.Classes.Eq1 f => Data.Functor.Classes.Eq1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance Data.Functor.Classes.Ord1 f => Data.Functor.Classes.Ord1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => Control.Monad.Free.MonadFree f (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => Control.Monad.Trans.Class.MonadTrans (Control.Monad.Free.FreeT f)
+ Control.Monad.Free: instance GHC.Base.Functor f => GHC.Base.Applicative (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => GHC.Base.Monad (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Generics.Generic (Control.Monad.Free.Free f a)
+ Control.Monad.Free: join :: Monad m => m (m a) -> m a
+ Control.Monad.Free: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ Control.Monad.Free: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ Control.Monad.Free: liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
+ Control.Monad.Free: liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
+ Control.Monad.Free: liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
+ Control.Monad.Free: mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c])
+ Control.Monad.Free: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
+ Control.Monad.Free: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ Control.Monad.Free: mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a
+ Control.Monad.Free: mplus :: MonadPlus m => m a -> m a -> m a
+ Control.Monad.Free: msum :: (Foldable t, MonadPlus m) => t (m a) -> m a
+ Control.Monad.Free: mzero :: MonadPlus m => m a
+ Control.Monad.Free: replicateM :: Applicative m => Int -> m a -> m [a]
+ Control.Monad.Free: replicateM_ :: Applicative m => Int -> m a -> m ()
+ Control.Monad.Free: return :: Monad m => a -> m a
+ Control.Monad.Free: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
+ Control.Monad.Free: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
+ Control.Monad.Free: unless :: Applicative f => Bool -> f () -> f ()
+ Control.Monad.Free: void :: Functor f => f a -> f ()
+ Control.Monad.Free: when :: Applicative f => Bool -> f () -> f ()
+ Control.Monad.Free: zipWithM :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m [c]
+ Control.Monad.Free: zipWithM_ :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m ()
+ Control.Monad.Free.Improve: instance (GHC.Base.Monad m, GHC.Base.Functor f) => Control.Monad.Free.MonadFree f (Control.Monad.Free.Improve.C (Control.Monad.Free.FreeT f m))
+ Control.Monad.Free.Improve: instance Control.Monad.Trans.Class.MonadTrans Control.Monad.Free.Improve.C
+ Control.Monad.Free.Improve: instance GHC.Base.Applicative (Control.Monad.Free.Improve.C mu)
+ Control.Monad.Free.Improve: instance GHC.Base.Functor (Control.Monad.Free.Improve.C mu)
+ Control.Monad.Free.Improve: instance GHC.Base.Functor f => Control.Monad.Free.MonadFree f (Control.Monad.Free.Improve.C (Control.Monad.Free.Free f))
+ Control.Monad.Free.Improve: instance GHC.Base.Monad (Control.Monad.Free.Improve.C mu)
+ Control.Monad.Free.Improve: instance GHC.Base.MonadPlus mu => GHC.Base.Alternative (Control.Monad.Free.Improve.C mu)
+ Control.Monad.Free.Improve: instance GHC.Base.MonadPlus mu => GHC.Base.MonadPlus (Control.Monad.Free.Improve.C mu)
- Control.Monad.Free: FreeT :: m (Either a (f (FreeT f m a))) -> FreeT f m a
+ Control.Monad.Free: FreeT :: m (Either a (f (FreeT f m a))) -> FreeT (f :: Type -> Type) (m :: Type -> Type) a
- Control.Monad.Free: Impure :: (f (Free f a)) -> Free f a
+ Control.Monad.Free: Impure :: f (Free f a) -> Free (f :: Type -> Type) a
- Control.Monad.Free: Pure :: a -> Free f a
+ Control.Monad.Free: Pure :: a -> Free (f :: Type -> Type) a
- Control.Monad.Free: class (Functor f, Monad m) => MonadFree f m
+ Control.Monad.Free: class (Functor f, Monad m) => MonadFree (f :: Type -> Type) (m :: Type -> Type)
- Control.Monad.Free: data Free f a
+ Control.Monad.Free: data Free (f :: Type -> Type) a
- Control.Monad.Free: induce :: (Functor f, Monad m) => (forall a. f a -> m a) -> Free f a -> m a
+ Control.Monad.Free: induce :: (Functor f, Monad m) => (forall a1. () => f a1 -> m a1) -> Free f a -> m a
- Control.Monad.Free: isImpure :: Free t t1 -> Bool
+ Control.Monad.Free: isImpure :: forall (f :: Type -> Type) a. Free f a -> Bool
- Control.Monad.Free: isPure :: Free t t1 -> Bool
+ Control.Monad.Free: isPure :: forall (f :: Type -> Type) a. Free f a -> Bool
- Control.Monad.Free: liftFree :: (Functor f, Monad m) => (a -> Free f b) -> (a -> FreeT f m b)
+ Control.Monad.Free: liftFree :: forall (f :: Type -> Type) (m :: Type -> Type) a b. (Functor f, Monad m) => (a -> Free f b) -> a -> FreeT f m b
- Control.Monad.Free: mapFreeM' :: (Functor f, Traversable g, Monad m) => (forall a. f a -> m (g a)) -> Free f a -> m (Free g a)
+ Control.Monad.Free: mapFreeM' :: (Functor f, Traversable g, Monad m) => (forall a1. () => f a1 -> m (g a1)) -> Free f a -> m (Free g a)
- Control.Monad.Free: mapFreeT :: (Functor f, Functor m) => (forall a. m a -> m' a) -> FreeT f m a -> FreeT f m' a
+ Control.Monad.Free: mapFreeT :: forall (f :: Type -> Type) m m' a. (Functor f, Functor m) => (forall a1. () => m a1 -> m' a1) -> FreeT f m a -> FreeT f m' a
- Control.Monad.Free: newtype FreeT f m a
+ Control.Monad.Free: newtype FreeT (f :: Type -> Type) (m :: Type -> Type) a
- Control.Monad.Free: trans :: MonadFree f m => Free f a -> m a
+ Control.Monad.Free: trans :: forall (f :: Type -> Type) m a. MonadFree f m => Free f a -> m a
- Control.Monad.Free: trans' :: (Functor f, Monad m) => m (Free f a) -> FreeT f m a
+ Control.Monad.Free: trans' :: forall (f :: Type -> Type) m a. (Functor f, Monad m) => m (Free f a) -> FreeT f m a
- Control.Monad.Free: untrans :: (Traversable f, Monad m) => FreeT f m a -> m (Free f a)
+ Control.Monad.Free: untrans :: forall (f :: Type -> Type) m a. (Traversable f, Monad m) => FreeT f m a -> m (Free f a)
- Control.Monad.Free.Improve: C :: (forall b. (a -> mu b) -> mu b) -> C mu a
+ Control.Monad.Free.Improve: C :: (forall b. () => (a -> mu b) -> mu b) -> C (mu :: Type -> Type) a
- Control.Monad.Free.Improve: newtype C mu a
+ Control.Monad.Free.Improve: newtype C (mu :: Type -> Type) a
- Control.Monad.Free.Zip: zipFree :: (Traversable f, Eq (f ()), Monad m) => (Free f a -> Free f b -> m (Free f c)) -> Free f a -> Free f b -> m (Free f c)
+ Control.Monad.Free.Zip: zipFree :: forall (f :: Type -> Type) m a b c. (Traversable f, Eq (f ()), MonadFail m) => (Free f a -> Free f b -> m (Free f c)) -> Free f a -> Free f b -> m (Free f c)
- Control.Monad.Free.Zip: zipFree_ :: (Traversable f, Eq (f ()), Monad m) => (Free f a -> Free f b -> m ()) -> Free f a -> Free f b -> m ()
+ Control.Monad.Free.Zip: zipFree_ :: forall (f :: Type -> Type) m a b. (Traversable f, Eq (f ()), MonadFail m) => (Free f a -> Free f b -> m ()) -> Free f a -> Free f b -> m ()

Files

Control/Monad/Free.hs view
@@ -4,9 +4,11 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE DeriveGeneric, DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances #-}+{-# OPTIONS -Wno-name-shadowing #-}  module Control.Monad.Free (    module Control.Monad,+   module Control.Monad.Fail, -- * Free Monads    MonadFree(..),    Free(..), isPure, isImpure,@@ -24,14 +26,16 @@   ) where  import Control.Applicative-import Control.Monad+import Control.Monad hiding (fail)+import Control.Monad.Fail import Control.Monad.Trans.Class import Control.Monad.IO.Class+import Data.Bifunctor import Data.Foldable+import Data.Functor.Classes import Data.Traversable as T import Data.Typeable (Typeable) import GHC.Generics (Generic)-import Prelude.Extras  -- | This type class generalizes over encodings of Free Monads. class (Functor f, Monad m) => MonadFree f m where@@ -44,26 +48,29 @@  data Free f a = Impure (f (Free f a)) | Pure a deriving (Generic, Typeable) -instance (Eq1 f) => Eq1 (Free f) where (==#) = (==)-instance (Eq a, Eq1 f) => Eq (Free f a) where- Pure a == Pure b = a == b- Impure a == Impure b = a ==# b- _ == _ = False+instance (Eq1 f) => Eq1 (Free f) where+ liftEq (==) (Pure a) (Pure b) = a == b+ liftEq (==) (Impure a) (Impure b) = liftEq (liftEq (==)) a b+ liftEq _ _ _ = False+instance (Eq a, Eq1 f) => Eq (Free f a) where (==) = eq1 -instance Ord1 f => Ord1 (Free f) where compare1 = compare+instance Ord1 f => Ord1 (Free f) where+  liftCompare _ Impure{} Pure{} = LT+  liftCompare _ Pure{} Impure{} = GT+  liftCompare compare (Pure   a) (Pure   b) = compare a b+  liftCompare compare (Impure a) (Impure b) = liftCompare (liftCompare compare) a b instance (Ord a, Ord1 f) => Ord (Free f a) where-  compare Impure{} Pure{} = LT-  compare Pure{} Impure{} = GT-  compare (Pure   a) (Pure   b) = compare a b-  compare (Impure a) (Impure b) = compare1 a b+  compare = compare1  instance (Show a, Show1 f) => Show (Free f a) where   showsPrec p (Pure   a) = showParen (p > 0) $ ("Pure "   ++) . showsPrec  11 a-  showsPrec p (Impure a) = showParen (p > 0) $ ("Impure " ++) . showsPrec1 11 a+  showsPrec p (Impure a) = showParen (p > 0) $ ("Impure " ++) . liftShowsPrec showsPrec showList 11 a  instance Functor f => Functor (Free f) where-    fmap f (Pure a)    = Pure   (f a)-    fmap f (Impure fa) = Impure (fmap (fmap f) fa)+  fmap f = go where+    go (Pure    a) = Pure (f a)+    go (Impure fa) = Impure (fmap go fa)+  {-# INLINE fmap #-}  instance (Functor f, Foldable f) => Foldable (Free f) where     foldMap f (Pure a)    = f a@@ -84,6 +91,7 @@   Impure f <*> x = Impure (fmap (<*> x) f)  +isPure, isImpure :: Free f a -> Bool isPure Pure{} = True; isPure _ = False isImpure = not . isPure @@ -130,11 +138,8 @@       f' (Left  x) = Left  <$> f x       f' (Right x) = Right <$> (traverse.traverse) f x -editEither l r = either (Left . l) (Right . r)-conj f = FreeT . f . unFreeT- instance (Functor f, Functor m) => Functor (FreeT f m) where-    fmap f = conj $ fmap (editEither f ((fmap.fmap) f))+    fmap f = FreeT . fmap (bimap f ((fmap.fmap) f)) . unFreeT  instance (Functor f, Functor a, Monad a) => Applicative (FreeT f a) where     pure = FreeT . return . Left
Control/Monad/Free/Improve.hs view
@@ -11,7 +11,6 @@ {-# LANGUAGE Rank2Types #-} {-# LANGUAGE FlexibleContexts, FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverlappingInstances #-}  module Control.Monad.Free.Improve (    C(..), rep, improve
Control/Monad/Free/Zip.hs view
@@ -6,20 +6,29 @@ import Control.Monad.Trans.State import Data.Foldable import Data.Traversable as T+import Prelude hiding (fail) -zipFree :: (Traversable f, Eq (f ()), Monad m) => (Free f a -> Free f b -> m (Free f c))-                                                -> Free f a -> Free f b -> m (Free f c)-zipFree f m1@(Impure a) m2@(Impure b)-      | fmap (const ()) a == fmap (const ()) b = Impure `liftM` unsafeZipWithG f a b+zipFree+  :: (Traversable f, Eq (f ()), MonadFail m)+  => (Free f a -> Free f b -> m (Free f c))+  -> Free f a+  -> Free f b+  -> m (Free f c)+zipFree f (Impure a) (Impure b)+  | fmap (const ()) a == fmap (const ()) b = Impure `liftM` unsafeZipWithG f a b zipFree _ _ _ = fail "zipFree: structure mistmatch" -zipFree_ :: (Traversable f, Eq (f ()), Monad m) => (Free f a -> Free f b -> m ()) -> Free f a -> Free f b -> m ()-zipFree_ f m1@(Impure a) m2@(Impure b)-      | fmap (const ()) a == fmap (const ()) b = zipWithM_ f (toList a) (toList b)+zipFree_+  :: (Traversable f, Eq (f ()), MonadFail m)+  => (Free f a -> Free f b -> m ()) -> Free f a -> Free f b -> m ()+zipFree_ f (Impure a) (Impure b)+  | fmap (const ()) a == fmap (const ()) b = zipWithM_ f (toList a) (toList b) zipFree_ _ _ _ = fail "zipFree_: structure mismatch"  -unsafeZipWithG :: (Traversable t1, Traversable t2, Monad m) => (a -> b -> m c) ->  t1 a -> t2 b -> m(t2 c)+unsafeZipWithG+  :: (Traversable t1, Traversable t2, Monad m, MonadFail m)+  => (a -> b -> m c) -> t1 a -> t2 b -> m (t2 c) unsafeZipWithG f t1 t2  = evalStateT (T.mapM zipG' t2) (toList t1)        where zipG' y = do (x:xx) <- get                           put xx
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
control-monad-free.cabal view
@@ -1,6 +1,6 @@ name: control-monad-free-version: 0.6.1-Cabal-Version:  >= 1.6+version: 0.6.2+Cabal-Version:  >= 1.24 build-type: Simple license: PublicDomain author: Luke Palmer, Pepe Iborra@@ -16,8 +16,7 @@   synopsis: Free monads and monad transformers category: Control, Monads-stability: experimental-tested-with: GHC >= 6.8+stability: stable  source-repository head   type:     git@@ -25,8 +24,9 @@  Library   buildable: True-  build-depends: base >= 2 && < 5, transformers, prelude-extras-  extensions:  StandaloneDeriving, Rank2Types, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances, OverlappingInstances+  build-depends: base >= 4.9 && < 5, transformers+  default-language: Haskell2010+  default-extensions:  StandaloneDeriving, Rank2Types, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances   exposed-modules:      Control.Monad.Free      Control.Monad.Free.Zip