Make a wildcard binder. This is typically used when you need a binder
that you expect to use only at a *binding* site. Do not use it at
occurrence sites because it has a single, fixed unique, and it's very
easy to get into difficulties with shadowing. That's why it is used so little.
See Note [WildCard binders] in SimplEnv

Constructing equality evidence boxes

Constructing general big tuples

GHCs built in tuples can only go up to mAX_TUPLE_SIZE in arity, but
we might concievably want to build such a massive tuple as part of the
output of a desugaring stage (notably that for list comprehensions).

We call tuples above this size "big tuples", and emulate them by
creating and pattern matching on >nested< tuples that are expressible
by GHC.

Nesting policy: it's better to have a 2-tuple of 10-tuples (3 objects)
than a 10-tuple of 2-tuples (11 objects), so we want the leaves of any
construction to be big.

Deconstructing big tuples

Builds a selector which scrutises the given
expression and extracts the one name from the list given.
If you want the no-shadowing rule to apply, the caller
is responsible for making sure that none of these names
are in scope.

If there is just one Id in the tuple, then the selector is
just the identity.