diff src/marshalcheck.sml @ 807:61a1f5c5ae2c

Mutual datatypes through Effectize
author Adam Chlipala <adamc@hcoop.net>
date Sat, 16 May 2009 15:45:12 -0400
parents a28982de5645
children 72670131dace
line wrap: on
line diff
--- a/src/marshalcheck.sml	Sat May 16 15:22:05 2009 -0400
+++ b/src/marshalcheck.sml	Sat May 16 15:45:12 2009 -0400
@@ -75,12 +75,13 @@
         ignore (foldl (fn ((d, _), (cmap, emap)) =>
                           case d of
                               DCon (_, n, _, c) => (IM.insert (cmap, n, sins cmap c), emap)
-                            | DDatatype (_, n, _, xncs) =>
-                              (IM.insert (cmap, n, foldl (fn ((_, _, co), s) =>
-                                                             case co of
-                                                                 NONE => s
-                                                               | SOME c => PS.union (s, sins cmap c))
-                                                         PS.empty xncs),
+                            | DDatatype dts =>
+                              (foldl (fn ((_, n, _, xncs), cmap) =>
+                                         IM.insert (cmap, n, foldl (fn ((_, _, co), s) =>
+                                                                       case co of
+                                                                           NONE => s
+                                                                         | SOME c => PS.union (s, sins cmap c))
+                                                                   PS.empty xncs)) cmap dts,
                                emap)
 
                             | DVal (_, n, t, _, tag) => (cmap, IM.insert (emap, n, (t, tag)))