diff src/elaborate.sml @ 284:77a28e7430bf

intToString
author Adam Chlipala <adamc@hcoop.net>
date Sun, 07 Sep 2008 10:13:02 -0400
parents fdd7a698be01
children f387d12193ba
line wrap: on
line diff
--- a/src/elaborate.sml	Sun Sep 07 10:02:27 2008 -0400
+++ b/src/elaborate.sml	Sun Sep 07 10:13:02 2008 -0400
@@ -1923,6 +1923,10 @@
             val nxs = length xs - 1
             val t = ListUtil.foldli (fn (i, _, t) => (L'.CApp (t, (L'.CRel (nxs - i), loc)), loc)) t xs
 
+            val (env', denv') = foldl (fn (x, (env', denv')) =>
+                                          (E.pushCRel env' x k,
+                                           D.enter denv')) (env, denv) xs
+
             val (xcs, (used, env, gs)) =
                 ListUtil.foldlMap
                 (fn ((x, to), (used, env, gs)) =>
@@ -1931,9 +1935,9 @@
                                            NONE => (NONE, t, gs)
                                          | SOME t' =>
                                            let
-                                               val (t', tk, gs') = elabCon (env, denv) t'
+                                               val (t', tk, gs') = elabCon (env', denv') t'
                                            in
-                                               checkKind env t' tk k;
+                                               checkKind env' t' tk k;
                                                (SOME t', (L'.TFun (t', t), loc), gs' @ gs)
                                            end
                         val t = foldl (fn (x, t) => (L'.TCFun (L'.Implicit, x, k, t), loc)) t xs