public <X> Either<T, X> toLeft(X right) { if (isDefined()) { return Either.eitherLeft(get()); } else { return Either.eitherRight(right); } }
public <X> Either<X, T> toRight(X left) { if (isDefined()) { return Either.eitherRight(get()); } else { return Either.eitherLeft(left); } }