- `Optional` in terms of `std::optional` - `Nullable` should be implemented in terms of `std::unique_ptr<T>` - `NullType` should be `nullptr_t` (or at least a `static const`) - tests