Safe Haskell | None |
---|---|
Language | Haskell98 |
Language.Egison.Types
Documentation
data EgisonTopExpr Source
Instances
data EgisonExpr Source
Constructors
Instances
type BindingExpr = ([String], EgisonExpr) Source
type MatchClause = (EgisonPattern, EgisonExpr) Source
type MatcherInfo = [(PrimitivePatPattern, EgisonExpr, [(PrimitiveDataPattern, EgisonExpr)])] Source
data EgisonPattern Source
Constructors
Instances
data PrimitivePatPattern Source
Constructors
PPWildCard | |
PPPatVar | |
PPValuePat String | |
PPInductivePat String [PrimitivePatPattern] |
Instances
data PrimitiveDataPattern Source
Constructors
Instances
Constructors
ElementExpr EgisonExpr | |
SubCollectionExpr EgisonExpr |
data EgisonValue Source
Constructors
Instances
type Matcher = (Env, MatcherInfo) Source
type PrimitiveFunc = [WHNFData] -> EgisonM EgisonValue Source
data Intermediate Source
data EgisonHashKey Source
Constructors
IntKey Integer | |
StrKey ByteString |
data MatchingState Source
Constructors
MState Env [LoopContext] [Binding] [MatchingTree] |
data MatchingTree Source
Constructors
MAtom EgisonPattern ObjectRef WHNFData | |
MNode [PatternBinding] MatchingState |
type PatternBinding = (Var, EgisonPattern) Source
data LoopContext Source
data EgisonError Source
liftError :: MonadError e m => Either e a -> m a Source
Instances
MonadTrans FreshT | |
MonadError e m => MonadError e (FreshT m) | |
Monad m => MonadState Int (FreshT m) | |
MonadState s m => MonadState s (FreshT m) | |
Monad m => Monad (FreshT m) | |
Functor m => Functor (FreshT m) | |
(Monad m, Functor m) => Applicative (FreshT m) | |
MonadIO (FreshT IO) | |
(Applicative m, Monad m) => MonadFresh (FreshT m) |
class (Applicative m, Monad m) => MonadFresh m where Source
Instances
MonadFresh EgisonM | |
MonadFresh DesugarM | |
(Applicative m, Monad m) => MonadFresh (FreshT m) | |
(MonadFresh m, Monoid e) => MonadFresh (ReaderT e m) | |
(MonadFresh m, Error e) => MonadFresh (ErrorT e m) | |
MonadFresh m => MonadFresh (StateT s m) | |
(MonadFresh m, Monoid e) => MonadFresh (WriterT e m) |
runEgisonM :: EgisonM a -> FreshT IO (Either EgisonError a) Source
liftEgisonM :: Fresh (Either EgisonError a) -> EgisonM a Source
msingleton :: Monad m => a -> MList m a Source