ref: 4c1da0f76c348c4823d7679a00b86cd924eae98c
parent: fd4a360a3779c67c01b24ee93cf0d668097638c9
author: Lennart Augustsson <lennart@augustsson.net>
date: Wed Apr 3 17:00:16 EDT 2024
Make defaults actually default to the standard list.
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -524,8 +524,11 @@
in TC { moduleName = mn, unique = 1, fixTable = addPrimFixs fs, typeTable = xts,synTable = ss, valueTable = xvs, assocTable = as, uvarSubst = IM.empty,
tcMode = TCExpr, classTable = cs, ctxTables = (is,[],[],[]), constraints = [],
- defaults = [EVar identInteger, EVar identFloatW, EApp (EVar identList) (EVar identChar)] }
+ defaults = stdDefaults }
+stdDefaults :: [EType]
+stdDefaults = [EVar identInteger, EVar identFloatW, EApp (EVar identList) (EVar identChar)]
+
addPrimFixs :: FixTable -> FixTable
addPrimFixs =
M.insert (mkIdent "Primitives.->") (AssocRight, -1) .
@@ -949,7 +952,7 @@
setDefault :: [EDef] -> T ()
setDefault defs = do
- let ds = last $ [] : [ ts | Default ts <- defs ]
+ let ds = last $ stdDefaults : [ ts | Default ts <- defs ]
ds' <- mapM expandSyn ds
putDefaults ds'
--
⑨