Mercurial > urweb
comparison src/cjrize.sml @ 993:10114d7b7477
SELECT DISTINCT; eta expansion during Cjrization
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 06 Oct 2009 15:39:27 -0400 |
parents | 7a4b026e45dd |
children | 7a4a55e05081 |
comparison
equal
deleted
inserted
replaced
992:b825d843b22d | 993:10114d7b7477 |
---|---|
518 let | 518 let |
519 val (args, t, e) = unravel (ran, e) | 519 val (args, t, e) = unravel (ran, e) |
520 in | 520 in |
521 ((ax, dom) :: args, t, e) | 521 ((ax, dom) :: args, t, e) |
522 end | 522 end |
523 | (L'.TFun _, _) => | 523 | (L'.TFun (dom, ran), _) => |
524 (ErrorMsg.errorAt loc "Function isn't explicit at code generation"; | 524 let |
525 ([], tAll, eAll)) | 525 val e = MonoEnv.liftExpInExp 0 eAll |
526 val e = (L.EApp (e, (L.ERel 0, loc)), loc) | |
527 val (args, t, e) = unravel (ran, e) | |
528 in | |
529 (("x", dom) :: args, t, e) | |
530 end | |
526 | _ => ([], tAll, eAll) | 531 | _ => ([], tAll, eAll) |
527 | 532 |
528 val (args, ran, e) = unravel (t, e) | 533 val (args, ran, e) = unravel (t, e) |
529 val (e, sm) = cifyExp (e, sm) | 534 val (e, sm) = cifyExp (e, sm) |
530 in | 535 in |