3 Feb
2017
3 Feb
'17
5:17 a.m.
There is only one proper way to represent the concept of a T that might not
be a T: optional<T>, so I think you are defining your objects backward. The
"top level" type should be observer<T>, and if you want to support the
concept of nullness, use optional