summaryrefslogtreecommitdiff
path: root/src/explify.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-05-16 15:22:05 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-05-16 15:22:05 -0400
commit6cb3888614811abc30c6a00a1644e256d1d1c780 (patch)
tree2880c44d43f0095ce5c1ac7531a4cdff3ce4b730 /src/explify.sml
parent0159bec5067ac88f3f222595ac6f5e2f94c1d41f (diff)
Mutual datatypes through Corify
Diffstat (limited to 'src/explify.sml')
-rw-r--r--src/explify.sml16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/explify.sml b/src/explify.sml
index 145fccd2..d8bd6bff 100644
--- a/src/explify.sml
+++ b/src/explify.sml
@@ -137,10 +137,10 @@ fun explifySgi (sgi, loc) =
case sgi of
L.SgiConAbs (x, n, k) => SOME (L'.SgiConAbs (x, n, explifyKind k), loc)
| L.SgiCon (x, n, k, c) => SOME (L'.SgiCon (x, n, explifyKind k, explifyCon c), loc)
- (*| L.SgiDatatype (x, n, xs, xncs) => SOME (L'.SgiDatatype (x, n, xs,
- map (fn (x, n, co) =>
- (x, n, Option.map explifyCon co)) xncs), loc)*)
- | L.SgiDatatype _ => raise Fail "Explify SgiDatatype"
+ | L.SgiDatatype dts => SOME (L'.SgiDatatype (map (fn (x, n, xs, xncs) =>
+ (x, n, xs,
+ map (fn (x, n, co) =>
+ (x, n, Option.map explifyCon co)) xncs)) dts), loc)
| L.SgiDatatypeImp (x, n, m1, ms, s, xs, xncs) =>
SOME (L'.SgiDatatypeImp (x, n, m1, ms, s, xs, map (fn (x, n, co) =>
(x, n, Option.map explifyCon co)) xncs), loc)
@@ -164,10 +164,10 @@ and explifySgn (sgn, loc) =
fun explifyDecl (d, loc : EM.span) =
case d of
L.DCon (x, n, k, c) => SOME (L'.DCon (x, n, explifyKind k, explifyCon c), loc)
- (*| L.DDatatype (x, n, xs, xncs) => SOME (L'.DDatatype (x, n, xs,
- map (fn (x, n, co) =>
- (x, n, Option.map explifyCon co)) xncs), loc)*)
- | L.DDatatype _ => raise Fail "Explify DDatatype"
+ | L.DDatatype dts => SOME (L'.DDatatype (map (fn (x, n, xs, xncs) =>
+ (x, n, xs,
+ map (fn (x, n, co) =>
+ (x, n, Option.map explifyCon co)) xncs)) dts), loc)
| L.DDatatypeImp (x, n, m1, ms, s, xs, xncs) =>
SOME (L'.DDatatypeImp (x, n, m1, ms, s, xs,
map (fn (x, n, co) =>