-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Haskell implementation of the SECD abstract machine -- -- Please see README.md @package secd @version 0.1.0.0 module SECD.Types data MValue MInt :: Int -> MValue MClosure :: [Command] -> [MValue] -> MValue MUndefined :: MValue data Command IInt :: Int -> Command IAdd :: Command ISub :: Command IAccess :: Int -> Command IClosure :: [Command] -> Command IApply :: Command IReturn :: Command type SECD = ([Command], [MValue], [MValue]) instance GHC.Classes.Eq SECD.Types.MValue instance GHC.Show.Show SECD.Types.Command instance GHC.Classes.Eq SECD.Types.Command instance GHC.Show.Show SECD.Types.MValue module SECD.Eval -- | Evaluate the SECD commands into a value eval :: [Command] -> MValue instance GHC.Show.Show SECD.Eval.EvalError module SECD module Language.MicroLisp.SExprParser -- | Parse an s-expression readSExpr :: String -> Either ParseError SExpr data SExpr SAtom :: String -> SExpr SList :: [SExpr] -> SExpr SInt :: Int -> SExpr module Language.MicroLisp.Compiler -- | Compile the given lisp code to SECD commands compile :: String -> Either CompileError [Command] data CompileError CompileError :: CompileError ParseError :: CompileError instance GHC.Classes.Eq Language.MicroLisp.Compiler.DBTerm instance GHC.Show.Show Language.MicroLisp.Compiler.DBTerm instance GHC.Classes.Eq Language.MicroLisp.Compiler.LTerm instance GHC.Show.Show Language.MicroLisp.Compiler.LTerm instance GHC.Show.Show Language.MicroLisp.Compiler.CompileError instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.MicroLisp.Compiler.SF a) instance GHC.Show.Show a => GHC.Show.Show (Language.MicroLisp.Compiler.SF a) module Language.MicroLisp