| 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 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
Constructors
| LoopContext Binding ObjectRef EgisonPattern EgisonPattern |
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