FunctionDelegate3

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