About passing dependencies through deep call stack

Here is another approach to pass dependencies through deep call stack.
In a couple of words:

  1. deeply nested code not executes immediately but returns a function for the later lazy evaluation;
  2. the correponding function accepts the required environment;
  3. at the top level call the function returned from the nested code and pass the environment to it. Documentation.