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

Safe HaskellNone

Language.Egison.Types

Contents

Description

This module contains type definitions of Egison Data.

Synopsis

Egison expressions

data LoopMode Source

Constructors

NaiveMode 
SmartMode 

Instances

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