private static IEnumerable<FunctionSymbol> Create2(
string name, string documentation, TypeSymbol[] types,
string parameterName1, string parameterDocumentation1,
string parameterName2, string parameterDocumentation2,
TypeSymbol overrideReturnType = null,
TypeSymbol overrideParameterType1 = null,
TypeSymbol overrideParameterType2 = null,
ParameterDirection overrideParameterDirection2 = ParameterDirection.In)
{
return types.Select(type => new FunctionSymbol(
name, documentation, null, overrideReturnType ?? type,
f => new[]
{
new ParameterSymbol(parameterName1, parameterDocumentation1, f, overrideParameterType1 ?? type),
new ParameterSymbol(parameterName2, parameterDocumentation2, f, overrideParameterType2 ?? type, overrideParameterDirection2)
}));
}