Language.Unlambda
data Exp Source #
Constructors
Defined in Language.Unlambda
Methods
showsPrec :: Int -> Exp -> ShowS
show :: Exp -> String
showList :: [Exp] -> ShowS
sh :: Exp -> String -> String Source #
newtype Eval a Source #
pure :: a -> Eval a
(<*>) :: Eval (a -> b) -> Eval a -> Eval b
liftA2 :: (a -> b -> c) -> Eval a -> Eval b -> Eval c
(*>) :: Eval a -> Eval b -> Eval b
(<*) :: Eval a -> Eval b -> Eval a
fmap :: (a -> b) -> Eval a -> Eval b
(<$) :: a -> Eval b -> Eval a
(>>=) :: Eval a -> (a -> Eval b) -> Eval b
(>>) :: Eval a -> Eval b -> Eval b
return :: a -> Eval a
type Cont a = (Maybe Char, Int) -> a -> IO Exp Source #
currentChar :: Eval (Maybe Char) Source #
setCurrentChar :: Maybe Char -> Eval () 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 #
step :: Eval () Source #
eval :: Exp -> Eval Exp Source #
apply :: Exp -> Exp -> Eval Exp Source #