Portability | MPTCs, fundeps |
---|---|
Stability | provisional |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | None |
The coiterative comonad generated by a comonad
- newtype CoiterT w a = CoiterT {
- runCoiterT :: w (a, CoiterT w a)
- type Coiter = CoiterT Identity
- coiter :: a -> Coiter a -> Coiter a
- runCoiter :: Coiter a -> (a, Coiter a)
- unfold :: Comonad w => (w a -> a) -> w a -> CoiterT w a
- class (Functor f, Comonad w) => ComonadCofree f w | w -> f where
- unwrap :: w a -> f (w a)
The coiterative comonad transformer
This is the coiterative comonad generated by a comonad
CoiterT | |
|
ComonadTrans CoiterT | |
Comonad w => ComonadCofree Identity (CoiterT w) | |
Functor w => Functor (CoiterT w) | |
Typeable1 w => Typeable1 (CoiterT w) | |
Foldable w => Foldable (CoiterT w) | |
Traversable w => Traversable (CoiterT w) | |
Comonad w => Comonad (CoiterT w) | |
Eq (w (a, CoiterT w a)) => Eq (CoiterT w a) | |
(Typeable1 w, Typeable a, Data (w (a, CoiterT w a)), Data a) => Data (CoiterT w a) | |
Ord (w (a, CoiterT w a)) => Ord (CoiterT w a) | |
Read (w (a, CoiterT w a)) => Read (CoiterT w a) | |
Show (w (a, CoiterT w a)) => Show (CoiterT w a) |
The coiterative comonad
Generating coiterative comonads
unfold :: Comonad w => (w a -> a) -> w a -> CoiterT w aSource
Unfold a CoiterT
comonad transformer from a cokleisli arrow and an initial comonadic seed.
Cofree comonads
class (Functor f, Comonad w) => ComonadCofree f w | w -> f whereSource
Allows you to peel a layer off a cofree comonad.
ComonadCofree Maybe NonEmpty | |
ComonadCofree f w => ComonadCofree f (IdentityT w) | |
Functor f => ComonadCofree f (Cofree f) | |
Comonad w => ComonadCofree Identity (CoiterT w) | |
(ComonadCofree f w, Semigroup m, Monoid m) => ComonadCofree f (TracedT m w) | |
ComonadCofree f w => ComonadCofree f (StoreT s w) | |
ComonadCofree f w => ComonadCofree f (EnvT e w) | |
(Functor f, Comonad w) => ComonadCofree f (CofreeT f w) | |
ComonadCofree (Const b) ((,) b) |