blob: 7f7aad7ea2dd122fc23d895b9f2bef25d8f842ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{-# 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
|