summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud@pankzsoft.com>2025-11-06 08:35:36 +0100
committerArnaud Bailly <arnaud@pankzsoft.com>2025-11-06 08:35:36 +0100
commitb87d5b45110cd7efe7109dd6d4e9c19ef28522aa (patch)
tree2fd831c479523b8a77d6a721e00ec5b610a7b111 /lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs
parent6d35fd9630238375cc28a282780f597421107469 (diff)
downloadlambda-nantes-b87d5b45110cd7efe7109dd6d4e9c19ef28522aa.tar.gz
evaluate terms when defining them
Diffstat (limited to 'lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs')
-rw-r--r--lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs b/lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs
index ab590c6..2052398 100644
--- a/lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs
+++ b/lambda-calcul/haskell/src/Minilang/Lambda/Infer.hs
@@ -61,6 +61,10 @@ data Context = Context
}
deriving (Eq, Show, Generic, ToJSON, FromJSON)
+extendContext :: Text -> Type -> Context -> Context
+extendContext x ty (Context n env) =
+ Context n (Map.insert x ty env)
+
annotate :: Eval.Term -> Either TypeError (ATerm Type)
annotate t =
evalStateT (go (fromTerm t) []) newContext