Mercurial > urweb
comparison src/termination.sml @ 453:787d4931fb07
Almost have that nested save function compiling
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 01 Nov 2008 21:19:43 -0400 |
parents | 85819353a84f |
children | ae03d09043c1 |
comparison
equal
deleted
inserted
replaced
452:222cbc1da232 | 453:787d4931fb07 |
---|---|
291 | 291 |
292 | EError => (Rabble, calls) | 292 | EError => (Rabble, calls) |
293 | EUnif (ref (SOME e)) => exp parent (penv, calls) e | 293 | EUnif (ref (SOME e)) => exp parent (penv, calls) e |
294 | EUnif (ref NONE) => (Rabble, calls) | 294 | EUnif (ref NONE) => (Rabble, calls) |
295 | 295 |
296 | ELet (_, e) => exp parent (penv, calls) e | 296 | ELet (eds, e) => |
297 let | |
298 fun extPenv ((ed, _), penv) = | |
299 case ed of | |
300 EDVal _ => Rabble :: penv | |
301 | EDValRec vis => foldl (fn (_, penv) => Rabble :: penv) penv vis | |
302 in | |
303 exp parent (foldl extPenv penv eds, calls) e | |
304 end | |
297 end | 305 end |
298 | 306 |
299 fun doVali (i, (_, f, _, e), calls) = | 307 fun doVali (i, (_, f, _, e), calls) = |
300 let | 308 let |
301 fun unravel (e, j, penv) = | 309 fun unravel (e, j, penv) = |