A generic abstract binding of a name in a term.
A name comprising a base string with an optional integer index.
A name comprising a base string with an optional integer index. The index defaults to being omitted.
A transposition of two names is just a tuple.
Abstract syntax constructs that are common to all nominal rewriters. These definitions need to be separate from the NominalRewriter class so that the classes here don't get an outer field referring to an instance of that class.