FunctionDelegate4
fun <RT : GenType, F : Func<RT>, P1 : Variable, P2 : Variable, P3 : Variable, P4 : Variable> FunctionDelegate4(funcType: (GlslGenerator) -> F, param1: (GlslGenerator) -> P1, param2: (GlslGenerator) -> P2, param3: (GlslGenerator) -> P3, param4: (GlslGenerator) -> P4, body: (P1, P2, P3, P4) -> RT)