aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/termination.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/termination.sml')
-rw-r--r--src/termination.sml10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/termination.sml b/src/termination.sml
index 6ed4d92f..2db5bb11 100644
--- a/src/termination.sml
+++ b/src/termination.sml
@@ -293,7 +293,15 @@ fun declOk' env (d, loc) =
| EUnif (ref (SOME e)) => exp parent (penv, calls) e
| EUnif (ref NONE) => (Rabble, calls)
- | ELet (_, e) => exp parent (penv, calls) e
+ | ELet (eds, e) =>
+ let
+ fun extPenv ((ed, _), penv) =
+ case ed of
+ EDVal _ => Rabble :: penv
+ | EDValRec vis => foldl (fn (_, penv) => Rabble :: penv) penv vis
+ in
+ exp parent (foldl extPenv penv eds, calls) e
+ end
end
fun doVali (i, (_, f, _, e), calls) =