filter abstract method
Returns None if the option is None, otherwise calls predicate with the wrapped value and returns Some(t) if predicate returns true (where t is the wrapped value), and
Implementation
// None if predicate returns false
Option<T> filter(bool Function(T) predicate);