shithub: MicroHs

Download patch

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'
 
--