Copyright | (c) Aaron Friel |
---|---|
License | BSD-3 |
Maintainer | Aaron Friel <mayreply@aaronfriel.com> |
Stability | unstable |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
- class GApplicative m => GMonad m where
Documentation
class GApplicative m => GMonad m where Source #
Graph indexed monad.
gbind :: Inv m i j => m i a -> (a -> m j b) -> m (Bind m i j) b Source #
Sequentially compose two actions, with the second dependent on the first.
gjoin :: Inv m i j => m i (m j b) -> m (Join m i j) b Source #
Remove one level of nested structure.
Default implementation requires the default instance of Join
.
gjoin :: (Bind m i j ~ Join m i j, Inv m i j) => m i (m j b) -> m (Join m i j) b Source #
Remove one level of nested structure.
Default implementation requires the default instance of Join
.