comparison src/explify.sml @ 71:6431b315a1e3

Elaborate efold
author Adam Chlipala <adamc@hcoop.net>
date Thu, 26 Jun 2008 11:09:30 -0400
parents c1e21ab42896
children 0ee10f4d73cf
comparison
equal deleted inserted replaced
70:2e0f3b21fb85 71:6431b315a1e3
77 | L.ECAbs (_, x, k, e1) => (L'.ECAbs (x, explifyKind k, explifyExp e1), loc) 77 | L.ECAbs (_, x, k, e1) => (L'.ECAbs (x, explifyKind k, explifyExp e1), loc)
78 78
79 | L.ERecord xes => (L'.ERecord (map (fn (c, e, t) => (explifyCon c, explifyExp e, explifyCon t)) xes), loc) 79 | L.ERecord xes => (L'.ERecord (map (fn (c, e, t) => (explifyCon c, explifyExp e, explifyCon t)) xes), loc)
80 | L.EField (e1, c, {field, rest}) => (L'.EField (explifyExp e1, explifyCon c, 80 | L.EField (e1, c, {field, rest}) => (L'.EField (explifyExp e1, explifyCon c,
81 {field = explifyCon field, rest = explifyCon rest}), loc) 81 {field = explifyCon field, rest = explifyCon rest}), loc)
82 | L.EFold _ => raise Fail "Explify EFold"
82 83
83 | L.EError => raise Fail ("explifyExp: EError at " ^ EM.spanToString loc) 84 | L.EError => raise Fail ("explifyExp: EError at " ^ EM.spanToString loc)
84 85
85 fun explifySgi (sgi, loc) = 86 fun explifySgi (sgi, loc) =
86 case sgi of 87 case sgi of