úÎ!¢$     (c) Daan Leijen 2002 BSD-style Trustworthy@_ filtrableA set of values a. filtrableO(1)$. The number of elements in the set. filtrableO(1). The empty set. filtrableO(1). Create a singleton set. filtrableO(log n)ƒ. Insert an element in a set. If the set already contains an element equal to the given value, it is replaced with the new value. 4Safe@_‚  filtrablecClass of filtrable containers, i.e. containers we can map over while selectively dropping elements.Laws:  ! = id  f =  " " f  =  id  f =  (\ x -> # $ (! x) (f x))  g .  f =  (g % f)Laws if & f: ' g .  f = ' (\ x -> # ( (g x) (f x)) filtrableVMap the container with the given function, dropping the elements for which it returns $. filtrable  =  ) filtrable3Drop the elements for which the given predicate is *. filtrable[Traverse the container with the given function, dropping the elements for which it returns $. filtrable3Drop the elements for which the given predicate is *. filtrable:Map the container with the given function, collecting the + s and the , s separately. filtrable?Traverse the container with the given function, collecting the + s and the , s separately. filtrable  =  )  filtrable\mathcal{O}(n^2)A Delete all but the first copy of each element, special case of  .  filtrable\mathcal{O}(n^2)I Delete all but the first copy of each element, with the given relation.  filtrable\mathcal{O}(n\;\mathrm{log}\;n)A Delete all but the first copy of each element, special case of . filtrable\mathcal{O}(n\;\mathrm{log}\;n)I Delete all but the first copy of each element, with the given relation.   4 4-      !"#$%&$'($)*$%+$,-$./$.0$'1$'2345$67$689(filtrable-0.1.5.0-A3GS52n8cXkKsRAP8WJ83RData.FiltrableData.Set.Private FiltrablemapMaybe catMaybesfilter mapMaybeAfilterA mapEither mapEitherApartitionEithers<$?><*?>nubnubBynubOrdnubOrdBy$fFiltrableReverse$fFiltrableBackwards$fFiltrableCompose$fFiltrableSum$fFiltrableProduct$fFiltrableConst$fFiltrableProxy$fFiltrableMaybe $fFiltrable[]Setsizeempty singleton insertBy'SizeBinTip<$!>base GHC.MaybeJustGHC.Basefmap Data.BoolboolNothing Control.Monad<=< Data.FoldableFoldablefoldMapmemptyidghc-prim GHC.TypesFalse Data.EitherLeftRight