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) =