docs: @Internal
  	public static <L, R> Left<L, R> obtainLeft(Either<L, R> input, TypeSerializer<L> leftSerializer) {
  		if (input.isLeft()) {
  			return (Left<L, R>) input;
  		} else {
  			Right<L, R> right = (Right<L, R>) input;
  			if (right.left == null) {
  				right.left = Left.of(leftSerializer.createInstance());
  				right.left.right = right;
  			}
  			return right.left;
  		}
  	}