| Copyright | (c) Fumiaki Kinoshita 2014 |
|---|---|
| License | BSD3 |
| Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Control.Monad.Objective.Class
Description
MonadObjective class and operations
- type Instance' e m = Instance e m m
- class (Tower m, Monad m) => MonadObjective m where
- (.-) :: (Monad n, Elevate n m, MonadObjective m, Elevate m f) => Instance e n m -> e a -> f a
- (.^) :: (Elevate e f, Monad n, Elevate n m, MonadObjective m, Elevate m g) => Instance f n m -> e a -> g a
- (.&) :: (MonadObjective m, Elevate (StateT s m) e, Monad n, Elevate n m, Elevate m f) => Instance e n m -> StateT s m a -> f a
Documentation
class (Tower m, Monad m) => MonadObjective m where Source
Methods
invoke :: Monad n => Instance e n m -> e a -> m (n (m a)) Source
Send a message to the pointed one.
new :: Object e n -> m (Instance e n m) Source
Add an object to the environment.
Instances
(.-) :: (Monad n, Elevate n m, MonadObjective m, Elevate m f) => Instance e n m -> e a -> f a infix 3 Source
Invoke a method.