### Question:
Left implements Either<L, R> { Left(L l) { Objects.requireNonNull(l, "must not be null"); this.value = l; } Left(L l); @Override boolean isRight(); @Override boolean isLeft(); @Override R value(); @Override L leftValue(); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }### Answer:
@Test void either_or_else_get_fail() { assertThrows(IllegalArgumentException.class, () -> Either.left("20").orElseThrow( () -> new IllegalArgumentException("wrong")) ); }
@Test void either_notnull_1() { assertThrows(NullPointerException.class, () -> Either.left("0").fold(null, null) ); }
@Test void either_notnull_2() { assertThrows( NullPointerException.class, () -> Either.left("0").fold(x->0,null) ); }