- parameter = $ CYTypedParameter(CYDecodeType(pool, signature.elements[i].type), parameter);
- return CYDecodeType(pool, signature.elements[0].type)->Modify($ CYTypeFunctionWith(parameter));
+ parameters = $ CYTypedParameter(CYDecodeType(pool, signature.elements[i].type), parameters);
+ return Modify(pool, CYDecodeType(pool, signature.elements[0].type), parameters);
+}
+
+CYTypedIdentifier *Function::Modify(CYPool &pool, CYTypedIdentifier *result, CYTypedParameter *parameters) const {
+ return result->Modify($ CYTypeFunctionWith(variadic, parameters));
+}
+
+CYTypedIdentifier *Block::Modify(CYPool &pool, CYTypedIdentifier *result, CYTypedParameter *parameters) const {
+ return result->Modify($ CYTypeBlockWith(parameters));