Читая этот блог пост от Chuusai, он говорит:
def size(x : Either[Int, String]) = x match {
case Left(i) => i
case Right(s) => s.length
}
size(Left(23)) == 23 // OK
size(Right("foo")) == 3 // OK
Либо [Int, String] может моделировать тип объединения Int ∨ String, поскольку существует изоморфизм между двумя типами и их значениями.
Что означает «существует изоморфизм между двумя типами и их значениями»?