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

Safe HaskellNone
LanguageHaskell98

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) 
Typeable ((* -> *) -> *) Invocant 

class Monad m => Codeable m c where Source

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)