Two-way discriminated union.
Represents the first alternative of the union. @property value payload chosen for the first branch.
Represents the second alternative of the union. @property value payload chosen for the second branch.
Exhaustively handles the stored value by delegating to the matching lambda.