prototype-0.1: prototype-based programming on Haskell

Control.Prototype

Documentation

type PTMonad m = ObjectMonad mSource

type Object = ObjectIdSource

type Member = VarNameSource

type Method m = ObjectId -> [ObjectId] -> ObjectMonad m [ObjectId]Source

runPT :: Monad m => PTMonad m a -> ObjectEnv m -> m (a, ObjectEnv m)Source

initPTEnv :: ObjectEnv mSource

object :: ObjectIdSource

clone :: Monad m => ObjectId -> ObjectMonad m ObjectIdSource

makeMember :: Monad m => String -> ObjectMonad m VarNameSource

member :: Monad m => ObjectId -> VarName -> ObjectMonad m ObjectIdSource

method :: Monad m => ObjectId -> VarName -> [ObjectId] -> ObjectMonad m [ObjectId]Source

setMember :: Monad m => ObjectId -> VarName -> ObjectId -> ObjectMonad m ()Source

setMethod :: Monad m => ObjectId -> String -> Method m -> ObjectMonad m VarNameSource

liftPT :: Monad m => m a -> ObjectMonad m aSource

primInt :: Int -> ObjectIdSource

primStr :: String -> ObjectIdSource

fromPrimInt :: ObjectId -> IntSource

fromPrimStr :: ObjectId -> StringSource

printMemberName :: MonadIO m => VarName -> m ()Source