Companion
Functions
Create a list phrase type with the given yield type and the given tuple type of expression types. Assume the two types have already been made mutually canonical: They both represent constraints on the elements, so they should already be taking each other's restriction into account.
Create a list phrase type with the given tuple type of expression types.
Create a list phrase type with the given yield type and the given tuple type of expression types. Canonize the resulting type by combining the mutual element constraints.
Answer the empty list phrase's type.
Given an array of types, create the most general list phrase type which has a yield type matching those types as a tuple, but where the size can vary from the given minimum size to the array's size.
Create a list phrase type matching zero or more occurrences of arbitrary phrases that yield the given type.
Create a list phrase type matching zero or one occurrences of arbitrary phrases that yield the given type.