egison-3.6.0: Programming language with non-linear pattern-matching against non-free data

CopyrightSatoshi Egi
LicenseMIT
Safe HaskellNone
LanguageHaskell98

Language.Egison.Types

Contents

Description

This module contains type definitions of Egison Data.

Synopsis

Egison expressions

data EgisonExpr Source

Constructors

CharExpr Char 
StringExpr Text 
BoolExpr Bool 
IntegerExpr Integer 
FloatExpr Double Double 
VarExpr String 
IndexedExpr EgisonExpr [EgisonExpr] 
PowerExpr EgisonExpr EgisonExpr 
InductiveDataExpr String [EgisonExpr] 
TupleExpr [EgisonExpr] 
CollectionExpr [InnerExpr] 
ArrayExpr [EgisonExpr] 
HashExpr [(EgisonExpr, EgisonExpr)] 
TensorExpr EgisonExpr EgisonExpr 
LambdaExpr [String] EgisonExpr 
MemoizedLambdaExpr [String] EgisonExpr 
MemoizeExpr [(EgisonExpr, EgisonExpr, EgisonExpr)] EgisonExpr 
CambdaExpr String EgisonExpr 
MacroExpr [String] EgisonExpr 
PatternFunctionExpr [String] EgisonPattern 
IfExpr EgisonExpr EgisonExpr EgisonExpr 
LetRecExpr [BindingExpr] EgisonExpr 
LetExpr [BindingExpr] EgisonExpr 
LetStarExpr [BindingExpr] EgisonExpr 
MatchExpr EgisonExpr EgisonExpr [MatchClause] 
MatchAllExpr EgisonExpr EgisonExpr MatchClause 
MatchLambdaExpr EgisonExpr [MatchClause] 
MatchAllLambdaExpr EgisonExpr MatchClause 
NextMatchExpr EgisonExpr EgisonExpr [MatchClause] 
NextMatchAllExpr EgisonExpr EgisonExpr MatchClause 
NextMatchLambdaExpr EgisonExpr [MatchClause] 
NextMatchAllLambdaExpr EgisonExpr MatchClause 
MatcherBFSExpr MatcherInfo 
MatcherDFSExpr MatcherInfo 
AlgebraicDataMatcherExpr [(String, [EgisonExpr])] 
DoExpr [BindingExpr] EgisonExpr 
IoExpr EgisonExpr 
SeqExpr EgisonExpr EgisonExpr 
ApplyExpr EgisonExpr EgisonExpr 
CApplyExpr EgisonExpr EgisonExpr 
PartialExpr Integer EgisonExpr 
PartialVarExpr Integer 
RecVarExpr 
GenerateArrayExpr EgisonExpr (EgisonExpr, EgisonExpr) 
ArrayBoundsExpr EgisonExpr 
ArrayRefExpr EgisonExpr EgisonExpr 
GenerateTensorExpr EgisonExpr EgisonExpr 
InitTensorExpr EgisonExpr EgisonExpr EgisonExpr 
TensorMapExpr EgisonExpr EgisonExpr 
TensorMap2Expr EgisonExpr EgisonExpr EgisonExpr 
SomethingExpr 
UndefinedExpr 

Egison values

data PolyExpr Source

Constructors

Plus [TermExpr] 

data Tensor a Source

Constructors

Tensor [Integer] [a] 

Instances

tref' :: [Integer] -> Tensor a -> a Source

tToList :: Tensor a -> [a] Source

Internal data

type ObjectRef = IORef Object Source

For memoization

Environment

data Env Source

Constructors

Env [HashMap Var ObjectRef] 

Instances

Pattern matching

data PMMode Source

Constructors

BFSMode 
DFSMode 

Instances

Errors

liftError :: MonadError e m => Either e a -> m a Source

Monads

runFreshT :: Monad m => Int -> FreshT m a -> m (a, Int) Source

data MList m a Source

Constructors

MNil 
MCons a (m (MList m a)) 

Instances

Show (MList m a) Source 

fromList :: Monad m => [a] -> MList m a Source

fromSeq :: Monad m => Seq a -> MList m a Source

fromMList :: Monad m => MList m a -> m [a] Source

msingleton :: Monad m => a -> MList m a Source

mfoldr :: Monad m => (a -> m b -> m b) -> m b -> MList m a -> m b Source

mappend :: Monad m => MList m a -> m (MList m a) -> m (MList m a) Source

mconcat :: Monad m => MList m (MList m a) -> m (MList m a) Source

mmap :: Monad m => (a -> m b) -> MList m a -> m (MList m b) Source

mfor :: Monad m => MList m a -> (a -> m b) -> m (MList m b) Source

Typing