This is effectively a more homogeneous form of substrait.Type, but should
otherwise be equally powerful. It is also less context-sensitive, in that
usage of type class and type variation extensions includes the complete URI
and name, rather than only a plan-specific link.
A pattern within the meta type system. In most cases, these can be thought
of as representing a (context-sensitive) set of metavalues. In the special
case where the set has only one metavalue in it, a pattern can also be
evaluated to that metavalue. This allows patterns to be used at both the LHS
and RHS of an assignment statement, for matching incoming metavalues or data
types, and for deriving data types. Note however, that some binding patterns
may evaluate to a value despite representing a non-unit set, or even
evaluate to something not in the matched set.