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

Egison values

class Egison a whereSource

Instances

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

Internal data

type ObjectRef = IORef ObjectSource

For memoization

Environment

Pattern matching

data PMMode Source

Constructors

BFSMode 
DFSMode 

Instances

Errors

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

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 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