code: public static <A> Maybe<A> just(A a) {
          if (a == null)
              throw new NullPointerException();
          return new Just<>(a);
      }
docs: Lift a non-null value into {@link Maybe}. This differs from {@link Maybe#maybe} in that the value *must* be
  non-null; if it is null, a {@link NullPointerException} is thrown.
  
  @param a   the non-null value
  @param <A> the value parameter type
  @return "Just" the value
  @throws NullPointerException if a is null