эт да. Просто тут какая альтернатива: поле isInit - это на самом деле индекс Можно сопоставить Value1 индекс 1 - тогда на индекс 0 гадить исключениями Но можно Value1 сопоставить индекс 0 - тогда default(Either<T1,T2>) - это default(T1) считай Первый вариант мне больше нравится
Either<T1,T2> из-за несовершенства CLR это на самом деле Either<T1,T2,None> (None - unit, не bottom) хотя по настоящему Either<T1,T2> должен быть тем же типом что и Either<T2,T1>, но что уж поделат