function_observable works when an element is convertible to T, but not to optional<T> directly