MetaObject-0.0.6: A meta-object system for Haskell based on Perl 6

MO.Base

Synopsis

Documentation

data (Typeable1 m, Monad m) => Invocant m Source

Constructors

forall a . (Show a, Eq a, Ord a, Typeable a) => MkInvocant a (AnyResponder m) 

Instances

(Typeable1 m, Monad m) => Eq (Invocant m) 
(Typeable1 m, Monad m) => Ord (Invocant m) 
(Typeable1 m, Monad m) => Show (Invocant m) 
(Typeable1 m, Monad m) => Typeable (Invocant m) 

class Monad m => Codeable m c whereSource

open type to represent Code

Methods

run :: c -> Arguments m -> m (Invocant m)Source

Instances

(Typeable1 m, Monad m) => Codeable m PureCode 
(Typeable1 m, Monad m) => Codeable m (HsCode m) 
(Typeable (NoCode m), Monad m) => Codeable m (NoCode m) 

newtype NoCode m Source

stub code which always return the same

Constructors

NoCode (Invocant m) 

Instances

(Typeable (NoCode m), Monad m) => Codeable m (NoCode m) 
Show (NoCode m) 

newtype PureCode Source

Pure code that works with any monad.

Constructors

PureCode (forall m. (Typeable1 m, Monad m) => Arguments m -> Invocant m) 

Instances

newtype Monad m => HsCode m Source

Real monadic primitive code.

Constructors

HsCode (Arguments m -> m (Invocant m)) 

Instances

(Typeable1 m, Monad m) => Codeable m (HsCode m) 
Show (HsCode m)