Mercurial > urweb
comparison src/monoize.sml @ 177:5d030ee143e2
Case through corify
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 02 Aug 2008 11:15:32 -0400 |
parents | 25b169416ea8 |
children | eb3f9913bf31 |
comparison
equal
deleted
inserted
replaced
176:33d4a8eea484 | 177:5d030ee143e2 |
---|---|
169 in | 169 in |
170 case e of | 170 case e of |
171 L.EPrim p => (L'.EPrim p, loc) | 171 L.EPrim p => (L'.EPrim p, loc) |
172 | L.ERel n => (L'.ERel n, loc) | 172 | L.ERel n => (L'.ERel n, loc) |
173 | L.ENamed n => (L'.ENamed n, loc) | 173 | L.ENamed n => (L'.ENamed n, loc) |
174 | L.ECon _ => raise Fail "Monoize ECon" | |
174 | L.EFfi mx => (L'.EFfi mx, loc) | 175 | L.EFfi mx => (L'.EFfi mx, loc) |
175 | L.EFfiApp (m, x, es) => (L'.EFfiApp (m, x, map (monoExp (env, st)) es), loc) | 176 | L.EFfiApp (m, x, es) => (L'.EFfiApp (m, x, map (monoExp (env, st)) es), loc) |
176 | 177 |
177 | L.EApp ( | 178 | L.EApp ( |
178 (L.ECApp ( | 179 (L.ECApp ( |
446 monoExp (env, st) e, | 447 monoExp (env, st) e, |
447 monoType env t)) xes), loc) | 448 monoType env t)) xes), loc) |
448 | L.EField (e, x, _) => (L'.EField (monoExp (env, st) e, monoName env x), loc) | 449 | L.EField (e, x, _) => (L'.EField (monoExp (env, st) e, monoName env x), loc) |
449 | L.ECut _ => poly () | 450 | L.ECut _ => poly () |
450 | L.EFold _ => poly () | 451 | L.EFold _ => poly () |
452 | |
453 | L.ECase _ => raise Fail "Monoize ECase" | |
454 | |
451 | L.EWrite e => (L'.EWrite (monoExp (env, st) e), loc) | 455 | L.EWrite e => (L'.EWrite (monoExp (env, st) e), loc) |
452 | 456 |
453 | L.EClosure (n, es) => (L'.EClosure (n, map (monoExp (env, st)) es), loc) | 457 | L.EClosure (n, es) => (L'.EClosure (n, map (monoExp (env, st)) es), loc) |
454 end | 458 end |
455 | 459 |