begin to write an optional<T> based on fast_variant