comparison src/corify.sml @ 72:0ee10f4d73cf

Explify efold
author Adam Chlipala <adamc@hcoop.net>
date Thu, 26 Jun 2008 11:11:13 -0400
parents 8e9920db39f2
children 8b611ecc5f2d
comparison
equal deleted inserted replaced
71:6431b315a1e3 72:0ee10f4d73cf
297 | L.ECAbs (x, k, e1) => (L'.ECAbs (x, corifyKind k, corifyExp st e1), loc) 297 | L.ECAbs (x, k, e1) => (L'.ECAbs (x, corifyKind k, corifyExp st e1), loc)
298 298
299 | L.ERecord xes => (L'.ERecord (map (fn (c, e, t) => (corifyCon st c, corifyExp st e, corifyCon st t)) xes), loc) 299 | L.ERecord xes => (L'.ERecord (map (fn (c, e, t) => (corifyCon st c, corifyExp st e, corifyCon st t)) xes), loc)
300 | L.EField (e1, c, {field, rest}) => (L'.EField (corifyExp st e1, corifyCon st c, 300 | L.EField (e1, c, {field, rest}) => (L'.EField (corifyExp st e1, corifyCon st c,
301 {field = corifyCon st field, rest = corifyCon st rest}), loc) 301 {field = corifyCon st field, rest = corifyCon st rest}), loc)
302 | L.EFold _ => raise Fail "Corify EFold"
302 303
303 fun corifyDecl ((d, loc : EM.span), st) = 304 fun corifyDecl ((d, loc : EM.span), st) =
304 case d of 305 case d of
305 L.DCon (x, n, k, c) => 306 L.DCon (x, n, k, c) =>
306 let 307 let