Provide :@ syntax for term application with automatic alpha-conversion for type variables in the function head.
Provide :@ syntax for term application with automatic alpha-conversion for type variables in the function head.
Provide syntax for function composition.
Provide syntax for function composition.
List of "case functions" of types A1 ⇒ Z, ..., An ⇒ Z.
List of "case functions" of types A1 ⇒ Z, ..., An ⇒ Z. Each "case function" must be a function of the form CurriedE(PropE(_) :: _, _), that is, with at least one argument.
Term to be matched.
Term to be matched. Must be of disjunction type.
Match a disjunction term of type A1 + A2 + ... + An against a list of n functions. The type of the result of each function must be the same, and will be the type of this term. This represents code of the form
Term to be matched. Must be of disjunction type.
List of "case functions" of types A1 ⇒ Z, ..., An ⇒ Z. Each "case function" must be a function of the form CurriedE(PropE(_) :: _, _), that is, with at least one argument.