Mercurial > urweb
diff src/corify.sml @ 813:7b380e2b9e68
Corify FFI datatypes properly; eliminate nested JavaScript markers
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 17 May 2009 13:25:57 -0400 |
parents | 61a1f5c5ae2c |
children | e46227efcbba |
line wrap: on
line diff
--- a/src/corify.sml Sat May 16 18:09:14 2009 -0400 +++ b/src/corify.sml Sun May 17 13:25:57 2009 -0400 @@ -824,6 +824,9 @@ ListUtil.foldlMap (fn ((x, n, xs, xnts), (ds', st, cmap, conmap)) => let + val k' = foldl (fn (_, k') => (L'.KArrow (k, k'), loc)) + k xs + val dk = ElabUtil.classifyDatatype xnts val (st, n') = St.bindCon st x n val (xnts, (ds', st, cmap, conmap)) = @@ -885,12 +888,14 @@ ((x', n, to), (d :: ds', st, cmap, conmap)) end) (ds', st, cmap, conmap) xnts + + val d = (L'.DCon (x, n', k', (L'.CFfi (m, x), loc)), loc) in - ((x, n', xs, xnts), (ds', st, cmap, conmap)) + ((x, n', xs, xnts), (d :: ds', st, cmap, conmap)) end) ([], st, cmap, conmap) dts in - (ds' @ (L'.DDatatype dts, loc) :: ds, + (List.revAppend (ds', ds), cmap, conmap, st,