---------------------------
-- In arrow notation, a variable bound by a proc (or enclosed let/kappa)
---------------------------
-- In arrow notation, a variable bound by a proc (or enclosed let/kappa)
--
-- Here, x and z are in scope in e1, but y is not. Here's how we track this:
-- a) Assign an "proc level" to each proc, being the number of
--
-- Here, x and z are in scope in e1, but y is not. Here's how we track this:
-- a) Assign an "proc level" to each proc, being the number of
-- enclosing proc.
-- c) Keep a list of out-of-scope procs. When moving to the left of
-- an arrow-tail, add the proc-level of the immediately enclosing
-- enclosing proc.
-- c) Keep a list of out-of-scope procs. When moving to the left of
-- an arrow-tail, add the proc-level of the immediately enclosing