Copyright | (c) Aaron Friel |
---|---|
License | BSD-3 |
Maintainer | Aaron Friel <[email protected]> |
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
.