Parser: Demand that an enum class have at least two variants.
Emitter: Bare variants may NOT satisfy a generic.

Consider this:
    enum class Option[A] { Some(A), None }
    Option[Option[integer]] t = Some(Some(10))

Previously, the emitter would look at the inner Some(10) function which would
yield Some[integer]. Nothing wrong there. It would then see that it wants A,
and use Some[integer] to resolve A. That's wrong, because bare variants are
not allowed.

This caused the above code to complain that Option[Option[integer]] cannot be
assigned to Some[Some[integer]], which is illogical.

Now, if a call sees a bare variant trying to resolve a generic, it first puts
that bare variant into an enum class based on the info of the variant. This
allows the above code to work.