unlambda-0.1.4.2: Unlambda interpreter
Language.Unlambda
data Exp Source #
Constructors
Instances
Methods
showsPrec :: Int -> Exp -> ShowS #
show :: Exp -> String #
showList :: [Exp] -> ShowS #
sh :: Exp -> String -> String Source #
newtype Eval a Source #
(>>=) :: Eval a -> (a -> Eval b) -> Eval b #
(>>) :: Eval a -> Eval b -> Eval b #
return :: a -> Eval a #
fail :: String -> Eval a #
fmap :: (a -> b) -> Eval a -> Eval b #
(<$) :: a -> Eval b -> Eval a #
pure :: a -> Eval a #
(<*>) :: Eval (a -> b) -> Eval a -> Eval b #
(*>) :: Eval a -> Eval b -> Eval b #
(<*) :: Eval a -> Eval b -> 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 #