Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Param
- type Arity = [Param]
- typeSchemeArity ∷ TypeScheme val args res → Arity
- builtinArity ∷ ∀ uni fun. ToBuiltinMeaning uni fun ⇒ Proxy uni → BuiltinSemanticsVariant fun → fun → Arity
Documentation
Is the next argument a term or a type?
The (syntactic) arity of a term. That is, a record of the arguments that the term expects before it may do some work. Since we have both type and lambda abstractions, this is not a simple argument count, but rather a list of values indicating whether the next argument should be a term or a type.
Note that this is the syntactic arity, i.e. it just corresponds to the number of
syntactic lambda and type abstractions on the outside of the term. It is thus
an under-approximation of how many arguments the term may need.
e.g. consider the term let id = x -> x in id
: the variable id
has syntactic
arity []
, but does in fact need an argument before it does any work.
typeSchemeArity ∷ TypeScheme val args res → Arity Source #
Get the Arity
from a TypeScheme
.
builtinArity ∷ ∀ uni fun. ToBuiltinMeaning uni fun ⇒ Proxy uni → BuiltinSemanticsVariant fun → fun → Arity Source #
Get the arity of a builtin function from the BuiltinSemanticsVariant
.