{-# LANGUAGE DeriveAnyClass #-} module Minilang.Lambda.Eval where import Data.Aeson (FromJSON, ToJSON) import Data.Text (Text) import GHC.Generics (Generic) data Term = Var Text | Lam Text Term | App Term Term deriving (Show, Read, Eq, Generic, ToJSON, FromJSON) type Env = [(Text, Term)] newEnv :: Env newEnv = [] -- call-by-value evaluator eval :: Term -> Env -> Term eval = undefined evalNeed :: Term -> Env -> Term evalNeed = undefined