right, well, either you pass in State as a parameter, or in a hidden environment in a closure, or as a global.
so if you don't want parameter, and closure too slow, then global it must be. don't pass State as a parameter to any function. also, I'd listen to the compiler in that situation rather than overruling it.