diff src/elab_env.sml @ 825:7f871c03e3a1

Destructing local let, to the point where demo compiles
author Adam Chlipala <adamc@hcoop.net>
date Thu, 28 May 2009 12:07:05 -0400
parents e2780d2f4afc
children e571fb150a9f
line wrap: on
line diff
--- a/src/elab_env.sml	Thu May 28 11:45:45 2009 -0400
+++ b/src/elab_env.sml	Thu May 28 12:07:05 2009 -0400
@@ -1454,9 +1454,18 @@
       | SgnError => SOME []
       | _ => NONE
 
+fun patBinds env (p, loc) =
+    case p of
+        PWild => env
+      | PVar (x, t) => pushERel env x t
+      | PPrim _ => env
+      | PCon (_, _, _, NONE) => env
+      | PCon (_, _, _, SOME p) => patBinds env p
+      | PRecord xps => foldl (fn ((_, p, _), env) => patBinds env p) env xps
+
 fun edeclBinds env (d, loc) =
     case d of
-        EDVal (x, t, _) => pushERel env x t
+        EDVal (p, _, _) => patBinds env p
       | EDValRec vis => foldl (fn ((x, t, _), env) => pushERel env x t) env vis
 
 fun declBinds env (d, loc) =
@@ -1565,13 +1574,4 @@
             pushENamedAs env x n t
         end
 
-fun patBinds env (p, loc) =
-    case p of
-        PWild => env
-      | PVar (x, t) => pushERel env x t
-      | PPrim _ => env
-      | PCon (_, _, _, NONE) => env
-      | PCon (_, _, _, SOME p) => patBinds env p
-      | PRecord xps => foldl (fn ((_, p, _), env) => patBinds env p) env xps
-
 end