egison-3.3.13: Programming language with non-linear pattern-matching against unfree data

Safe HaskellNone

Language.Egison.Types

Contents

Description

This module contains type definitions of Egison Data.

Synopsis

Egison expressions

data EgisonTopExpr Source

Constructors

Define String EgisonExpr 
Test EgisonExpr 
Execute EgisonExpr 
LoadFile String 
Load String 

Instances

type BindingExpr = ([String], EgisonExpr)Source

Egison values

class EgisonData a whereSource

Instances

EgisonData Bool 
EgisonData Char 
EgisonData Double 
EgisonData Integer 
EgisonData Rational 
EgisonData () 
EgisonData Text 
EgisonData Handle 
EgisonData a => EgisonData [a] 
(EgisonData a, EgisonData b) => EgisonData (a, b) 
(EgisonData a, EgisonData b, EgisonData c) => EgisonData (a, b, c) 
(EgisonData a, EgisonData b, EgisonData c, EgisonData d) => EgisonData (a, b, c, d) 

Internal data

data Object Source

Instances

Show Object 
Show ObjectRef 

type ObjectRef = IORef ObjectSource

For memoization

class EgisonData a => EgisonWHNF a whereSource

Instances

EgisonWHNF Bool 
EgisonWHNF Char 
EgisonWHNF Double 
EgisonWHNF Integer 
EgisonWHNF Rational 
EgisonWHNF Text 
EgisonWHNF Handle 

Environment

type Var = StringSource

Pattern matching

data PMMode Source

Constructors

BFSMode 
DFSMode 

Instances

Show PMMode 

Errors

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

Monads

newtype EgisonM a Source

Constructors

EgisonM 

fromEgisonM :: EgisonM a -> IO (Either EgisonError a)Source

newtype FreshT m a Source

Constructors

FreshT 

Fields

unFreshT :: StateT Int m a
 

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 whereSource

Methods

fresh :: m StringSource

Instances

MonadFresh EgisonM 
MonadFresh DesugarM 
(Applicative m, Monad m) => MonadFresh (FreshT m) 
(MonadFresh m, Monoid e) => MonadFresh (ReaderT e m) 
MonadFresh m => MonadFresh (StateT s m) 
(MonadFresh m, Error e) => MonadFresh (ErrorT e m) 
(MonadFresh m, Monoid e) => MonadFresh (WriterT e m) 

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 aSource

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

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

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

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

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