CRUD results and tests 

```cpp
Template <typename T, typename U> 
Optional<U> Lift(optional <T> && t) {
return t?
   optional<U> (std::move(t.value())): optional<U>();
}
```