diff src/cjr_env.sml @ 109:813e5a52063d

Remove closure conversion in favor of zany fun with modules, which also replaces 'page'
author Adam Chlipala <adamc@hcoop.net>
date Sun, 13 Jul 2008 10:17:06 -0400
parents 717b6f8d8505
children 91027db5a07c
line wrap: on
line diff
--- a/src/cjr_env.sml	Thu Jul 10 16:05:14 2008 -0400
+++ b/src/cjr_env.sml	Sun Jul 13 10:17:06 2008 -0400
@@ -44,7 +44,6 @@
      relE : (string * typ) list,
      namedE : (string * typ) IM.map,
 
-     F : (string * typ * typ) IM.map,
      structs : (string * typ) list IM.map
 }
 
@@ -55,7 +54,6 @@
     relE = [],
     namedE = IM.empty,
 
-    F = IM.empty,
     structs = IM.empty
 }
 
@@ -66,7 +64,6 @@
      relE = #relE env,
      namedE = #namedE env,
 
-     F = #F env,
      structs = #structs env}
 
 fun lookupTNamed (env : env) n =
@@ -81,7 +78,6 @@
      relE = (x, t) :: #relE env,
      namedE = #namedE env,
 
-     F = #F env,
      structs = #structs env}
 
 fun lookupERel (env : env) n =
@@ -99,7 +95,6 @@
      relE = #relE env,
      namedE = IM.insert (#namedE env, n, (x, t)),
 
-     F = #F env,
      structs = #structs env}
 
 fun lookupENamed (env : env) n =
@@ -107,21 +102,6 @@
         NONE => raise UnboundNamed n
       | SOME x => x
 
-fun pushF (env : env) n x dom ran =
-    {namedT = #namedT env,
-
-     numRelE = #numRelE env,
-     relE = #relE env,
-     namedE = #namedE env,
-
-     F = IM.insert (#F env, n, (x, dom, ran)),
-     structs = #structs env}
-
-fun lookupF (env : env) n =
-    case IM.find (#F env, n) of
-        NONE => raise UnboundF n
-      | SOME x => x
-
 fun pushStruct (env : env) n xts =
     {namedT = #namedT env,
 
@@ -129,7 +109,6 @@
      relE = #relE env,
      namedE = #namedE env,
 
-     F = #F env,
      structs = IM.insert (#structs env, n, xts)}
 
 fun lookupStruct (env : env) n =
@@ -137,10 +116,10 @@
         NONE => raise UnboundStruct n
       | SOME x => x
 
-fun declBinds env (d, _) =
+fun declBinds env (d, loc) =
     case d of
         DVal (x, n, t, _) => pushENamed env x n t
-      | DFun (n, x, dom, ran, _) => pushF env n x dom ran
+      | DFun (fx, n, _, dom, ran, _) => pushENamed env fx n (TFun (dom, ran), loc)
       | DStruct (n, xts) => pushStruct env n xts
 
 end