Mercurial > urweb
comparison src/mono_reduce.sml @ 465:ddd363e856ff
Cookie prose; fix bugs that broke demo compilation
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 06 Nov 2008 12:46:45 -0500 |
parents | bb27c7efcd90 |
children | 7cb418e9714f |
comparison
equal
deleted
inserted
replaced
464:91914c15a85b | 465:ddd363e856ff |
---|---|
350 | EApp ((ELet (x, t, e, b), loc), e') => | 350 | EApp ((ELet (x, t, e, b), loc), e') => |
351 #1 (reduceExp env (ELet (x, t, e, | 351 #1 (reduceExp env (ELet (x, t, e, |
352 (EApp (b, liftExpInExp 0 e'), loc)), loc)) | 352 (EApp (b, liftExpInExp 0 e'), loc)), loc)) |
353 | 353 |
354 | ELet (x, t, e', (EAbs (x', t' as (TRecord [], _), ran, e''), loc)) => | 354 | ELet (x, t, e', (EAbs (x', t' as (TRecord [], _), ran, e''), loc)) => |
355 if impure e' then | 355 (*if impure e' then |
356 e | 356 e |
357 else | 357 else*) |
358 (* Seems unsound in general without the check... should revisit later *) | |
358 EAbs (x', t', ran, (ELet (x, t, liftExpInExp 0 e', swapExpVars 0 e''), loc)) | 359 EAbs (x', t', ran, (ELet (x, t, liftExpInExp 0 e', swapExpVars 0 e''), loc)) |
359 | 360 |
360 | ELet (x, t, e', b) => | 361 | ELet (x, t, e', b) => |
361 let | 362 let |
362 fun doSub () = | 363 fun doSub () = |