A common use of Either is as an alternative to scala.Option for dealing
with possible missing values. In this usage, scala.None is replaced
with a scala.util.Left which can contain useful information.
scala.util.Right takes the place of scala.Some. Convention dictates
that Left is used for failure and Right is used for success.

For example, you could use Either[String, Int] to detect whether a
received input is a String or an Int.

A projection can be used to selectively operate on a value of type Either,
depending on whether it is of type Left or Right. For example, to transform an
Either using a function, in the case where it's a Left, one can first apply
the left projection and invoke map on that projected Either. If a right
projection is applied to that Left, the original Left is returned, unmodified.