Documentation

A value is either from the First list, the Second or from Both.
Both contains both the left and right values, in case you are using a form
of equality that doesn't check all data (for example, if you are using a
newtype to only perform equality on side of a tuple).