Utility methods for macros.
The separate hierarchy from Applicative/Monad is for two reasons.
TupleBuilder abstracts the work of constructing a tuple data structure such as a
and extracting values from it.
TupleBuilder that uses a KList as the tuple representation.
A builder that uses
TupleN as the representation for small numbers of inputs (up to
KList for larger numbers of inputs.
A builder that uses a TupleN as the tuple representation.