Well, think about pure. A pure function can call other pure functions, because those functions declare that they obey the rules of pure (i.e. no globals, etc). Scope variables can be passed to functions taking scoped parameters because those functions declare that they'll obey the rules of scope (i.e. they won't squirrel away references to it, etc).

And so we have another complication in language - another transitive type modifier.

Reply via email to