crjdt-haskell-0.1.0.0: A Conflict-Free Replicated JSON Datatype for Haskell

Safe HaskellNone
LanguageHaskell2010

Data.Crjdt.Eval

Documentation

newtype Eval a Source #

Constructors

Eval 

Instances

Monad Eval Source # 

Methods

(>>=) :: Eval a -> (a -> Eval b) -> Eval b #

(>>) :: Eval a -> Eval b -> Eval b #

return :: a -> Eval a #

fail :: String -> Eval a #

Functor Eval Source # 

Methods

fmap :: (a -> b) -> Eval a -> Eval b #

(<$) :: a -> Eval b -> Eval a #

MonadFix Eval Source # 

Methods

mfix :: (a -> Eval a) -> Eval a #

Applicative Eval Source # 

Methods

pure :: a -> Eval a #

(<*>) :: Eval (a -> b) -> Eval a -> Eval b #

(*>) :: Eval a -> Eval b -> Eval b #

(<*) :: Eval a -> Eval b -> Eval a #

MonadError EvalError Eval Source # 

Methods

throwError :: EvalError -> Eval a #

catchError :: Eval a -> (EvalError -> Eval a) -> Eval a #

MonadState Context Eval Source # 

Methods

get :: Eval Context #

put :: Context -> Eval () #

state :: (Context -> (a, Context)) -> Eval a #

addVariable :: Ctx m => Var -> Cursor -> m () Source #

execute :: Ctx m => Command a -> m a Source #

eval :: Ctx m => Expr -> m Result Source #