free 4.12.1 → 4.12.2
raw patch · 13 files changed
+104/−23 lines, 13 filesdep +containersdep +transformers-compatdep ~transformersPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: containers, transformers-compat
Dependency ranges changed: transformers
API changes (from Hackage documentation)
- Control.Alternative.Free: [Alt] :: [AltF f a] -> Alt f a
- Control.Alternative.Free: [Ap] :: f a -> Alt f (a -> b) -> AltF f b
- Control.Alternative.Free: [Pure] :: a -> AltF f a
- Control.Alternative.Free: instance Functor f => Alt (Alt f)
- Control.Alternative.Free: instance Functor f => Alternative (Alt f)
- Control.Alternative.Free: instance Functor f => Applicative (Alt f)
- Control.Alternative.Free: instance Functor f => Applicative (AltF f)
- Control.Alternative.Free: instance Functor f => Apply (Alt f)
- Control.Alternative.Free: instance Functor f => Functor (Alt f)
- Control.Alternative.Free: instance Functor f => Functor (AltF f)
- Control.Alternative.Free: instance Functor f => Monoid (Alt f a)
- Control.Alternative.Free: instance Functor f => Semigroup (Alt f a)
- Control.Alternative.Free.Final: [Alt] :: (forall g. Alternative g => (forall x. f x -> g x) -> g a) -> Alt f a
- Control.Alternative.Free.Final: instance Alt (Alt f)
- Control.Alternative.Free.Final: instance Alternative (Alt f)
- Control.Alternative.Free.Final: instance Applicative (Alt f)
- Control.Alternative.Free.Final: instance Apply (Alt f)
- Control.Alternative.Free.Final: instance Functor (Alt f)
- Control.Alternative.Free.Final: instance Monoid (Alt f a)
- Control.Alternative.Free.Final: instance Semigroup (Alt f a)
- Control.Applicative.Free: [Ap] :: f a -> Ap f (a -> b) -> Ap f b
- Control.Applicative.Free: [Pure] :: a -> Ap f a
- Control.Applicative.Free: instance Applicative (Ap f)
- Control.Applicative.Free: instance Apply (Ap f)
- Control.Applicative.Free: instance Functor (Ap f)
- Control.Applicative.Free.Final: [Ap] :: (forall g. Applicative g => (forall x. f x -> g x) -> g a) -> Ap f a
- Control.Applicative.Free.Final: instance Applicative (Ap f)
- Control.Applicative.Free.Final: instance Apply (Ap f)
- Control.Applicative.Free.Final: instance Functor (Ap f)
- Control.Applicative.Trans.Free: [ApT] :: g (ApF f g a) -> ApT f g a
- Control.Applicative.Trans.Free: [Ap] :: f a -> ApT f g (a -> b) -> ApF f g b
- Control.Applicative.Trans.Free: [Pure] :: a -> ApF f g a
- Control.Applicative.Trans.Free: instance Alternative g => Alternative (ApT f g)
- Control.Applicative.Trans.Free: instance Applicative g => Applicative (ApF f g)
- Control.Applicative.Trans.Free: instance Applicative g => Applicative (ApT f g)
- Control.Applicative.Trans.Free: instance Applicative g => Apply (ApF f g)
- Control.Applicative.Trans.Free: instance Applicative g => Apply (ApT f g)
- Control.Applicative.Trans.Free: instance Functor g => Functor (ApF f g)
- Control.Applicative.Trans.Free: instance Functor g => Functor (ApT f g)
- Control.Comonad.Cofree: [:<] :: a -> f (Cofree f a) -> Cofree f a
- Control.Comonad.Cofree: instance (Alternative f, MonadZip f) => MonadZip (Cofree f)
- Control.Comonad.Cofree: instance (Eq (f (Cofree f a)), Eq a) => Eq (Cofree f a)
- Control.Comonad.Cofree: instance (Functor f, Eq1 f) => Eq1 (Cofree f)
- Control.Comonad.Cofree: instance (Functor f, Ord1 f) => Ord1 (Cofree f)
- Control.Comonad.Cofree: instance (Functor f, Read1 f) => Read1 (Cofree f)
- Control.Comonad.Cofree: instance (Functor f, Show1 f) => Show1 (Cofree f)
- Control.Comonad.Cofree: instance (Ord (f (Cofree f a)), Ord a) => Ord (Cofree f a)
- Control.Comonad.Cofree: instance (Read (f (Cofree f a)), Read a) => Read (Cofree f a)
- Control.Comonad.Cofree: instance (Show (f (Cofree f a)), Show a) => Show (Cofree f a)
- Control.Comonad.Cofree: instance Alternative f => Applicative (Cofree f)
- Control.Comonad.Cofree: instance Alternative f => Monad (Cofree f)
- Control.Comonad.Cofree: instance Apply f => Apply (Cofree f)
- Control.Comonad.Cofree: instance ComonadApply f => ComonadApply (Cofree f)
- Control.Comonad.Cofree: instance ComonadEnv e w => ComonadEnv e (Cofree w)
- Control.Comonad.Cofree: instance ComonadStore s w => ComonadStore s (Cofree w)
- Control.Comonad.Cofree: instance ComonadTraced m w => ComonadTraced m (Cofree w)
- Control.Comonad.Cofree: instance ComonadTrans Cofree
- Control.Comonad.Cofree: instance Distributive f => Distributive (Cofree f)
- Control.Comonad.Cofree: instance Foldable f => Foldable (Cofree f)
- Control.Comonad.Cofree: instance Foldable1 f => Foldable1 (Cofree f)
- Control.Comonad.Cofree: instance Functor f => Comonad (Cofree f)
- Control.Comonad.Cofree: instance Functor f => ComonadCofree f (Cofree f)
- Control.Comonad.Cofree: instance Functor f => Extend (Cofree f)
- Control.Comonad.Cofree: instance Functor f => Functor (Cofree f)
- Control.Comonad.Cofree: instance Traversable f => Traversable (Cofree f)
- Control.Comonad.Cofree: instance Traversable1 f => Traversable1 (Cofree f)
- Control.Comonad.Cofree.Class: instance (ComonadCofree f w, Semigroup m, Monoid m) => ComonadCofree f (TracedT m w)
- Control.Comonad.Cofree.Class: instance ComonadCofree (Const b) ((,) b)
- Control.Comonad.Cofree.Class: instance ComonadCofree Maybe NonEmpty
- Control.Comonad.Cofree.Class: instance ComonadCofree f w => ComonadCofree f (EnvT e w)
- Control.Comonad.Cofree.Class: instance ComonadCofree f w => ComonadCofree f (IdentityT w)
- Control.Comonad.Cofree.Class: instance ComonadCofree f w => ComonadCofree f (StoreT s w)
- Control.Comonad.Trans.Cofree: [:<] :: a -> f b -> CofreeF f a b
- Control.Comonad.Trans.Cofree: [CofreeT] :: w (CofreeF f a (CofreeT f w a)) -> CofreeT f w a
- Control.Comonad.Trans.Cofree: instance (Alternative f, Applicative w) => Applicative (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Alternative f, Monad w) => Monad (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Alternative f, MonadZip f, MonadZip m) => MonadZip (CofreeT f m)
- Control.Comonad.Trans.Cofree: instance (Eq a, Eq (f b)) => Eq (CofreeF f a b)
- Control.Comonad.Trans.Cofree: instance (Foldable f, Foldable w) => Foldable (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Functor f, Comonad w) => Comonad (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Functor f, Comonad w) => ComonadCofree f (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Functor f, Functor w) => Functor (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Ord a, Ord (f b)) => Ord (CofreeF f a b)
- Control.Comonad.Trans.Cofree: instance (Read a, Read (f b)) => Read (CofreeF f a b)
- Control.Comonad.Trans.Cofree: instance (Show a, Show (f b)) => Show (CofreeF f a b)
- Control.Comonad.Trans.Cofree: instance (Traversable f, Traversable w) => Traversable (CofreeT f w)
- Control.Comonad.Trans.Cofree: instance (Typeable f, Typeable a, Typeable b, Data a, Data (f b), Data b) => Data (CofreeF f a b)
- Control.Comonad.Trans.Cofree: instance (Typeable f, Typeable w, Typeable a, Data (w (CofreeF f a (CofreeT f w a))), Data a) => Data (CofreeT f w a)
- Control.Comonad.Trans.Cofree: instance Alternative f => MonadTrans (CofreeT f)
- Control.Comonad.Trans.Cofree: instance Eq (w (CofreeF f a (CofreeT f w a))) => Eq (CofreeT f w a)
- Control.Comonad.Trans.Cofree: instance Foldable f => Bifoldable (CofreeF f)
- Control.Comonad.Trans.Cofree: instance Foldable f => Foldable (CofreeF f a)
- Control.Comonad.Trans.Cofree: instance Functor f => Bifunctor (CofreeF f)
- Control.Comonad.Trans.Cofree: instance Functor f => ComonadTrans (CofreeT f)
- Control.Comonad.Trans.Cofree: instance Functor f => Functor (CofreeF f a)
- Control.Comonad.Trans.Cofree: instance Ord (w (CofreeF f a (CofreeT f w a))) => Ord (CofreeT f w a)
- Control.Comonad.Trans.Cofree: instance Read (w (CofreeF f a (CofreeT f w a))) => Read (CofreeT f w a)
- Control.Comonad.Trans.Cofree: instance Show (w (CofreeF f a (CofreeT f w a))) => Show (CofreeT f w a)
- Control.Comonad.Trans.Cofree: instance Traversable f => Bitraversable (CofreeF f)
- Control.Comonad.Trans.Cofree: instance Traversable f => Traversable (CofreeF f a)
- Control.Comonad.Trans.Coiter: [CoiterT] :: w (a, CoiterT w a) -> CoiterT w a
- Control.Comonad.Trans.Coiter: instance (Functor w, Eq1 w) => Eq1 (CoiterT w)
- Control.Comonad.Trans.Coiter: instance (Functor w, Ord1 w) => Ord1 (CoiterT w)
- Control.Comonad.Trans.Coiter: instance (Functor w, Read1 w) => Read1 (CoiterT w)
- Control.Comonad.Trans.Coiter: instance (Functor w, Show1 w) => Show1 (CoiterT w)
- Control.Comonad.Trans.Coiter: instance (Typeable w, Typeable a, Data (w (a, CoiterT w a)), Data a) => Data (CoiterT w a)
- Control.Comonad.Trans.Coiter: instance Comonad w => Comonad (CoiterT w)
- Control.Comonad.Trans.Coiter: instance Comonad w => ComonadCofree Identity (CoiterT w)
- Control.Comonad.Trans.Coiter: instance ComonadEnv e w => ComonadEnv e (CoiterT w)
- Control.Comonad.Trans.Coiter: instance ComonadHoist CoiterT
- Control.Comonad.Trans.Coiter: instance ComonadStore s w => ComonadStore s (CoiterT w)
- Control.Comonad.Trans.Coiter: instance ComonadTraced m w => ComonadTraced m (CoiterT w)
- Control.Comonad.Trans.Coiter: instance ComonadTrans CoiterT
- Control.Comonad.Trans.Coiter: instance Eq (w (a, CoiterT w a)) => Eq (CoiterT w a)
- Control.Comonad.Trans.Coiter: instance Foldable w => Foldable (CoiterT w)
- Control.Comonad.Trans.Coiter: instance Functor w => Functor (CoiterT w)
- Control.Comonad.Trans.Coiter: instance Ord (w (a, CoiterT w a)) => Ord (CoiterT w a)
- Control.Comonad.Trans.Coiter: instance Read (w (a, CoiterT w a)) => Read (CoiterT w a)
- Control.Comonad.Trans.Coiter: instance Show (w (a, CoiterT w a)) => Show (CoiterT w a)
- Control.Comonad.Trans.Coiter: instance Traversable w => Traversable (CoiterT w)
- Control.Monad.Free: [Free] :: (f (Free f a)) -> Free f a
- Control.Monad.Free: [Pure] :: a -> Free f a
- Control.Monad.Free: instance (Eq (f (Free f a)), Eq a) => Eq (Free f a)
- Control.Monad.Free: instance (Functor f, Eq1 f) => Eq1 (Free f)
- Control.Monad.Free: instance (Functor f, Ord1 f) => Ord1 (Free f)
- Control.Monad.Free: instance (Functor f, Read1 f) => Read1 (Free f)
- Control.Monad.Free: instance (Functor f, Show1 f) => Show1 (Free f)
- Control.Monad.Free: instance (Functor m, MonadCont m) => MonadCont (Free m)
- Control.Monad.Free: instance (Functor m, MonadError e m) => MonadError e (Free m)
- Control.Monad.Free: instance (Functor m, MonadReader e m) => MonadReader e (Free m)
- Control.Monad.Free: instance (Functor m, MonadState s m) => MonadState s (Free m)
- Control.Monad.Free: instance (Functor m, MonadWriter e m) => MonadWriter e (Free m)
- Control.Monad.Free: instance (Functor v, MonadPlus v) => MonadPlus (Free v)
- Control.Monad.Free: instance (Ord (f (Free f a)), Ord a) => Ord (Free f a)
- Control.Monad.Free: instance (Read (f (Free f a)), Read a) => Read (Free f a)
- Control.Monad.Free: instance (Show (f (Free f a)), Show a) => Show (Free f a)
- Control.Monad.Free: instance Alternative v => Alternative (Free v)
- Control.Monad.Free: instance Foldable f => Foldable (Free f)
- Control.Monad.Free: instance Foldable1 f => Foldable1 (Free f)
- Control.Monad.Free: instance Functor f => Applicative (Free f)
- Control.Monad.Free: instance Functor f => Apply (Free f)
- Control.Monad.Free: instance Functor f => Bind (Free f)
- Control.Monad.Free: instance Functor f => Functor (Free f)
- Control.Monad.Free: instance Functor f => Monad (Free f)
- Control.Monad.Free: instance Functor f => MonadFix (Free f)
- Control.Monad.Free: instance Functor f => MonadFree f (Free f)
- Control.Monad.Free: instance MonadTrans Free
- Control.Monad.Free: instance Traversable f => Traversable (Free f)
- Control.Monad.Free: instance Traversable1 f => Traversable1 (Free f)
- Control.Monad.Free.Church: [F] :: (forall r. (a -> r) -> (f r -> r) -> r) -> F f a
- Control.Monad.Free.Church: instance (Foldable f, Functor f) => Foldable (F f)
- Control.Monad.Free.Church: instance Alternative f => Alternative (F f)
- Control.Monad.Free.Church: instance Applicative (F f)
- Control.Monad.Free.Church: instance Apply (F f)
- Control.Monad.Free.Church: instance Bind (F f)
- Control.Monad.Free.Church: instance Functor (F f)
- Control.Monad.Free.Church: instance Functor f => MonadFree f (F f)
- Control.Monad.Free.Church: instance Monad (F f)
- Control.Monad.Free.Church: instance MonadCont m => MonadCont (F m)
- Control.Monad.Free.Church: instance MonadFix (F f)
- Control.Monad.Free.Church: instance MonadPlus f => MonadPlus (F f)
- Control.Monad.Free.Church: instance MonadReader e m => MonadReader e (F m)
- Control.Monad.Free.Church: instance MonadState s m => MonadState s (F m)
- Control.Monad.Free.Church: instance MonadTrans F
- Control.Monad.Free.Church: instance MonadWriter w m => MonadWriter w (F m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (ContT r m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (IdentityT m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (ListT m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (MaybeT m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (ReaderT e m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m) => MonadFree f (StateT s m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m, Error e) => MonadFree f (ErrorT e m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m, Monoid w) => MonadFree f (RWST r w s m)
- Control.Monad.Free.Class: instance (Functor f, MonadFree f m, Monoid w) => MonadFree f (WriterT w m)
- Control.Monad.Free.TH: instance Show Arg
- Control.Monad.Trans.Free: [FreeT] :: m (FreeF f a (FreeT f m a)) -> FreeT f m a
- Control.Monad.Trans.Free: [Free] :: (f b) -> FreeF f a b
- Control.Monad.Trans.Free: [Pure] :: a -> FreeF f a b
- Control.Monad.Trans.Free: instance (Eq a, Eq (f b)) => Eq (FreeF f a b)
- Control.Monad.Trans.Free: instance (Eq1 f, Eq a) => Eq1 (FreeF f a)
- Control.Monad.Trans.Free: instance (Foldable m, Foldable f) => Foldable (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Eq1 f, Functor m, Eq1 m) => Eq1 (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => Applicative (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => Apply (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => Bind (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => Functor (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => Monad (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Monad m) => MonadFree f (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadCatch m) => MonadCatch (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadCont m) => MonadCont (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadError e m) => MonadError e (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadIO m) => MonadIO (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadPlus m) => Alternative (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadPlus m) => MonadPlus (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadReader r m) => MonadReader r (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadState s m) => MonadState s (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadThrow m) => MonadThrow (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, MonadWriter w m) => MonadWriter w (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Ord1 f, Functor m, Ord1 m) => Ord1 (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Read1 f, Functor m, Read1 m) => Read1 (FreeT f m)
- Control.Monad.Trans.Free: instance (Functor f, Show1 f, Functor m, Show1 m) => Show1 (FreeT f m)
- Control.Monad.Trans.Free: instance (Monad m, Traversable m, Traversable f) => Traversable (FreeT f m)
- Control.Monad.Trans.Free: instance (Ord a, Ord (f b)) => Ord (FreeF f a b)
- Control.Monad.Trans.Free: instance (Ord1 f, Ord a) => Ord1 (FreeF f a)
- Control.Monad.Trans.Free: instance (Read a, Read (f b)) => Read (FreeF f a b)
- Control.Monad.Trans.Free: instance (Read1 f, Read a) => Read1 (FreeF f a)
- Control.Monad.Trans.Free: instance (Show a, Show (f b)) => Show (FreeF f a b)
- Control.Monad.Trans.Free: instance (Show1 f, Show a) => Show1 (FreeF f a)
- Control.Monad.Trans.Free: instance Eq (m (FreeF f a (FreeT f m a))) => Eq (FreeT f m a)
- Control.Monad.Trans.Free: instance Eq1 f => Eq2 (FreeF f)
- Control.Monad.Trans.Free: instance Foldable f => Bifoldable (FreeF f)
- Control.Monad.Trans.Free: instance Foldable f => Foldable (FreeF f a)
- Control.Monad.Trans.Free: instance Functor f => Bifunctor (FreeF f)
- Control.Monad.Trans.Free: instance Functor f => Functor (FreeF f a)
- Control.Monad.Trans.Free: instance MonadTrans (FreeT f)
- Control.Monad.Trans.Free: instance Ord (m (FreeF f a (FreeT f m a))) => Ord (FreeT f m a)
- Control.Monad.Trans.Free: instance Ord1 f => Ord2 (FreeF f)
- Control.Monad.Trans.Free: instance Read (m (FreeF f a (FreeT f m a))) => Read (FreeT f m a)
- Control.Monad.Trans.Free: instance Read1 f => Read2 (FreeF f)
- Control.Monad.Trans.Free: instance Show (m (FreeF f a (FreeT f m a))) => Show (FreeT f m a)
- Control.Monad.Trans.Free: instance Show1 f => Show2 (FreeF f)
- Control.Monad.Trans.Free: instance Traversable f => Bitraversable (FreeF f)
- Control.Monad.Trans.Free: instance Traversable f => Traversable (FreeF f a)
- Control.Monad.Trans.Free.Church: [FT] :: (forall r. (a -> m r) -> (forall x. (x -> m r) -> f x -> m r) -> m r) -> FT f m a
- Control.Monad.Trans.Free.Church: instance (Foldable f, Foldable m, Monad m) => Foldable (FT f m)
- Control.Monad.Trans.Free.Church: instance (Functor f, Monad m, Eq (FreeT f m a)) => Eq (FT f m a)
- Control.Monad.Trans.Free.Church: instance (Functor f, Monad m, Ord (FreeT f m a)) => Ord (FT f m a)
- Control.Monad.Trans.Free.Church: instance (Functor f, MonadCatch m) => MonadCatch (FT f m)
- Control.Monad.Trans.Free.Church: instance (Functor f, MonadError e m) => MonadError e (FT f m)
- Control.Monad.Trans.Free.Church: instance (Functor f, MonadReader r m) => MonadReader r (FT f m)
- Control.Monad.Trans.Free.Church: instance (Functor f, MonadState s m) => MonadState s (FT f m)
- Control.Monad.Trans.Free.Church: instance (Functor f, MonadWriter w m) => MonadWriter w (FT f m)
- Control.Monad.Trans.Free.Church: instance (Monad m, Traversable m, Traversable f) => Traversable (FT f m)
- Control.Monad.Trans.Free.Church: instance Alternative m => Alternative (FT f m)
- Control.Monad.Trans.Free.Church: instance Applicative (FT f m)
- Control.Monad.Trans.Free.Church: instance Apply (FT f m)
- Control.Monad.Trans.Free.Church: instance Bind (FT f m)
- Control.Monad.Trans.Free.Church: instance Functor (FT f m)
- Control.Monad.Trans.Free.Church: instance Monad (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadCont m => MonadCont (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadFree f (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadIO m => MonadIO (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadPlus m => MonadPlus (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadThrow m => MonadThrow (FT f m)
- Control.Monad.Trans.Free.Church: instance MonadTrans (FT f)
- Control.Monad.Trans.Iter: [IterT] :: m (Either a (IterT m a)) -> IterT m a
- Control.Monad.Trans.Iter: instance (Functor m, Eq1 m) => Eq1 (IterT m)
- Control.Monad.Trans.Iter: instance (Functor m, Ord1 m) => Ord1 (IterT m)
- Control.Monad.Trans.Iter: instance (Functor m, Read1 m) => Read1 (IterT m)
- Control.Monad.Trans.Iter: instance (Functor m, Show1 m) => Show1 (IterT m)
- Control.Monad.Trans.Iter: instance (Monad m, Monoid a) => Monoid (IterT m a)
- Control.Monad.Trans.Iter: instance (Monad m, Traversable m) => Traversable (IterT m)
- Control.Monad.Trans.Iter: instance (Monad m, Traversable1 m) => Traversable1 (IterT m)
- Control.Monad.Trans.Iter: instance (Typeable m, Typeable a, Data (m (Either a (IterT m a))), Data a) => Data (IterT m a)
- Control.Monad.Trans.Iter: instance Eq (m (Either a (IterT m a))) => Eq (IterT m a)
- Control.Monad.Trans.Iter: instance Foldable m => Foldable (IterT m)
- Control.Monad.Trans.Iter: instance Foldable1 m => Foldable1 (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Alternative (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Applicative (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Apply (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Bind (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Functor (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => Monad (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => MonadFree Identity (IterT m)
- Control.Monad.Trans.Iter: instance Monad m => MonadPlus (IterT m)
- Control.Monad.Trans.Iter: instance MonadCatch m => MonadCatch (IterT m)
- Control.Monad.Trans.Iter: instance MonadCont m => MonadCont (IterT m)
- Control.Monad.Trans.Iter: instance MonadError e m => MonadError e (IterT m)
- Control.Monad.Trans.Iter: instance MonadFix m => MonadFix (IterT m)
- Control.Monad.Trans.Iter: instance MonadIO m => MonadIO (IterT m)
- Control.Monad.Trans.Iter: instance MonadReader e m => MonadReader e (IterT m)
- Control.Monad.Trans.Iter: instance MonadState s m => MonadState s (IterT m)
- Control.Monad.Trans.Iter: instance MonadThrow m => MonadThrow (IterT m)
- Control.Monad.Trans.Iter: instance MonadTrans IterT
- Control.Monad.Trans.Iter: instance MonadWriter w m => MonadWriter w (IterT m)
- Control.Monad.Trans.Iter: instance Ord (m (Either a (IterT m a))) => Ord (IterT m a)
- Control.Monad.Trans.Iter: instance Read (m (Either a (IterT m a))) => Read (IterT m a)
- Control.Monad.Trans.Iter: instance Show (m (Either a (IterT m a))) => Show (IterT m a)
+ Control.Alternative.Free: Alt :: [AltF f a] -> Alt f a
+ Control.Alternative.Free: Ap :: f a -> Alt f (a -> b) -> AltF f b
+ Control.Alternative.Free: Pure :: a -> AltF f a
+ Control.Alternative.Free: instance GHC.Base.Functor f => Data.Functor.Alt.Alt (Control.Alternative.Free.Alt f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => Data.Functor.Bind.Class.Apply (Control.Alternative.Free.Alt f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => Data.Semigroup.Semigroup (Control.Alternative.Free.Alt f a)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Alternative (Control.Alternative.Free.Alt f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Applicative (Control.Alternative.Free.Alt f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Applicative (Control.Alternative.Free.AltF f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Alternative.Free.Alt f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Alternative.Free.AltF f)
+ Control.Alternative.Free: instance GHC.Base.Functor f => GHC.Base.Monoid (Control.Alternative.Free.Alt f a)
+ Control.Alternative.Free.Final: Alt :: (forall g. Alternative g => (forall x. f x -> g x) -> g a) -> Alt f a
+ Control.Alternative.Free.Final: instance Data.Functor.Alt.Alt (Control.Alternative.Free.Final.Alt f)
+ Control.Alternative.Free.Final: instance Data.Functor.Bind.Class.Apply (Control.Alternative.Free.Final.Alt f)
+ Control.Alternative.Free.Final: instance Data.Semigroup.Semigroup (Control.Alternative.Free.Final.Alt f a)
+ Control.Alternative.Free.Final: instance GHC.Base.Alternative (Control.Alternative.Free.Final.Alt f)
+ Control.Alternative.Free.Final: instance GHC.Base.Applicative (Control.Alternative.Free.Final.Alt f)
+ Control.Alternative.Free.Final: instance GHC.Base.Functor (Control.Alternative.Free.Final.Alt f)
+ Control.Alternative.Free.Final: instance GHC.Base.Monoid (Control.Alternative.Free.Final.Alt f a)
+ Control.Applicative.Free: Ap :: f a -> Ap f (a -> b) -> Ap f b
+ Control.Applicative.Free: Pure :: a -> Ap f a
+ Control.Applicative.Free: instance Data.Functor.Bind.Class.Apply (Control.Applicative.Free.Ap f)
+ Control.Applicative.Free: instance GHC.Base.Applicative (Control.Applicative.Free.Ap f)
+ Control.Applicative.Free: instance GHC.Base.Functor (Control.Applicative.Free.Ap f)
+ Control.Applicative.Free.Final: Ap :: (forall g. Applicative g => (forall x. f x -> g x) -> g a) -> Ap f a
+ Control.Applicative.Free.Final: instance Data.Functor.Bind.Class.Apply (Control.Applicative.Free.Final.Ap f)
+ Control.Applicative.Free.Final: instance GHC.Base.Applicative (Control.Applicative.Free.Final.Ap f)
+ Control.Applicative.Free.Final: instance GHC.Base.Functor (Control.Applicative.Free.Final.Ap f)
+ Control.Applicative.Trans.Free: Ap :: f a -> ApT f g (a -> b) -> ApF f g b
+ Control.Applicative.Trans.Free: ApT :: g (ApF f g a) -> ApT f g a
+ Control.Applicative.Trans.Free: Pure :: a -> ApF f g a
+ Control.Applicative.Trans.Free: instance GHC.Base.Alternative g => GHC.Base.Alternative (Control.Applicative.Trans.Free.ApT f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Applicative g => Data.Functor.Bind.Class.Apply (Control.Applicative.Trans.Free.ApF f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Applicative g => Data.Functor.Bind.Class.Apply (Control.Applicative.Trans.Free.ApT f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Applicative g => GHC.Base.Applicative (Control.Applicative.Trans.Free.ApF f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Applicative g => GHC.Base.Applicative (Control.Applicative.Trans.Free.ApT f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Functor g => GHC.Base.Functor (Control.Applicative.Trans.Free.ApF f g)
+ Control.Applicative.Trans.Free: instance GHC.Base.Functor g => GHC.Base.Functor (Control.Applicative.Trans.Free.ApT f g)
+ Control.Comonad.Cofree: (:<) :: a -> f (Cofree f a) -> Cofree f a
+ Control.Comonad.Cofree: coiterW :: (Comonad w, Functor f) => (w a -> f (w a)) -> w a -> Cofree f a
+ Control.Comonad.Cofree: instance (GHC.Base.Alternative f, Control.Monad.Zip.MonadZip f) => Control.Monad.Zip.MonadZip (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance (GHC.Base.Functor f, Prelude.Extras.Eq1 f) => Prelude.Extras.Eq1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance (GHC.Base.Functor f, Prelude.Extras.Ord1 f) => Prelude.Extras.Ord1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance (GHC.Base.Functor f, Prelude.Extras.Read1 f) => Prelude.Extras.Read1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance (GHC.Base.Functor f, Prelude.Extras.Show1 f) => Prelude.Extras.Show1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance (GHC.Classes.Eq (f (Control.Comonad.Cofree.Cofree f a)), GHC.Classes.Eq a) => GHC.Classes.Eq (Control.Comonad.Cofree.Cofree f a)
+ Control.Comonad.Cofree: instance (GHC.Classes.Ord (f (Control.Comonad.Cofree.Cofree f a)), GHC.Classes.Ord a) => GHC.Classes.Ord (Control.Comonad.Cofree.Cofree f a)
+ Control.Comonad.Cofree: instance (GHC.Read.Read (f (Control.Comonad.Cofree.Cofree f a)), GHC.Read.Read a) => GHC.Read.Read (Control.Comonad.Cofree.Cofree f a)
+ Control.Comonad.Cofree: instance (GHC.Show.Show (f (Control.Comonad.Cofree.Cofree f a)), GHC.Show.Show a) => GHC.Show.Show (Control.Comonad.Cofree.Cofree f a)
+ Control.Comonad.Cofree: instance Control.Comonad.ComonadApply f => Control.Comonad.ComonadApply (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Control.Comonad.Env.Class.ComonadEnv e w => Control.Comonad.Env.Class.ComonadEnv e (Control.Comonad.Cofree.Cofree w)
+ Control.Comonad.Cofree: instance Control.Comonad.Hoist.Class.ComonadHoist Control.Comonad.Cofree.Cofree
+ Control.Comonad.Cofree: instance Control.Comonad.Store.Class.ComonadStore s w => Control.Comonad.Store.Class.ComonadStore s (Control.Comonad.Cofree.Cofree w)
+ Control.Comonad.Cofree: instance Control.Comonad.Traced.Class.ComonadTraced m w => Control.Comonad.Traced.Class.ComonadTraced m (Control.Comonad.Cofree.Cofree w)
+ Control.Comonad.Cofree: instance Control.Comonad.Trans.Class.ComonadTrans Control.Comonad.Cofree.Cofree
+ Control.Comonad.Cofree: instance Data.Distributive.Distributive f => Data.Distributive.Distributive (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Data.Functor.Bind.Class.Apply f => Data.Functor.Bind.Class.Apply (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Alternative f => GHC.Base.Applicative (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Alternative f => GHC.Base.Monad (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Functor f => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Functor f => Control.Comonad.Comonad (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Functor f => Data.Functor.Extend.Extend (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Comonad.Cofree.Cofree f)
+ Control.Comonad.Cofree.Class: instance (Control.Comonad.Cofree.Class.ComonadCofree f w, Data.Semigroup.Semigroup m, GHC.Base.Monoid m) => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Comonad.Trans.Traced.TracedT m w)
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree (Control.Applicative.Const b) ((,) b)
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree GHC.Base.Maybe Data.List.NonEmpty.NonEmpty
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree [] Data.Tree.Tree
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree f w => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Comonad.Trans.Env.EnvT e w)
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree f w => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Comonad.Trans.Store.StoreT s w)
+ Control.Comonad.Cofree.Class: instance Control.Comonad.Cofree.Class.ComonadCofree f w => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Monad.Trans.Identity.IdentityT w)
+ Control.Comonad.Trans.Cofree: (:<) :: a -> f b -> CofreeF f a b
+ Control.Comonad.Trans.Cofree: CofreeT :: w (CofreeF f a (CofreeT f w a)) -> CofreeT f w a
+ Control.Comonad.Trans.Cofree: instance (Data.Foldable.Foldable f, Data.Foldable.Foldable w) => Data.Foldable.Foldable (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (Data.Traversable.Traversable f, Data.Traversable.Traversable w) => Data.Traversable.Traversable (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Data.Data a, Data.Data.Data (f b), Data.Data.Data b) => Data.Data.Data (Control.Comonad.Trans.Cofree.CofreeF f a b)
+ Control.Comonad.Trans.Cofree: instance (Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable w, Data.Typeable.Internal.Typeable a, Data.Data.Data (w (Control.Comonad.Trans.Cofree.CofreeF f a (Control.Comonad.Trans.Cofree.CofreeT f w a))), Data.Data.Data a) => Data.Data.Data (Control.Comonad.Trans.Cofree.CofreeT f w a)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Alternative f, Control.Monad.Zip.MonadZip f, Control.Monad.Zip.MonadZip m) => Control.Monad.Zip.MonadZip (Control.Comonad.Trans.Cofree.CofreeT f m)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Alternative f, GHC.Base.Applicative w) => GHC.Base.Applicative (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Alternative f, GHC.Base.Monad w) => GHC.Base.Monad (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Functor f, Control.Comonad.Comonad w) => Control.Comonad.Cofree.Class.ComonadCofree f (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Functor f, Control.Comonad.Comonad w) => Control.Comonad.Comonad (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Functor f, Control.Comonad.Env.Class.ComonadEnv e w) => Control.Comonad.Env.Class.ComonadEnv e (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Base.Functor f, GHC.Base.Functor w) => GHC.Base.Functor (Control.Comonad.Trans.Cofree.CofreeT f w)
+ Control.Comonad.Trans.Cofree: instance (GHC.Classes.Eq a, GHC.Classes.Eq (f b)) => GHC.Classes.Eq (Control.Comonad.Trans.Cofree.CofreeF f a b)
+ Control.Comonad.Trans.Cofree: instance (GHC.Classes.Ord a, GHC.Classes.Ord (f b)) => GHC.Classes.Ord (Control.Comonad.Trans.Cofree.CofreeF f a b)
+ Control.Comonad.Trans.Cofree: instance (GHC.Read.Read a, GHC.Read.Read (f b)) => GHC.Read.Read (Control.Comonad.Trans.Cofree.CofreeF f a b)
+ Control.Comonad.Trans.Cofree: instance (GHC.Show.Show a, GHC.Show.Show (f b)) => GHC.Show.Show (Control.Comonad.Trans.Cofree.CofreeF f a b)
+ Control.Comonad.Trans.Cofree: instance Data.Foldable.Foldable f => Data.Bifoldable.Bifoldable (Control.Comonad.Trans.Cofree.CofreeF f)
+ Control.Comonad.Trans.Cofree: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Comonad.Trans.Cofree.CofreeF f a)
+ Control.Comonad.Trans.Cofree: instance Data.Traversable.Traversable f => Data.Bitraversable.Bitraversable (Control.Comonad.Trans.Cofree.CofreeF f)
+ Control.Comonad.Trans.Cofree: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Comonad.Trans.Cofree.CofreeF f a)
+ Control.Comonad.Trans.Cofree: instance GHC.Base.Alternative f => Control.Monad.Trans.Class.MonadTrans (Control.Comonad.Trans.Cofree.CofreeT f)
+ Control.Comonad.Trans.Cofree: instance GHC.Base.Functor f => Control.Comonad.Hoist.Class.ComonadHoist (Control.Comonad.Trans.Cofree.CofreeT f)
+ Control.Comonad.Trans.Cofree: instance GHC.Base.Functor f => Control.Comonad.Trans.Class.ComonadTrans (Control.Comonad.Trans.Cofree.CofreeT f)
+ Control.Comonad.Trans.Cofree: instance GHC.Base.Functor f => Data.Bifunctor.Bifunctor (Control.Comonad.Trans.Cofree.CofreeF f)
+ Control.Comonad.Trans.Cofree: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Comonad.Trans.Cofree.CofreeF f a)
+ Control.Comonad.Trans.Cofree: instance GHC.Classes.Eq (w (Control.Comonad.Trans.Cofree.CofreeF f a (Control.Comonad.Trans.Cofree.CofreeT f w a))) => GHC.Classes.Eq (Control.Comonad.Trans.Cofree.CofreeT f w a)
+ Control.Comonad.Trans.Cofree: instance GHC.Classes.Ord (w (Control.Comonad.Trans.Cofree.CofreeF f a (Control.Comonad.Trans.Cofree.CofreeT f w a))) => GHC.Classes.Ord (Control.Comonad.Trans.Cofree.CofreeT f w a)
+ Control.Comonad.Trans.Cofree: instance GHC.Read.Read (w (Control.Comonad.Trans.Cofree.CofreeF f a (Control.Comonad.Trans.Cofree.CofreeT f w a))) => GHC.Read.Read (Control.Comonad.Trans.Cofree.CofreeT f w a)
+ Control.Comonad.Trans.Cofree: instance GHC.Show.Show (w (Control.Comonad.Trans.Cofree.CofreeF f a (Control.Comonad.Trans.Cofree.CofreeT f w a))) => GHC.Show.Show (Control.Comonad.Trans.Cofree.CofreeT f w a)
+ Control.Comonad.Trans.Cofree: transCofreeT :: (Functor g, Comonad w) => (forall x. f x -> g x) -> CofreeT f w a -> CofreeT g w a
+ Control.Comonad.Trans.Coiter: CoiterT :: w (a, CoiterT w a) -> CoiterT w a
+ Control.Comonad.Trans.Coiter: instance (Data.Typeable.Internal.Typeable w, Data.Typeable.Internal.Typeable a, Data.Data.Data (w (a, Control.Comonad.Trans.Coiter.CoiterT w a)), Data.Data.Data a) => Data.Data.Data (Control.Comonad.Trans.Coiter.CoiterT w a)
+ Control.Comonad.Trans.Coiter: instance (GHC.Base.Functor w, Prelude.Extras.Eq1 w) => Prelude.Extras.Eq1 (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance (GHC.Base.Functor w, Prelude.Extras.Ord1 w) => Prelude.Extras.Ord1 (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance (GHC.Base.Functor w, Prelude.Extras.Read1 w) => Prelude.Extras.Read1 (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance (GHC.Base.Functor w, Prelude.Extras.Show1 w) => Prelude.Extras.Show1 (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Comonad w => Control.Comonad.Cofree.Class.ComonadCofree Data.Functor.Identity.Identity (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Comonad w => Control.Comonad.Comonad (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Env.Class.ComonadEnv e w => Control.Comonad.Env.Class.ComonadEnv e (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Hoist.Class.ComonadHoist Control.Comonad.Trans.Coiter.CoiterT
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Store.Class.ComonadStore s w => Control.Comonad.Store.Class.ComonadStore s (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Traced.Class.ComonadTraced m w => Control.Comonad.Traced.Class.ComonadTraced m (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Control.Comonad.Trans.Class.ComonadTrans Control.Comonad.Trans.Coiter.CoiterT
+ Control.Comonad.Trans.Coiter: instance Data.Foldable.Foldable w => Data.Foldable.Foldable (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance Data.Traversable.Traversable w => Data.Traversable.Traversable (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance GHC.Base.Functor w => GHC.Base.Functor (Control.Comonad.Trans.Coiter.CoiterT w)
+ Control.Comonad.Trans.Coiter: instance GHC.Classes.Eq (w (a, Control.Comonad.Trans.Coiter.CoiterT w a)) => GHC.Classes.Eq (Control.Comonad.Trans.Coiter.CoiterT w a)
+ Control.Comonad.Trans.Coiter: instance GHC.Classes.Ord (w (a, Control.Comonad.Trans.Coiter.CoiterT w a)) => GHC.Classes.Ord (Control.Comonad.Trans.Coiter.CoiterT w a)
+ Control.Comonad.Trans.Coiter: instance GHC.Read.Read (w (a, Control.Comonad.Trans.Coiter.CoiterT w a)) => GHC.Read.Read (Control.Comonad.Trans.Coiter.CoiterT w a)
+ Control.Comonad.Trans.Coiter: instance GHC.Show.Show (w (a, Control.Comonad.Trans.Coiter.CoiterT w a)) => GHC.Show.Show (Control.Comonad.Trans.Coiter.CoiterT w a)
+ Control.Monad.Free: Free :: (f (Free f a)) -> Free f a
+ Control.Monad.Free: Pure :: a -> Free f a
+ Control.Monad.Free: instance (GHC.Base.Functor f, Prelude.Extras.Eq1 f) => Prelude.Extras.Eq1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance (GHC.Base.Functor f, Prelude.Extras.Ord1 f) => Prelude.Extras.Ord1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance (GHC.Base.Functor f, Prelude.Extras.Read1 f) => Prelude.Extras.Read1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance (GHC.Base.Functor f, Prelude.Extras.Show1 f) => Prelude.Extras.Show1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance (GHC.Base.Functor m, Control.Monad.Cont.Class.MonadCont m) => Control.Monad.Cont.Class.MonadCont (Control.Monad.Free.Free m)
+ Control.Monad.Free: instance (GHC.Base.Functor m, Control.Monad.Error.Class.MonadError e m) => Control.Monad.Error.Class.MonadError e (Control.Monad.Free.Free m)
+ Control.Monad.Free: instance (GHC.Base.Functor m, Control.Monad.Reader.Class.MonadReader e m) => Control.Monad.Reader.Class.MonadReader e (Control.Monad.Free.Free m)
+ Control.Monad.Free: instance (GHC.Base.Functor m, Control.Monad.State.Class.MonadState s m) => Control.Monad.State.Class.MonadState s (Control.Monad.Free.Free m)
+ Control.Monad.Free: instance (GHC.Base.Functor m, Control.Monad.Writer.Class.MonadWriter e m) => Control.Monad.Writer.Class.MonadWriter e (Control.Monad.Free.Free m)
+ Control.Monad.Free: instance (GHC.Base.Functor v, GHC.Base.MonadPlus v) => GHC.Base.MonadPlus (Control.Monad.Free.Free v)
+ Control.Monad.Free: instance (GHC.Classes.Eq (f (Control.Monad.Free.Free f a)), GHC.Classes.Eq a) => GHC.Classes.Eq (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance (GHC.Classes.Ord (f (Control.Monad.Free.Free f a)), GHC.Classes.Ord a) => GHC.Classes.Ord (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance (GHC.Read.Read (f (Control.Monad.Free.Free f a)), GHC.Read.Read a) => GHC.Read.Read (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance (GHC.Show.Show (f (Control.Monad.Free.Free f a)), GHC.Show.Show a) => GHC.Show.Show (Control.Monad.Free.Free f a)
+ Control.Monad.Free: instance Control.Monad.Trans.Class.MonadTrans Control.Monad.Free.Free
+ Control.Monad.Free: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (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.Alternative v => GHC.Base.Alternative (Control.Monad.Free.Free v)
+ Control.Monad.Free: instance GHC.Base.Functor f => Control.Monad.Fix.MonadFix (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => Control.Monad.Free.Class.MonadFree f (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => Data.Functor.Bind.Class.Apply (Control.Monad.Free.Free f)
+ Control.Monad.Free: instance GHC.Base.Functor f => Data.Functor.Bind.Class.Bind (Control.Monad.Free.Free 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: iterA :: (Applicative p, Functor f) => (f (p a) -> p a) -> Free f a -> p a
+ Control.Monad.Free.Church: F :: (forall r. (a -> r) -> (f r -> r) -> r) -> F f a
+ Control.Monad.Free.Church: instance (Data.Foldable.Foldable f, GHC.Base.Functor f) => Data.Foldable.Foldable (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Control.Monad.Free.Church.F m)
+ Control.Monad.Free.Church: instance Control.Monad.Fix.MonadFix (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance Control.Monad.Reader.Class.MonadReader e m => Control.Monad.Reader.Class.MonadReader e (Control.Monad.Free.Church.F m)
+ Control.Monad.Free.Church: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Control.Monad.Free.Church.F m)
+ Control.Monad.Free.Church: instance Control.Monad.Trans.Class.MonadTrans Control.Monad.Free.Church.F
+ Control.Monad.Free.Church: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Free.Church.F m)
+ Control.Monad.Free.Church: instance Data.Functor.Bind.Class.Apply (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance Data.Functor.Bind.Class.Bind (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.Alternative f => GHC.Base.Alternative (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.Applicative (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.Functor (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.Functor f => Control.Monad.Free.Class.MonadFree f (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.Monad (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: instance GHC.Base.MonadPlus f => GHC.Base.MonadPlus (Control.Monad.Free.Church.F f)
+ Control.Monad.Free.Church: iter :: Functor f => (f a -> a) -> F f a -> a
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Cont.ContT r m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Except.ExceptT e m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Identity.IdentityT m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.List.ListT m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Maybe.MaybeT m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Reader.ReaderT e m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.State.Lazy.StateT s m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.State.Strict.StateT s m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m, Control.Monad.Trans.Error.Error e) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Error.ErrorT e m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m, GHC.Base.Monoid w) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m, GHC.Base.Monoid w) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m, GHC.Base.Monoid w) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Writer.Lazy.WriterT w m)
+ Control.Monad.Free.Class: instance (GHC.Base.Functor f, Control.Monad.Free.Class.MonadFree f m, GHC.Base.Monoid w) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Writer.Strict.WriterT w m)
+ Control.Monad.Free.TH: instance GHC.Show.Show Control.Monad.Free.TH.Arg
+ Control.Monad.Trans.Free: Free :: (f b) -> FreeF f a b
+ Control.Monad.Trans.Free: FreeT :: m (FreeF f a (FreeT f m a)) -> FreeT f m a
+ Control.Monad.Trans.Free: Pure :: a -> FreeF f a b
+ Control.Monad.Trans.Free: instance (Data.Foldable.Foldable m, Data.Foldable.Foldable f) => Data.Foldable.Foldable (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Catch.MonadCatch m) => Control.Monad.Catch.MonadCatch (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Catch.MonadThrow m) => Control.Monad.Catch.MonadThrow (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Cont.Class.MonadCont m) => Control.Monad.Cont.Class.MonadCont (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Error.Class.MonadError e m) => Control.Monad.Error.Class.MonadError e (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.IO.Class.MonadIO m) => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Reader.Class.MonadReader r m) => Control.Monad.Reader.Class.MonadReader r (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.State.Class.MonadState s m) => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Control.Monad.Writer.Class.MonadWriter w m) => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => Data.Functor.Bind.Class.Apply (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => Data.Functor.Bind.Class.Bind (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => GHC.Base.Applicative (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => GHC.Base.Functor (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.Monad m) => GHC.Base.Monad (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.MonadPlus m) => GHC.Base.Alternative (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, GHC.Base.MonadPlus m) => GHC.Base.MonadPlus (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Prelude.Extras.Eq1 f, GHC.Base.Functor m, Prelude.Extras.Eq1 m) => Prelude.Extras.Eq1 (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Prelude.Extras.Ord1 f, GHC.Base.Functor m, Prelude.Extras.Ord1 m) => Prelude.Extras.Ord1 (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Prelude.Extras.Read1 f, GHC.Base.Functor m, Prelude.Extras.Read1 m) => Prelude.Extras.Read1 (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Functor f, Prelude.Extras.Show1 f, GHC.Base.Functor m, Prelude.Extras.Show1 m) => Prelude.Extras.Show1 (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Base.Monad m, Data.Traversable.Traversable m, Data.Traversable.Traversable f) => Data.Traversable.Traversable (Control.Monad.Trans.Free.FreeT f m)
+ Control.Monad.Trans.Free: instance (GHC.Classes.Eq a, GHC.Classes.Eq (f b)) => GHC.Classes.Eq (Control.Monad.Trans.Free.FreeF f a b)
+ Control.Monad.Trans.Free: instance (GHC.Classes.Ord a, GHC.Classes.Ord (f b)) => GHC.Classes.Ord (Control.Monad.Trans.Free.FreeF f a b)
+ Control.Monad.Trans.Free: instance (GHC.Read.Read a, GHC.Read.Read (f b)) => GHC.Read.Read (Control.Monad.Trans.Free.FreeF f a b)
+ Control.Monad.Trans.Free: instance (GHC.Show.Show a, GHC.Show.Show (f b)) => GHC.Show.Show (Control.Monad.Trans.Free.FreeF f a b)
+ Control.Monad.Trans.Free: instance (Prelude.Extras.Eq1 f, GHC.Classes.Eq a) => Prelude.Extras.Eq1 (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance (Prelude.Extras.Ord1 f, GHC.Classes.Ord a) => Prelude.Extras.Ord1 (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance (Prelude.Extras.Read1 f, GHC.Read.Read a) => Prelude.Extras.Read1 (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance (Prelude.Extras.Show1 f, GHC.Show.Show a) => Prelude.Extras.Show1 (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.Free.FreeT f)
+ Control.Monad.Trans.Free: instance Data.Foldable.Foldable f => Data.Bifoldable.Bifoldable (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance Data.Traversable.Traversable f => Data.Bitraversable.Bitraversable (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance GHC.Base.Functor f => Data.Bifunctor.Bifunctor (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance GHC.Base.Functor f => GHC.Base.Functor (Control.Monad.Trans.Free.FreeF f a)
+ Control.Monad.Trans.Free: instance GHC.Classes.Eq (m (Control.Monad.Trans.Free.FreeF f a (Control.Monad.Trans.Free.FreeT f m a))) => GHC.Classes.Eq (Control.Monad.Trans.Free.FreeT f m a)
+ Control.Monad.Trans.Free: instance GHC.Classes.Ord (m (Control.Monad.Trans.Free.FreeF f a (Control.Monad.Trans.Free.FreeT f m a))) => GHC.Classes.Ord (Control.Monad.Trans.Free.FreeT f m a)
+ Control.Monad.Trans.Free: instance GHC.Read.Read (m (Control.Monad.Trans.Free.FreeF f a (Control.Monad.Trans.Free.FreeT f m a))) => GHC.Read.Read (Control.Monad.Trans.Free.FreeT f m a)
+ Control.Monad.Trans.Free: instance GHC.Show.Show (m (Control.Monad.Trans.Free.FreeF f a (Control.Monad.Trans.Free.FreeT f m a))) => GHC.Show.Show (Control.Monad.Trans.Free.FreeT f m a)
+ Control.Monad.Trans.Free: instance Prelude.Extras.Eq1 f => Prelude.Extras.Eq2 (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance Prelude.Extras.Ord1 f => Prelude.Extras.Ord2 (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance Prelude.Extras.Read1 f => Prelude.Extras.Read2 (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free: instance Prelude.Extras.Show1 f => Prelude.Extras.Show2 (Control.Monad.Trans.Free.FreeF f)
+ Control.Monad.Trans.Free.Church: FT :: (forall r. (a -> m r) -> (forall x. (x -> m r) -> f x -> m r) -> m r) -> FT f m a
+ Control.Monad.Trans.Free.Church: instance (Data.Foldable.Foldable f, Data.Foldable.Foldable m, GHC.Base.Monad m) => Data.Foldable.Foldable (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, Control.Monad.Catch.MonadCatch m) => Control.Monad.Catch.MonadCatch (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, Control.Monad.Error.Class.MonadError e m) => Control.Monad.Error.Class.MonadError e (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, Control.Monad.Reader.Class.MonadReader r m) => Control.Monad.Reader.Class.MonadReader r (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, Control.Monad.State.Class.MonadState s m) => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, Control.Monad.Writer.Class.MonadWriter w m) => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, GHC.Base.Monad m, GHC.Classes.Eq (Control.Monad.Trans.Free.FreeT f m a)) => GHC.Classes.Eq (Control.Monad.Trans.Free.Church.FT f m a)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Functor f, GHC.Base.Monad m, GHC.Classes.Ord (Control.Monad.Trans.Free.FreeT f m a)) => GHC.Classes.Ord (Control.Monad.Trans.Free.Church.FT f m a)
+ Control.Monad.Trans.Free.Church: instance (GHC.Base.Monad m, Data.Traversable.Traversable m, Data.Traversable.Traversable f) => Data.Traversable.Traversable (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Control.Monad.Free.Class.MonadFree f (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.Free.Church.FT f)
+ Control.Monad.Trans.Free.Church: instance Data.Functor.Bind.Class.Apply (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance Data.Functor.Bind.Class.Bind (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance GHC.Base.Alternative m => GHC.Base.Alternative (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance GHC.Base.Applicative (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance GHC.Base.Functor (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance GHC.Base.Monad (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Free.Church: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Control.Monad.Trans.Free.Church.FT f m)
+ Control.Monad.Trans.Iter: IterT :: m (Either a (IterT m a)) -> IterT m a
+ Control.Monad.Trans.Iter: instance (Data.Typeable.Internal.Typeable m, Data.Typeable.Internal.Typeable a, Data.Data.Data (m (Data.Either.Either a (Control.Monad.Trans.Iter.IterT m a))), Data.Data.Data a) => Data.Data.Data (Control.Monad.Trans.Iter.IterT m a)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Functor m, Prelude.Extras.Eq1 m) => Prelude.Extras.Eq1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Functor m, Prelude.Extras.Ord1 m) => Prelude.Extras.Ord1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Functor m, Prelude.Extras.Read1 m) => Prelude.Extras.Read1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Functor m, Prelude.Extras.Show1 m) => Prelude.Extras.Show1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Monad m, Data.Semigroup.Traversable.Class.Traversable1 m) => Data.Semigroup.Traversable.Class.Traversable1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Monad m, Data.Traversable.Traversable m) => Data.Traversable.Traversable (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance (GHC.Base.Monad m, GHC.Base.Monoid a) => GHC.Base.Monoid (Control.Monad.Trans.Iter.IterT m a)
+ Control.Monad.Trans.Iter: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Reader.Class.MonadReader e m => Control.Monad.Reader.Class.MonadReader e (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Control.Monad.Trans.Class.MonadTrans Control.Monad.Trans.Iter.IterT
+ Control.Monad.Trans.Iter: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Data.Foldable.Foldable m => Data.Foldable.Foldable (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance Data.Semigroup.Foldable.Class.Foldable1 m => Data.Semigroup.Foldable.Class.Foldable1 (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => Control.Monad.Free.Class.MonadFree Data.Functor.Identity.Identity (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => Data.Functor.Bind.Class.Apply (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => Data.Functor.Bind.Class.Bind (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => GHC.Base.Alternative (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => GHC.Base.Applicative (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => GHC.Base.Functor (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Base.Monad m => GHC.Base.MonadPlus (Control.Monad.Trans.Iter.IterT m)
+ Control.Monad.Trans.Iter: instance GHC.Classes.Eq (m (Data.Either.Either a (Control.Monad.Trans.Iter.IterT m a))) => GHC.Classes.Eq (Control.Monad.Trans.Iter.IterT m a)
+ Control.Monad.Trans.Iter: instance GHC.Classes.Ord (m (Data.Either.Either a (Control.Monad.Trans.Iter.IterT m a))) => GHC.Classes.Ord (Control.Monad.Trans.Iter.IterT m a)
+ Control.Monad.Trans.Iter: instance GHC.Read.Read (m (Data.Either.Either a (Control.Monad.Trans.Iter.IterT m a))) => GHC.Read.Read (Control.Monad.Trans.Iter.IterT m a)
+ Control.Monad.Trans.Iter: instance GHC.Show.Show (m (Data.Either.Either a (Control.Monad.Trans.Iter.IterT m a))) => GHC.Show.Show (Control.Monad.Trans.Iter.IterT m a)
- Control.Comonad.Cofree: telescoped :: (Functor f, Functor g) => [(Cofree g a -> f (Cofree g a)) -> g (Cofree g a) -> f (g (Cofree g a))] -> (a -> f a) -> Cofree g a -> f (Cofree g a)
+ Control.Comonad.Cofree: telescoped :: Functor f => [(Cofree g a -> f (Cofree g a)) -> g (Cofree g a) -> f (g (Cofree g a))] -> (a -> f a) -> Cofree g a -> f (Cofree g a)
Files
- CHANGELOG.markdown +6/−0
- README.markdown +1/−1
- examples/Cabbage.lhs +1/−1
- free.cabal +5/−3
- src/Control/Comonad/Cofree.hs +31/−6
- src/Control/Comonad/Cofree/Class.hs +4/−0
- src/Control/Comonad/Trans/Cofree.hs +21/−0
- src/Control/Monad/Free.hs +10/−4
- src/Control/Monad/Free/Church.hs +8/−3
- src/Control/Monad/Free/Class.hs +4/−0
- src/Control/Monad/Free/TH.hs +10/−2
- src/Control/Monad/Trans/Free.hs +2/−2
- src/Control/Monad/Trans/Iter.hs +1/−1
CHANGELOG.markdown view
@@ -1,3 +1,9 @@+4.12.2+------+* Add instances for `ExceptT`: like `ErrorT`, but without an `Error` constraint.+* Support `containers`+* Support `transformers` 0.5+ 4.12.1 ------ * Support GHC 7.4
README.markdown view
@@ -1,7 +1,7 @@ free ==== -[](http://travis-ci.org/ekmett/free)+[](https://hackage.haskell.org/package/free) [](http://travis-ci.org/ekmett/free) This package provides a common definitions for working with free monads, free applicatives, and cofree comonads in Haskell.
examples/Cabbage.lhs view
@@ -43,7 +43,7 @@ @ *Cabbage> singleOut1 (== Sheep) [Wolf, Sheep, Cabbage]-[(Just Wolf,[Sheep,Cabbage]),(Just Sheep,[Wolf,Cabbage]),(Just Cabbage,[Wolf,Sheep]),(Nothing,[Wolf,Sheep,Cabbage])]+(Just Sheep,[Wolf,Cabbage]) @ > singleOutAll :: [a] -> [(Maybe a,[a])]
free.cabal view
@@ -1,6 +1,6 @@ name: free category: Control, Monads-version: 4.12.1+version: 4.12.2 license: BSD3 cabal-version: >= 1.10 license-file: LICENSE@@ -76,9 +76,11 @@ profunctors >= 4 && < 6, semigroupoids >= 4 && < 6, semigroups >= 0.8.3.1 && < 1,- transformers >= 0.2.0 && < 0.5,+ transformers >= 0.2.0 && < 0.6,+ transformers-compat >= 0.3 && < 1, template-haskell >= 2.7.0.0 && < 3,- exceptions >= 0.6 && < 0.9+ exceptions >= 0.6 && < 0.9,+ containers < 0.6 exposed-modules: Control.Applicative.Free
src/Control/Comonad/Cofree.hs view
@@ -25,6 +25,7 @@ , ComonadCofree(..) , section , coiter+ , coiterW , unfold , unfoldM , hoistCofree@@ -41,6 +42,7 @@ import Control.Comonad.Env.Class import Control.Comonad.Store.Class as Class import Control.Comonad.Traced.Class+import Control.Comonad.Hoist.Class import Control.Category import Control.Monad(ap, (>=>), liftM) import Control.Monad.Zip@@ -64,7 +66,7 @@ -- /Formally/ -- -- A 'Comonad' @v@ is a cofree 'Comonad' for @f@ if every comonad homomorphism--- another comonad @w@ to @v@ is equivalent to a natural transformation+-- from another comonad @w@ to @v@ is equivalent to a natural transformation -- from @w@ to @f@. -- -- A 'cofree' functor is right adjoint to a forgetful functor.@@ -110,6 +112,10 @@ coiter :: Functor f => (a -> f a) -> a -> Cofree f a coiter psi a = a :< (coiter psi <$> psi a) +-- | Like coiter for comonadic values.+coiterW :: (Comonad w, Functor f) => (w a -> f (w a)) -> w a -> Cofree f a+coiterW psi a = extract a :< (coiterW psi <$> psi a)+ -- | Unfold a cofree comonad from a seed. unfold :: Functor f => (b -> (a, f b)) -> b -> Cofree f a unfold f c = case f c of@@ -151,7 +157,7 @@ {-# INLINE lower #-} instance Alternative f => Monad (Cofree f) where- return x = x :< empty+ return = pure {-# INLINE return #-} (a :< m) >>= k = case k a of b :< n -> b :< (n <|> fmap (>>= k) m)@@ -182,7 +188,7 @@ {-# INLINE (@>) #-} instance Alternative f => Applicative (Cofree f) where- pure = return+ pure x = x :< empty {-# INLINE pure #-} (<*>) = ap {-# INLINE (<*>) #-}@@ -235,6 +241,10 @@ foldMap f = go where go (a :< as) = f a `mappend` foldMap go as {-# INLINE foldMap #-}+#if __GLASGOW_HASKELL__ >= 709+ length = go 0 where+ go s (_ :< as) = foldl' go (s + 1) as+#endif instance Foldable1 f => Foldable1 (Cofree f) where foldMap1 f = go where@@ -291,6 +301,9 @@ {-# NOINLINE cofreeDataType #-} #endif +instance ComonadHoist Cofree where+ cohoist = hoistCofree+ instance ComonadEnv e w => ComonadEnv e (Cofree w) where ask = ask . lower {-# INLINE ask #-}@@ -331,12 +344,24 @@ _unwrap f (a :< as) = (a :<) <$> f as {-# INLINE _unwrap #-} --- | Construct a @Lens@ into a @'Cofree' f@ given a list of lenses into the base functor.+-- | Construct an @Lens@ into a @'Cofree' g@ given a list of lenses into the base functor.+-- When the input list is empty, this is equivalent to '_extract'.+-- When the input list is non-empty, this composes the input lenses+-- with '_unwrap' to walk through the @'Cofree' g@ before using+-- '_extract' to get the element at the final location. -- -- For more on lenses see the 'lens' package on hackage. ----- @telescoped :: 'Functor' g => [Lens' ('Cofree' g a) (g ('Cofree' g a))] -> Lens' ('Cofree' g a) a@-telescoped :: (Functor f, Functor g) =>+-- @telescoped :: [Lens' (g ('Cofree' g a)) ('Cofree' g a)] -> Lens' ('Cofree' g a) a@+--+-- @telescoped :: [Traversal' (g ('Cofree' g a)) ('Cofree' g a)] -> Traversal' ('Cofree' g a) a@+--+-- @telescoped :: [Getter (g ('Cofree' g a)) ('Cofree' g a)] -> Getter ('Cofree' g a) a@+--+-- @telescoped :: [Fold (g ('Cofree' g a)) ('Cofree' g a)] -> Fold ('Cofree' g a) a@+--+-- @telescoped :: [Setter' (g ('Cofree' g a)) ('Cofree' g a)] -> Setter' ('Cofree' g a) a@+telescoped :: Functor f => [(Cofree g a -> f (Cofree g a)) -> g (Cofree g a) -> f (g (Cofree g a))] -> (a -> f a) -> Cofree g a -> f (Cofree g a) telescoped = Prelude.foldr (\l r -> _unwrap . l . r) _extract
src/Control/Comonad/Cofree/Class.hs view
@@ -23,6 +23,7 @@ import Control.Comonad.Trans.Traced import Control.Comonad.Trans.Identity import Data.List.NonEmpty+import Data.Tree import Data.Semigroup -- | Allows you to peel a layer off a cofree comonad.@@ -33,6 +34,9 @@ instance ComonadCofree Maybe NonEmpty where unwrap (_ :| []) = Nothing unwrap (_ :| (a : as)) = Just (a :| as)++instance ComonadCofree [] Tree where+ unwrap = subForest instance ComonadCofree (Const b) ((,) b) where unwrap = Const . fst
src/Control/Comonad/Trans/Cofree.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE Rank2Types #-} #if __GLASGOW_HASKELL__ >= 707 {-# LANGUAGE DeriveDataTypeable #-} #endif@@ -26,6 +27,7 @@ , ComonadCofree(..) , headF , tailF+ , transCofreeT , coiterT ) where @@ -33,6 +35,8 @@ import Control.Comonad import Control.Comonad.Trans.Class import Control.Comonad.Cofree.Class+import Control.Comonad.Env.Class+import Control.Comonad.Hoist.Class import Control.Category import Data.Bifunctor import Data.Bifoldable@@ -83,6 +87,10 @@ instance Traversable f => Bitraversable (CofreeF f) where bitraverse f g (a :< as) = (:<) <$> f a <*> traverse g as +transCofreeF :: (forall x. f x -> g x) -> CofreeF f a b -> CofreeF g a b+transCofreeF t (a :< fb) = a :< t fb+{-# INLINE transCofreeF #-}+ -- | This is a cofree comonad of some functor @f@, with a comonad @w@ threaded through it at each level. newtype CofreeT f w a = CofreeT { runCofreeT :: w (CofreeF f a (CofreeT f w a)) } #if __GLASGOW_HASKELL__ >= 707@@ -138,6 +146,13 @@ instance (Functor f, Comonad w) => ComonadCofree f (CofreeT f w) where unwrap = tailF . extract . runCofreeT +instance (Functor f, ComonadEnv e w) => ComonadEnv e (CofreeT f w) where+ ask = ask . lower+ {-# INLINE ask #-} ++instance Functor f => ComonadHoist (CofreeT f) where+ cohoist g = CofreeT . fmap (second (cohoist g)) . g . runCofreeT+ instance Show (w (CofreeF f a (CofreeT f w a))) => Show (CofreeT f w a) where showsPrec d (CofreeT w) = showParen (d > 10) $ showString "CofreeT " . showsPrec 11 w@@ -153,8 +168,10 @@ compare (CofreeT a) (CofreeT b) = compare a b instance (Alternative f, Monad w) => Monad (CofreeT f w) where+#if __GLASGOW_HASKELL__ < 710 return = CofreeT . return . (:< empty) {-# INLINE return #-}+#endif CofreeT cx >>= f = CofreeT $ do a :< m <- cx b :< n <- runCofreeT $ f a@@ -176,6 +193,10 @@ mzip (CofreeT ma) (CofreeT mb) = CofreeT $ do (a :< fa, b :< fb) <- mzip ma mb return $ (a, b) :< (uncurry mzip <$> mzip fa fb)++-- | Lift a natural transformation from @f@ to @g@ into a comonad homomorphism from @'CofreeT' f w@ to @'CofreeT' g w@+transCofreeT :: (Functor g, Comonad w) => (forall x. f x -> g x) -> CofreeT f w a -> CofreeT g w a+transCofreeT t = CofreeT . liftW (fmap (transCofreeT t) . transCofreeF t) . runCofreeT -- | Unfold a @CofreeT@ comonad transformer from a coalgebra and an initial comonad. coiterT :: (Functor f, Comonad w) => (w a -> f (w a)) -> w a -> CofreeT f w a
src/Control/Monad/Free.hs view
@@ -28,6 +28,7 @@ , retract , liftF , iter+ , iterA , iterM , hoistFree , foldFree@@ -186,7 +187,7 @@ Free m >>- f = Free ((>>- f) <$> m) instance Functor f => Monad (Free f) where- return = Pure+ return = pure {-# INLINE return #-} Pure a >>= f = f a Free m >>= f = Free ((>>= f) <$> m)@@ -303,17 +304,22 @@ iter _ (Pure a) = a iter phi (Free m) = phi (iter phi <$> m) --- | Like iter for monadic values.+-- | Like 'iter' for applicative values.+iterA :: (Applicative p, Functor f) => (f (p a) -> p a) -> Free f a -> p a+iterA _ (Pure x) = pure x+iterA phi (Free f) = phi (iterA phi <$> f)++-- | Like 'iter' for monadic values. iterM :: (Monad m, Functor f) => (f (m a) -> m a) -> Free f a -> m a iterM _ (Pure x) = return x-iterM phi (Free f) = phi $ fmap (iterM phi) f+iterM phi (Free f) = phi (iterM phi <$> f) -- | Lift a natural transformation from @f@ to @g@ into a natural transformation from @'FreeT' f@ to @'FreeT' g@. hoistFree :: Functor g => (forall a. f a -> g a) -> Free f b -> Free g b hoistFree _ (Pure a) = Pure a hoistFree f (Free as) = Free (hoistFree f <$> f as) --- | The very definition of a free monoid is that given a natural transformation you get a monoid homomorphism.+-- | The very definition of a free monad is that given a natural transformation you get a monad homomorphism. foldFree :: (Functor m, Monad m) => (forall x . f x -> m x) -> Free f a -> m a foldFree _ (Pure a) = return a foldFree f (Free as) = f as >>= foldFree f
src/Control/Monad/Free/Church.hs view
@@ -56,6 +56,7 @@ ( F(..) , improve , fromF+ , iter , iterM , toF , retract@@ -69,7 +70,7 @@ import Control.Applicative import Control.Monad as Monad import Control.Monad.Fix-import Control.Monad.Free hiding (retract, iterM, cutoff)+import Control.Monad.Free hiding (retract, iter, iterM, cutoff) import qualified Control.Monad.Free as Free import Control.Monad.Reader.Class import Control.Monad.Writer.Class@@ -87,6 +88,10 @@ -- <http://comonad.com/reader/2011/free-monads-for-less-2/> newtype F f a = F { runF :: forall r. (a -> r) -> (f r -> r) -> r } +-- | Tear down a 'Free' 'Monad' using iteration.+iter :: Functor f => (f a -> a) -> F f a -> a+iter phi xs = runF xs id phi+ -- | Like iter for monadic values. iterM :: (Monad m, Functor f) => (f (m a) -> m a) -> F f a -> m a iterM phi xs = runF xs return phi@@ -110,7 +115,7 @@ (>>-) = (>>=) instance Monad (F f) where- return a = F (\kp _ -> kp a)+ return = pure F m >>= f = F (\kp kf -> m (\a -> runF (f a) kp kf) kf) instance MonadFix (F f) where@@ -169,7 +174,7 @@ hoistF :: (forall x. f x -> g x) -> F f a -> F g a hoistF t (F m) = F (\p f -> m p (f . t)) --- | The very definition of a free monoid is that given a natural transformation you get a monoid homomorphism.+-- | The very definition of a free monad is that given a natural transformation you get a monad homomorphism. foldF :: Monad m => (forall x. f x -> m x) -> F f a -> m a foldF f (F m) = m return (Monad.join . f)
src/Control/Monad/Free/Class.hs view
@@ -43,6 +43,7 @@ import Control.Monad.Trans.Maybe import Control.Monad.Trans.List import Control.Monad.Trans.Error+import Control.Monad.Trans.Except import Control.Monad.Trans.Identity #if !(MIN_VERSION_base(4,8,0))@@ -143,6 +144,9 @@ instance (Functor f, MonadFree f m, Error e) => MonadFree f (ErrorT e m) where wrap = ErrorT . wrap . fmap runErrorT++instance (Functor f, MonadFree f m) => MonadFree f (ExceptT e m) where+ wrap = ExceptT . wrap . fmap runExceptT -- instance (Functor f, MonadFree f m) => MonadFree f (EitherT e m) where -- wrap = EitherT . wrap . fmap runEitherT
src/Control/Monad/Free/TH.hs view
@@ -195,7 +195,11 @@ -> Maybe [Name] -- ^ Include only mentioned constructor names. Use all constructors when @Nothing@. -> Dec -- ^ Data type declaration. -> Q [Dec]+#if MIN_VERSION_template_haskell(2,11,0)+liftDec typeSig onlyCons (DataD _ tyName tyVarBndrs _ cons _)+#else liftDec typeSig onlyCons (DataD _ tyName tyVarBndrs cons _)+#endif | null tyVarBndrs = fail $ "Type " ++ show tyName ++ " needs at least one free variable" | otherwise = concat <$> mapM (liftCon typeSig [] [] con nextTyName (init tyNames)) cons' where@@ -232,7 +236,11 @@ genFreeCon typeSig cname = do info <- reify cname case info of- DataConI _ _ tname _ -> genFree typeSig (Just [cname]) tname+ DataConI _ _ tname+#if !(MIN_VERSION_template_haskell(2,11,0))+ _+#endif+ -> genFree typeSig (Just [cname]) tname _ -> fail "makeFreeCon expects a data constructor" -- | @$('makeFree' ''T)@ provides free monadic actions for the@@ -240,7 +248,7 @@ makeFree :: Name -> Q [Dec] makeFree = genFree True Nothing --- | Like 'makeFreeCon', but does not provide type signatures.+-- | Like 'makeFree', but does not provide type signatures. -- This can be used to attach Haddock comments to individual arguments -- for each generated function. --
src/Control/Monad/Trans/Free.hs view
@@ -224,7 +224,7 @@ instance (Functor f, Monad m) => Monad (FreeT f m) where fail e = FreeT (fail e)- return a = FreeT (return (Pure a))+ return = pure {-# INLINE return #-} FreeT m >>= f = FreeT $ m >>= \v -> case v of Pure a -> runFreeT (f a)@@ -332,7 +332,7 @@ hoistFreeT :: (Monad m, Functor f) => (forall a. m a -> n a) -> FreeT f m b -> FreeT f n b hoistFreeT mh = FreeT . mh . liftM (fmap (hoistFreeT mh)) . runFreeT --- | Lift a natural transformation from @f@ to @g@ into a monad homomorphism from @'FreeT' f m@ to @'FreeT' g n@+-- | Lift a natural transformation from @f@ to @g@ into a monad homomorphism from @'FreeT' f m@ to @'FreeT' g m@ transFreeT :: (Monad m, Functor g) => (forall a. f a -> g a) -> FreeT f m b -> FreeT g m b transFreeT nt = FreeT . liftM (fmap (transFreeT nt) . transFreeF nt) . runFreeT
src/Control/Monad/Trans/Iter.hs view
@@ -172,7 +172,7 @@ {-# INLINE (<*>) #-} instance Monad m => Monad (IterT m) where- return = IterT . return . Left+ return = pure {-# INLINE return #-} IterT m >>= k = IterT $ m >>= either (runIterT . k) (return . Right . (>>= k)) {-# INLINE (>>=) #-}