| Copyright | (c) Aaron Friel |
|---|---|
| License | BSD-3 |
| Maintainer | Aaron Friel <mayreply@aaronfriel.com> |
| Stability | unstable |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Control.Monad.Graph
Description
- class GApplicative m => GMonad m where
- type Bind m (i :: p) (j :: p) :: p
- type BindInv m (i :: p) (j :: p) :: Constraint
- type Join m (i :: p) (j :: p) :: p
- type JoinInv m (i :: p) (j :: p) :: Constraint
Documentation
class GApplicative m => GMonad m where Source #
Graph indexed monad.
Minimal complete definition
Associated Types
type Bind m (i :: p) (j :: p) :: p Source #
type BindInv m (i :: p) (j :: p) :: Constraint Source #
type Join m (i :: p) (j :: p) :: p Source #
type JoinInv m (i :: p) (j :: p) :: Constraint Source #
Methods
gbind :: BindInv 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 :: JoinInv 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, BindInv 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.