pub fn new(
        formals: Vec<(Var, Type)>,
        return_type: Vec<Type>,
        type_parameters: Vec<(TypeVar, BTreeSet<Ability>)>,
    ) -> Self {
        FunctionSignature {
            formals,
            return_type,
            type_formals: type_parameters,
        }
    }
/// Creates a new function signature from the parameters and the return types
Creates a new function signature from the parameters and the return types
Creates a new function signature from the parameters and the return types
pub fn new(
        formals: Vec<(Var, Type)>,
        return_type: Vec<Type>,
        type_parameters: Vec<(TypeVar, BTreeSet<Ability>)>,
    ) -> Self {
        FunctionSignature {
            formals,
            return_type,
            type_formals: type_parameters,
        }
    }
pub fn new ( formals : Vec < ( Var , Type ) > , return_type : Vec < Type > , type_parameters : Vec < ( TypeVar , BTreeSet < Ability > ) > , ) -> Self { FunctionSignature { formals , return_type , type_formals : type_parameters , } }
Creates a new function signature from the parameters and the return types
Creates a new function signature from the parameters and the return types
formals
Vec<(Var, Type)>
return_type
Vec<Type>
type_parameters
Vec<(TypeVar, BTreeSet<Ability>)>