Builder API for creating total union matchers.
This is step 2 when the first sub case was given.
Cannot be an AnyVal as this would expose the final receive function.
the union type that provided the possible sub cases
the type of the first sub case
the resulting receive function.
Adds a case to the final receive function