interface Filterable : (Type -> Type) -> TypemapMaybe : (a -> Maybe b) -> t a -> t bcatMaybes : t (Maybe a) -> t afilter : (a -> Bool) -> t a -> t aflush : t a -> t bFilterable MaybeFilterable List(Monad m, Alternative m) => Filterable (Kleisli m a')mapMaybe : Filterable t => (a -> Maybe b) -> t a -> t bcatMaybes : Filterable t => t (Maybe a) -> t afilter : Filterable t => (a -> Bool) -> t a -> t aflush : Filterable t => t a -> t b