coroutine-object-0.2.0: Object-oriented programming realization using coroutine

PortabilityGHC
Stabilityexperimental
MaintainerIan-Woo Kim <ianwookim@gmail.com>
Safe HaskellNone

Control.Monad.Trans.Crtn.Object

Description

coroutine that can be interpreted as an object

Synopsis

Documentation

data Arg s Source

input of method of an object with signature s

Constructors

forall i o . Arg (s i o) i 

data Res s Source

output of methdo of an object with signature s

Constructors

forall i o . Res (s i o) o 
Ign 

type SObjT s m = SrvT (Arg s) (Res s) mSource

Server object

type CObjT s = CliT (Arg s) (Res s)Source

Client object

type SObjBT s m = CrtnT (Res s) (Arg s) mSource

Server object base coroutine

type EStT s m = EitherT CrtnErr (StateT s m)Source

convenient error state monad for object

query :: forall m s r. Monad m => CObjT s m r -> EStT (SObjT s m ()) m rSource