Option<T> where(bool Function(T t) f) => fold(() => Option.none(), (some) => f(some) ? Option.some(some) : Option.none());