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)