objective-0.6.1: Extensible objects

Copyright(c) Fumiaki Kinoshita 2014
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Objective.Class

Description

MonadObjective class and operations

Synopsis

Documentation

type Inst' f g = Inst g f g Source

type Instance' f g = Inst g f g Source

type Instance f g m = Inst m f g Source

class ObjectiveBase b where Source

Associated Types

data Inst b f g Source

Methods

new :: Object f g -> b (Inst b f g) Source

invoke :: Monad r => (forall x. b x -> r x) -> (forall x. g x -> r x) -> Inst b f g -> f a -> r a Source

(.-) :: (ObjectiveBase b, Elevate b m, Elevate g m, Monad m) => Inst b f g -> f a -> m a infix 3 Source

(.^) :: (ObjectiveBase b, Elevate b m, Elevate g m, Monad m, Elevate e f) => Inst b f g -> e a -> m a infix 3 Source

Invoke a method.

(.&) :: (ObjectiveBase b, Elevate b m, Elevate g m, Monad m, Elevate (State s) f) => Inst b f g -> StateT s m a -> m a infix 3 Source

Specialized (.^) for StateT