This paper proposes the member functions `value_or_construct` and `value_or_else` of [P3413R0] on `std::optional` and `std::expected`, which build the alternative only when it is needed, and the free functions `value_or`, `reference_or`, `or_invoke`, and `or_construct` over any type modeling a `nullable` concept, with the result type computed as the `common_type` or `common_reference` of the contained value and the alternative. The two were separate papers until LEWG asked for one.