-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Please see the README on GitHub at -- https://github.com/githubuser/lambda-calculus-interpreter#readme @package lambda-calculus-interpreter @version 0.1.0.1 module Utils maybeToEither :: e -> Maybe a -> Either e a module Lib type Identifier = String newtype ErrIdentifier ErrIdentifier :: String -> ErrIdentifier type Env a = [(Identifier, a)] data Expr Lit :: String -> Expr Term :: Identifier -> Expr Abs :: Identifier -> Expr -> Expr App :: Expr -> Expr -> Expr data Value Value :: String -> Value Closure :: Expr -> (Env Value) -> Identifier -> Value data Error UndeclaredVar :: String -> Error NonFunctionApp :: String -> Error eval :: Env Value -> Expr -> Either Error Value betaReduce :: Env Expr -> Expr -> Either Error Expr data ShadowVar ShadowVar :: ErrIdentifier -> Expr -> ShadowVar checkShadowing :: [Identifier] -> Expr -> [ShadowVar] checkUnused :: Expr -> [Identifier] mergeUnused :: (Eq a) => [a] -> [a] -> [a] -> [a] etaReduce :: Expr -> Expr isFreeVarOf :: Identifier -> Expr -> Bool compile :: Expr -> Either Error String compile' :: Expr -> Either Error String instance GHC.Classes.Eq Lib.Error instance GHC.Classes.Eq Lib.Value instance GHC.Show.Show Lib.Value instance GHC.Classes.Eq Lib.Expr instance GHC.Show.Show Lib.Expr instance GHC.Classes.Eq Lib.ErrIdentifier instance GHC.Classes.Eq Lib.ShadowVar instance GHC.Show.Show Lib.ShadowVar instance GHC.Show.Show Lib.Error instance GHC.Show.Show Lib.ErrIdentifier module Parser data Parser s m a Parser :: s -> m (a, s) -> Parser s m a [runParser] :: Parser s m a -> s -> m (a, s) item :: (Alternative m) => Parser String m Char satisfy :: (Alternative m, Monad m) => (Char -> Bool) -> Parser String m Char char :: (Alternative m, Monad m) => Char -> Parser String m Char lit :: (Alternative m, Monad m) => Parser String m Expr identifier :: (Alternative m, Monad m) => Parser String m Identifier term :: (Alternative m, Monad m) => Parser String m Expr lambda :: (Alternative m, Monad m) => Parser String m Expr app :: (Alternative m, Monad m) => Parser String m Expr expr :: (Alternative m, Monad m) => Parser String m Expr instance GHC.Base.Functor m => GHC.Base.Functor (Parser.Parser s m) instance GHC.Base.Monad m => GHC.Base.Applicative (Parser.Parser s m) instance GHC.Base.Monad m => GHC.Base.Monad (Parser.Parser s m) instance (GHC.Base.Alternative m, GHC.Base.Monad m) => GHC.Base.Alternative (Parser.Parser s m)