diff src/reduce.sml @ 1181:618f9f458da9

Got split1 working, but noticed a nasty type inference bug with transplanted unification variables
author Adam Chlipala <adamc@hcoop.net>
date Sat, 06 Mar 2010 19:14:48 -0500
parents c58453683bbb
children c316ca3c9ec6
line wrap: on
line diff
--- a/src/reduce.sml	Sat Mar 06 16:15:26 2010 -0500
+++ b/src/reduce.sml	Sat Mar 06 19:14:48 2010 -0500
@@ -423,7 +423,15 @@
                             in
                                 case #1 e1 of
                                     EAbs (_, _, _, b) =>
-                                    exp (KnownE e2 :: env') b
+                                    let
+                                        val r = exp (KnownE e2 :: env') b
+                                    in
+                                        (*Print.prefaces "eapp" [("b", CorePrint.p_exp CoreEnv.empty b),
+                                                               ("env", Print.PD.string (e2s env')),
+                                                               ("e2", CorePrint.p_exp CoreEnv.empty e2),
+                                                               ("r", CorePrint.p_exp CoreEnv.empty r)];*)
+                                        r
+                                    end
                                   | _ => (EApp (e1, e2), loc)
                             end
 
@@ -435,7 +443,17 @@
                                 val c = con env c
                             in
                                 case #1 e of
-                                    ECAbs (_, _, b) => exp (KnownC c :: deKnown env) b
+                                    ECAbs (_, _, b) =>
+                                    let
+                                        val r = exp (KnownC c :: deKnown env) b
+                                    in
+                                        (*Print.prefaces "csub" [("l", Print.PD.string (ErrorMsg.spanToString loc)),
+                                                               ("env", Print.PD.string (e2s (deKnown env))),
+                                                               ("b", CorePrint.p_exp CoreEnv.empty b),
+                                                               ("c", CorePrint.p_con CoreEnv.empty c),
+                                                               ("r", CorePrint.p_exp CoreEnv.empty r)];*)
+                                        r
+                                    end
                                   | _ => (ECApp (e, c), loc)
                             end
 
@@ -446,7 +464,16 @@
                                 val e = exp env e
                             in
                                 case #1 e of
-                                    EKAbs (_, b) => exp (KnownK k :: deKnown env) b
+                                    EKAbs (_, b) =>
+                                    let
+                                        val r = exp (KnownK k :: deKnown env) b
+                                    in
+                                        (*Print.prefaces "ksub" [("l", Print.PD.string (ErrorMsg.spanToString loc)),
+                                                               ("b", CorePrint.p_exp CoreEnv.empty b),
+                                                               ("k", CorePrint.p_kind CoreEnv.empty k),
+                                                               ("r", CorePrint.p_exp CoreEnv.empty r)];*)
+                                        r
+                                    end
                                   | _ => (EKApp (e, kind env k), loc)
                             end