(* What identifiers are in scope in the various code sections? *) let fun a() = let fun b() = a()+b()+c()+d() (* -- code 1 *) in a()+b()+c()+d() end (* -- code 2 *) and c() = let fun d() = a()+b()+c()+d() (* -- code 3 *) in a()+b()+c()+d() end (* -- code 4 *) in a()+b()+c()+d() end (* -- code 5 *) (* This will not compile and it would not work if it did. *) (* EXERCISE: Predit ALL the compile-time erros, and *) (* after you have done that confirm them with sml. *)