Safe Haskell | None |
---|---|
Language | Haskell98 |
Annotations.MultiRec.Yield
- class Monad m => MonadYield m where
- data YieldT x fam m a
- type Yield x fam = YieldT x fam Identity
- runYield :: EqS fam => fam a -> Yield x fam a -> Maybe (AnnFix x fam a)
- runYieldG :: Yield x fam a -> (a, Maybe (AnyAnnFix x fam))
- runYieldT :: (Monad m, EqS fam) => fam a -> YieldT x fam m a -> m (Maybe (AnnFix x fam a))
- runYieldTG :: Monad m => YieldT x fam m a -> m (a, Maybe (AnyAnnFix x fam))
Documentation
class Monad m => MonadYield m where Source #
Monads that allow yielding recursively annotated values.
Minimal complete definition
Associated Types
type YieldFam m :: * -> * Source #
Yielded values have types in this datatype family.
The type of the annotation.
data YieldT x fam m a Source #
The Yield transformer. Allows yielding generic values in family fam
with annotations of type x
.
Instances
MonadTrans (YieldT x fam) Source # | |
Monad m => Monad (YieldT x fam m) Source # | |
Functor m => Functor (YieldT x fam m) Source # | |
Monad m => Applicative (YieldT x fam m) Source # | |
(Monad m, HFunctor fam (PF fam), EqS fam, Fam fam) => MonadYield (YieldT x fam m) Source # | |
type YieldFam (YieldT x fam m) Source # | |
type AnnType (YieldT x fam m) Source # | |