summaryrefslogtreecommitdiff
path: root/src/cjr_env.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-09 16:48:32 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-09 16:48:32 -0400
commit3e59b823392701f538f972d689d04b0182696e51 (patch)
tree5a4f935084c734ee1634b76abe5d2d5f1abf8bcc /src/cjr_env.sml
parente699687ba2ff0cc2c7c185c4d99669f77093473b (diff)
Lists all the way through
Diffstat (limited to 'src/cjr_env.sml')
-rw-r--r--src/cjr_env.sml3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cjr_env.sml b/src/cjr_env.sml
index 83f0cc30..331af45f 100644
--- a/src/cjr_env.sml
+++ b/src/cjr_env.sml
@@ -140,12 +140,13 @@ fun declBinds env (d, loc) =
DDatatype (_, x, n, xncs) =>
let
val env = pushDatatype env x n xncs
- val dt = (TDatatype (classifyDatatype xncs, n, xncs), loc)
+ val dt = (TDatatype (classifyDatatype xncs, n, ref xncs), loc)
in
foldl (fn ((x', n', NONE), env) => pushENamed env x' n' dt
| ((x', n', SOME t), env) => pushENamed env x' n' (TFun (t, dt), loc))
env xncs
end
+ | DDatatypeForward (_, x, n) => pushDatatype env x n []
| DStruct (n, xts) => pushStruct env n xts
| DVal (x, n, t, _) => pushENamed env x n t
| DFun (fx, n, args, ran, _) =>