comparison src/corify.sml @ 26:4ab19c19665f

Closure conversion
author Adam Chlipala <adamc@hcoop.net>
date Tue, 10 Jun 2008 15:56:33 -0400
parents bc7b76ca57e0
children 537db4ee89f4
comparison
equal deleted inserted replaced
25:0a762c73824d 26:4ab19c19665f
66 case e of 66 case e of
67 L.EPrim p => (L'.EPrim p, loc) 67 L.EPrim p => (L'.EPrim p, loc)
68 | L.ERel n => (L'.ERel n, loc) 68 | L.ERel n => (L'.ERel n, loc)
69 | L.ENamed n => (L'.ENamed n, loc) 69 | L.ENamed n => (L'.ENamed n, loc)
70 | L.EApp (e1, e2) => (L'.EApp (corifyExp e1, corifyExp e2), loc) 70 | L.EApp (e1, e2) => (L'.EApp (corifyExp e1, corifyExp e2), loc)
71 | L.EAbs (x, t, e1) => (L'.EAbs (x, corifyCon t, corifyExp e1), loc) 71 | L.EAbs (x, dom, ran, e1) => (L'.EAbs (x, corifyCon dom, corifyCon ran, corifyExp e1), loc)
72 | L.ECApp (e1, c) => (L'.ECApp (corifyExp e1, corifyCon c), loc) 72 | L.ECApp (e1, c) => (L'.ECApp (corifyExp e1, corifyCon c), loc)
73 | L.ECAbs (_, x, k, e1) => (L'.ECAbs (x, corifyKind k, corifyExp e1), loc) 73 | L.ECAbs (_, x, k, e1) => (L'.ECAbs (x, corifyKind k, corifyExp e1), loc)
74 74
75 | L.ERecord xes => (L'.ERecord (map (fn (c, e) => (corifyCon c, corifyExp e)) xes), loc) 75 | L.ERecord xes => (L'.ERecord (map (fn (c, e) => (corifyCon c, corifyExp e)) xes), loc)
76 | L.EField (e1, c, {field, rest}) => (L'.EField (corifyExp e1, corifyCon c, 76 | L.EField (e1, c, {field, rest}) => (L'.EField (corifyExp e1, corifyCon c,