Returns this if this contains a value, otherwise calls f and returns the result
Maybe<T> orElse(Maybe<T> f()) { if (this == null) return f(); return this; }