code: public static <L, R> Either<L, R> create(L l, R r) {
  		if (l == null && r != null) {
  			return createRight(r);
  		} else if (l != null && r == null) {
  			return createLeft(l);
  		} else {
  			if (l == null) {
  				throw new IllegalArgumentException("Both arguments were null.");
  			} else {
  				throw new IllegalArgumentException("Both arguments were non-null: " + l + " " + r);
  			}
  		}
  	}
docs: Creates a left or right, depending on which element is non-null.  Precisely one element should be non-null.