Determine if this signature accepts the given arguments for a given PFA version number.
Determine if this signature accepts the given arguments for a given PFA version number.
arguments to match against the signature pattern
PFA version number in which to interpret the pattern
Some(self, resolved argument types, resolved return type) if this signature accepts the arguments; None
otherwise
Apply the label assignments (e.
Apply the label assignments (e.g. "A" matched to "int", "B" matched to "string", etc.) to each parameter of the signature.
resolved type for one parameter of the signature
Apply the label assignments (e.
Apply the label assignments (e.g. "A" matched to "int", "B" matched to "string", etc.) to the return pattern.
assigned types to apply
resolved type for the return value of the signature
Determine if a single slot in the parameter pattern reaches a single argument's type.
Determine if a single slot in the parameter pattern reaches a single argument's type.
pattern for a type that can include wildcards, etc.
supplied argument type that may or may not fit the pattern
label associations made so far (so that repeated label letters are forced to resolve to the same types)
if true
, don't allow subtypes to match supertypes
if true
, match structures contravariantly instead of covariantly (for instance, when matching arguments of functions passed as arguments)
true
if arg
matches pat
; false
otherwise
validity range for this signature; default is eternal (existing from the beginning of time to the end of time)
patterns for each argument (in order)
pattern for the return type
PFA function signature for a single pattern.
This class can either be used directly as a function's only signature or it may be contained within a Sigs.
patterns for each argument (in order)
pattern for the return type
validity range for this signature; default is eternal (existing from the beginning of time to the end of time)