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

CopyrightSatoshi Egi
LicenseMIT
Safe HaskellNone
LanguageHaskell98

Language.Egison.Types

Contents

Description

This module contains type definitions of Egison Data.

Synopsis

Egison expressions

Egison values

class Egison a where Source

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

Environment

Pattern matching

data PMMode Source

Constructors

BFSMode 
DFSMode 

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

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