Versions in this module Expand all Collapse all v0 v0.0.2 Jun 13, 2024 v0.0.1 Jun 13, 2024 Changes in this version + var ErrAmbiguousMatch = errors.New("ambiguous match") + var ErrNoMatch = errors.New("no matching overloads") + func DeDuplicate(ts []types.IType) (types.IType, error) + func ExactOverloadMatch[F any](invoked []types.IType, overloads []Overload[F], ...) (F, error) + func Intersect(left types.IType, right types.IType) (types.IType, error) + func OperandsToString(operands []model.IExpression) string + func OperandsToTypes(operands []model.IExpression) []types.IType + type ConvertedOperand struct + Matched bool + Score int + WrappedOperand model.IExpression + func OperandImplicitConverter(invokedType types.IType, declaredType types.IType, opToWrap model.IExpression, ...) (ConvertedOperand, error) + type Generic string + const GenericInterval + const GenericList + const GenericType + func (s Generic) Equal(a types.IType) bool + func (s Generic) MarshalJSON() ([]byte, error) + func (s Generic) ModelInfoName() (string, error) + func (s Generic) String() string + type Infered struct + PuntedToChoice bool + UniformType types.IType + WrappedOperands []model.IExpression + func InferMixed(invoked []model.IExpression, modelinfo *modelinfo.ModelInfos) (Infered, error) + type MatchedOverload struct + Result F + WrappedOperands []model.IExpression + func OverloadMatch[F any](invoked []model.IExpression, overloads []Overload[F], ...) (MatchedOverload[F], error) + type Overload struct + Operands []types.IType + Result F