úÎ! (<      !"#$%&'()*+,-./0123456789:;(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>stable non-portableNone1456=>?@ACMSXfä witherable-classAn enhancement of < with A definition of ! must satisfy the following laws:  conservation (= > . f) "a ? f composition@ . = ( f) .  g "a  (@ . = ( f) . g))Parametricity implies the naturality law: t .  f "a  (t . f)witherable-class Effectful .  (A . f) "a A .  fwitherable-class Monadic variant of .. This may have more efficient implementation.witherable-classLike B7, but you can remove elements instead of updating them.Formally, the class  represents a functor from  Kleisli Maybe to Hask.A definition of ! must satisfy the following laws:  conservation (Just . f) "a = f composition f .  g "a  (f <=< g)witherable-classLike C.witherable-class  "a  Dwitherable-class  f .  g "a filter (E (F) f g)Gwitherable-classA default implementation for .'witherable-classWither from right to left.5witherable-class&Methods are good consumers for fusion.H      !"#$%&'()*+,-./0123456789:;<=>?@>AB>CD>?E>FG>AH>AI>J>AK>ALMNOPQ)witherable-class-0-Fpha4hLw2yrK23Brl0u9R1Data.Witherable.Class WitherablewitherwitherMfilterA FilterablemapMaybe catMaybesfilter$fFilterable:.:$fFilterable:+:$fFilterable:*:$fFilterableM1$fFilterableRec1$fFilterableU1$fFilterableV1$fFilterableMaybeT$fFilterableSum$fFilterableProduct$fFilterableCompose$fFilterableSeq$fFilterableVector$fFilterableConst$fFilterableProxy$fFilterableHashMap$fFilterableMap$fFilterableIntMap$fFilterableZipList$fFilterable[]$fFilterableEither$fFilterableOption$fFilterableMaybe$fWitherable:.:$fWitherable:+:$fWitherable:*:$fWitherableM1$fWitherableRec1$fWitherableU1$fWitherableV1$fWitherableBackwards$fWitherableReverse$fWitherableMaybeT$fWitherableIdentityT$fWitherableSum$fWitherableProduct$fWitherableCompose$fWitherableSeq$fWitherableVector$fWitherableConst$fWitherableProxy$fWitherableHashMap$fWitherableMap$fWitherableIntMap$fWitherableZipList$fWitherable[]$fWitherableEither$fWitherableOption$fWitherableMaybe$fFilterableBackwards$fFilterableReverse$fFilterableIdentityTbaseData.Traversable TraversableGHC.Basefmap GHC.MaybeJusttraverseData.Functor.ComposeComposepureFunctor Data.MaybeidliftA2ghc-prim GHC.Classes&&mapMaybeDefault