Return current Option if it's nonempty and predicate application return true. Otherwise return None
predicate
Option<A> filter(bool Function(A a) predicate) => (this.isEmpty || predicate((this as Some).value)) ? this : _none();