GLSL has no support for first class functions, so a lambda lifting analysis pass is required to lift all lambdas (and lambda-like expressions) to top-level private functions, either invoked immediately (to create the sense of pervasive expressions) or as named private globals