egison-3.5.8: 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

Instances

Egison values

Internal data

type ObjectRef = IORef Object Source

For memoization

Environment

Pattern matching

data PMMode Source

Constructors

BFSMode 
DFSMode 

Instances

Errors

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

Monads

newtype FreshT m a Source

Constructors

FreshT 

Fields

unFreshT :: StateT Int m a
 

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) 

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