egison-3.10.2: 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 values

data EgisonValue Source #

class EgisonData a where Source #

Instances
EgisonData Bool Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Char Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Double Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Integer Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Rational Source # 
Instance details

Defined in Language.Egison.Types

EgisonData () Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Handle Source # 
Instance details

Defined in Language.Egison.Types

EgisonData Text Source # 
Instance details

Defined in Language.Egison.Types

EgisonData a => EgisonData [a] Source # 
Instance details

Defined in Language.Egison.Types

(EgisonData a, EgisonData b) => EgisonData (a, b) Source # 
Instance details

Defined in Language.Egison.Types

(EgisonData a, EgisonData b, EgisonData c) => EgisonData (a, b, c) Source # 
Instance details

Defined in Language.Egison.Types

Methods

toEgison :: (a, b, c) -> EgisonValue Source #

fromEgison :: EgisonValue -> EgisonM (a, b, c) Source #

(EgisonData a, EgisonData b, EgisonData c, EgisonData d) => EgisonData (a, b, c, d) Source # 
Instance details

Defined in Language.Egison.Types

Methods

toEgison :: (a, b, c, d) -> EgisonValue Source #

fromEgison :: EgisonValue -> EgisonM (a, b, c, d) Source #

data Tensor a Source #

Constructors

Tensor [Integer] (Vector a) [Index EgisonValue] 
Scalar a 
Instances
Show a => Show (Tensor a) Source # 
Instance details

Defined in Language.Egison.Types

Methods

showsPrec :: Int -> Tensor a -> ShowS #

show :: Tensor a -> String #

showList :: [Tensor a] -> ShowS #

Scalar

Internal data

data Object Source #

Instances
Show Object Source # 
Instance details

Defined in Language.Egison.Types

Show ObjectRef Source # 
Instance details

Defined in Language.Egison.Types

type ObjectRef = IORef Object Source #

For memoization

Environment

data Env Source #

Instances
Show Env Source # 
Instance details

Defined in Language.Egison.Types

Methods

showsPrec :: Int -> Env -> ShowS #

show :: Env -> String #

showList :: [Env] -> ShowS #

Pattern matching

Errors

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

Monads

newtype EgisonM a Source #

Constructors

EgisonM 
Instances
Monad EgisonM Source # 
Instance details

Defined in Language.Egison.Types

Methods

(>>=) :: EgisonM a -> (a -> EgisonM b) -> EgisonM b #

(>>) :: EgisonM a -> EgisonM b -> EgisonM b #

return :: a -> EgisonM a #

fail :: String -> EgisonM a #

Functor EgisonM Source # 
Instance details

Defined in Language.Egison.Types

Methods

fmap :: (a -> b) -> EgisonM a -> EgisonM b #

(<$) :: a -> EgisonM b -> EgisonM a #

MonadFail EgisonM Source # 
Instance details

Defined in Language.Egison.Types

Methods

fail :: String -> EgisonM a #

Applicative EgisonM Source # 
Instance details

Defined in Language.Egison.Types

Methods

pure :: a -> EgisonM a #

(<*>) :: EgisonM (a -> b) -> EgisonM a -> EgisonM b #

liftA2 :: (a -> b -> c) -> EgisonM a -> EgisonM b -> EgisonM c #

(*>) :: EgisonM a -> EgisonM b -> EgisonM b #

(<*) :: EgisonM a -> EgisonM b -> EgisonM a #

MonadIO EgisonM Source # 
Instance details

Defined in Language.Egison.Types

Methods

liftIO :: IO a -> EgisonM a #

MonadFresh EgisonM Source # 
Instance details

Defined in Language.Egison.Types

MonadError EgisonError EgisonM Source # 
Instance details

Defined in Language.Egison.Types

newtype FreshT m a Source #

Constructors

FreshT 

Fields

Instances
MonadTrans FreshT Source # 
Instance details

Defined in Language.Egison.Types

Methods

lift :: Monad m => m a -> FreshT m a #

MonadState s m => MonadState s (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

Methods

get :: FreshT m s #

put :: s -> FreshT m () #

state :: (s -> (a, s)) -> FreshT m a #

MonadError e m => MonadError e (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

Methods

throwError :: e -> FreshT m a #

catchError :: FreshT m a -> (e -> FreshT m a) -> FreshT m a #

Monad m => Monad (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

Methods

(>>=) :: FreshT m a -> (a -> FreshT m b) -> FreshT m b #

(>>) :: FreshT m a -> FreshT m b -> FreshT m b #

return :: a -> FreshT m a #

fail :: String -> FreshT m a #

Functor m => Functor (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

Methods

fmap :: (a -> b) -> FreshT m a -> FreshT m b #

(<$) :: a -> FreshT m b -> FreshT m a #

Monad m => Applicative (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

Methods

pure :: a -> FreshT m a #

(<*>) :: FreshT m (a -> b) -> FreshT m a -> FreshT m b #

liftA2 :: (a -> b -> c) -> FreshT m a -> FreshT m b -> FreshT m c #

(*>) :: FreshT m a -> FreshT m b -> FreshT m b #

(<*) :: FreshT m a -> FreshT m b -> FreshT m a #

MonadIO (FreshT IO) Source # 
Instance details

Defined in Language.Egison.Types

Methods

liftIO :: IO a -> FreshT IO a #

(Applicative m, Monad m) => MonadFresh (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

class (Applicative m, Monad m) => MonadFresh m where Source #

Instances
MonadFresh EgisonM Source # 
Instance details

Defined in Language.Egison.Types

(Applicative m, Monad m) => MonadFresh (FreshT m) Source # 
Instance details

Defined in Language.Egison.Types

MonadFresh m => MonadFresh (ExceptT e m) Source # 
Instance details

Defined in Language.Egison.Types

MonadFresh m => MonadFresh (StateT s m) Source # 
Instance details

Defined in Language.Egison.Types

(MonadFresh m, Monoid e) => MonadFresh (WriterT e m) Source # 
Instance details

Defined in Language.Egison.Types

(MonadFresh m, Monoid e) => MonadFresh (ReaderT e m) Source # 
Instance details

Defined in Language.Egison.Types

runFreshT :: Monad m => RuntimeState -> FreshT m a -> m (a, RuntimeState) Source #

data MList m a Source #

Constructors

MNil 
MCons a (m (MList m a)) 
Instances
Show a => Show (MList m a) Source # 
Instance details

Defined in Language.Egison.Types

Methods

showsPrec :: Int -> MList m a -> ShowS #

show :: MList m a -> String #

showList :: [MList m a] -> ShowS #

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 #

Typing