unlambda-0.1.4.2: Unlambda interpreter

Safe HaskellSafe
LanguageHaskell98

Language.Unlambda

Documentation

data Exp Source #

Constructors

App Exp Exp 
K 
K1 Exp 
S 
S1 Exp 
S2 Exp Exp 
I 
V 
C 
Cont (Cont Exp) 
D 
D1 Exp 
Dot Char 
E 
At 
Ques Char 
Pipe 
Instances
Show Exp Source # 
Instance details

Defined in Language.Unlambda

newtype Eval a Source #

Constructors

Eval ((Maybe Char, Int) -> Cont a -> IO Exp) 
Instances
Monad Eval Source # 
Instance details

Defined in Language.Unlambda

Methods

(>>=) :: Eval a -> (a -> Eval b) -> Eval b Source #

(>>) :: Eval a -> Eval b -> Eval b Source #

return :: a -> Eval a Source #

fail :: String -> Eval a Source #

Functor Eval Source # 
Instance details

Defined in Language.Unlambda

Methods

fmap :: (a -> b) -> Eval a -> Eval b Source #

(<$) :: a -> Eval b -> Eval a Source #

Applicative Eval Source # 
Instance details

Defined in Language.Unlambda

Methods

pure :: a -> Eval a Source #

(<*>) :: Eval (a -> b) -> Eval a -> Eval b Source #

liftA2 :: (a -> b -> c) -> Eval a -> Eval b -> Eval c Source #

(*>) :: Eval a -> Eval b -> Eval b Source #

(<*) :: Eval a -> Eval b -> Eval a Source #

type Cont a = (Maybe Char, Int) -> a -> IO Exp Source #

io :: IO a -> Eval a Source #

throw :: ((Maybe Char, Int) -> t -> IO Exp) -> t -> Eval a Source #

exit :: Exp -> Eval a Source #

callCC :: (((Maybe Char, Int) -> a -> IO Exp) -> Eval a) -> Eval a Source #