namespace meowlang.typechecker; public record GenericFunctionTypeDescription : GenericTypeDescription { private readonly List _parameters; private readonly List _returns; public GenericFunctionTypeDescription(List genericNames, List parameters, List returns) : base(genericNames) { _parameters = parameters; _returns = returns; } public override FunctionTypeDescription Concretize(List typeParams) { var parameters = _parameters.Select(x => ConcretizeGenericType(x, typeParams)).ToList(); var returns = _returns.Select(x => ConcretizeGenericType(x, typeParams)).ToList(); return new FunctionTypeDescription(parameters, returns); } };