Îőłh$˝b’      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘(c) Fumiaki Kinoshita 2020BSD3'Fumiaki Kinoshita  provisional non-portable Trustworthy2567>?ŔÁÂÄÎÔŮçA witherableIndexed variant of  . witherable Effectful .  ( i -> ’ . f i) áD ’ .  f witherable Monadic variant of  .. This may have more efficient implementation. witherableIndexed variant of .  witherable   f .   g áD ifilter (i -> “ (”) (f i) (g i))  witherableAn enhancement of • with A definition of  ! must satisfy the following laws: identity  ( . Just) áD  composition– . — (  f) .   g áD   (– . — (  f) . g))Parametricity implies the naturality law:  naturalityt .   f áD   (t . f)Where t is an /applicative transformation / in the sense described in the • documentation.:In the relation to superclasses, these should satisfy too:  conservation  (— Just . f) = ˜ f pure filter  ( . f) =  .  fSee the  Properties.md and Laws.mdŇ files in the git distribution for more in-depth explanation about properties of  Witherable containers.3The laws and restrictions are enough to constrain  Ă to be uniquely determined as the following default implementation. wither f = fmap  . ˜ fčIf not to provide better-performing implementation, it's not necessary to implement any one method of  Witherable%. For example, if a type constructor T already has instances of • and 2, the next one line is sufficient to provide the  Witherable T instance. instance Witherable T  witherable Effectful .   (’ . f) áD ’ .  f  witherable Monadic variant of  .. This may have more efficient implementation. witherableLike ™7, 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) áD — f composition f .  g áD  (f <=< g) witherableLike š. witherable  áD  › witherable  f .  g áD filter (“ (”) g f) witherableAn infix alias for '. The name of the operator alludes to œ, and has the same fixity. witherableFlipped version of , the  version of . It has the same fixity as . () =    witherable  =    witherableúRemoves duplicate elements from a list, keeping only the first occurrence. This is asymptotically faster than using  from  Data.List.ordNub [3,2,1,3,2,1][3,2,1] witherableThe  function behaves just like Ä, except it uses a another type to determine equivalence classes.5ordNubOn fst [(True, 'x'), (False, 'y'), (True, 'z')][(True,'x'),(False,'y')] witherableęRemoves duplicate elements from a list, keeping only the first occurrence. This is usually faster than =, especially for things that have a slow comparison (like ž).hashNub [3,2,1,3,2,1][3,2,1] witherableThe  function behaves just like Ä, except it uses a another type to determine equivalence classes.6hashNubOn fst [(True, 'x'), (False, 'y'), (True, 'z')][(True,'x'),(False,'y')]; witherableWither from right to left.I witherable&Methods are good consumers for fusion.Z witherableWither from right to left.    41(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita  provisional non-portable TrustworthyÔŮŢz witherable)This is used to characterize and clone a „ . Since FilterLike (Peat a b) s t a bÁ is monomorphic, it can be used to store a filter in a container.} witherable A simple .~ witherable A simple €. witherableA  is like a  Řhttp://hackage.haskell.org/package/lens-4.13.2.1/docs/Control-Lens-Type.html#t:Traversal Traversal#, but you can also remove targets.€ witherable'This type allows combinators to take a „ specializing the parameter f.… witherableReconstitute a „ from its monomorphic form.† witherable† is actually ›, but left for consistency.‡ witherable ‡ áD ˆ witherable through a filter.‰ witherable through a filter.Š witherable  through a filter.‹ witherable1Filter each element of a structure targeted by a „.Œ witherable/Remove the duplicate elements through a filter. witherable/Remove the duplicate elements through a filter.Ž witherableÉRemove the duplicate elements through a filter. It is often faster than Œ., especially when the comparison is expensive. witherable/Remove the duplicate elements through a filter.0  z{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ0  €~}ƒ„‚†‡ˆ‰Š‹ŒŽ…z{|Ÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š˜™›œž˜Ÿ ˜Ą˘˜™Ł˜Ÿ¤˜™Ľ˜Ś˜™§˜¨˜™Š˜™ŞŤ'witherable-0.4.2-KWBhi8chAfYBpz6VbmgQmB WitherableData.Witherable Data.FunctorIdentity<&> Data.ListnubWrappedFoldableWrapFilterableunwrapFoldableWitherableWithIndexiwitheriwitherMifilterAFilterableWithIndex imapMaybeifilterwitherwitherMfilterA witherMap FilterablemapMaybe catMaybesfilter<$?><&?>forMaybeordNubordNubOnhashNub hashNubOn$fFilterable:.:$fFilterable:+:$fFilterable:*:$fFilterableM1$fFilterableRec1$fFilterableK1$fFilterableU1$fFilterableV1$fFilterableMaybeT$fFilterableSum$fFilterableProduct$fFilterableCompose$fFilterableSeq$fFilterableVector$fFilterableConst$fFilterableProxy$fFilterableHashMap$fFilterableMap$fFilterableIntMap$fFilterableZipList$fFilterable[]$fFilterableEither$fFilterableOption$fFilterableMaybe$fWitherable:.:$fWitherable:+:$fWitherable:*:$fWitherableM1$fWitherableRec1$fWitherableK1$fWitherableU1$fWitherableV1$fWitherableBackwards$fWitherableReverse$fWitherableMaybeT$fWitherableIdentityT$fWitherableSum$fWitherableProduct$fWitherableCompose$fWitherableSeq$fWitherableVector$fWitherableConst$fWitherableProxy$fWitherableHashMap$fWitherableMap$fWitherableIntMap$fWitherableZipList$fWitherable[]$fWitherableEither$fWitherableOption$fWitherableMaybe$fFilterableWithIndexEitherSum"$fFilterableWithIndexEitherProduct$fFilterableWithIndex(,)Compose$fFilterableWithIndexIntSeq$fFilterableWithIndexIntVector$fFilterableWithIndexVoidProxy$fFilterableWithIndexkHashMap$fFilterableWithIndexkMap$fFilterableWithIndexIntIntMap$fFilterableWithIndexIntZipList$fFilterableWithIndexInt[]$fFilterableWithIndex()Maybe$fWitherableWithIndexiBackwards$fWitherableWithIndexiReverse$fWitherableWithIndexiIdentityT$fWitherableWithIndexEitherSum"$fWitherableWithIndexEitherProduct$fWitherableWithIndex(,)Compose$fWitherableWithIndexIntSeq$fWitherableWithIndexIntVector$fWitherableWithIndexVoidProxy$fWitherableWithIndexkHashMap$fWitherableWithIndexkMap$fWitherableWithIndexIntIntMap$fWitherableWithIndexIntZipList$fWitherableWithIndexInt[]$fWitherableWithIndex()Maybe$fWitherableWrappedFoldable%$fFilterableWithIndexiWrappedFoldable$fFilterableWrappedFoldable&$fTraversableWithIndexiWrappedFoldable#$fFoldableWithIndexiWrappedFoldable"$fFunctorWithIndexiWrappedFoldable$fFunctorWrappedFoldable$fFoldableWrappedFoldable$fTraversableWrappedFoldable$fApplicativeWrappedFoldable$fAlternativeWrappedFoldable$fFunctorBoolPair$fFilterableWithIndexiBackwards$fFilterableWithIndexiReverse$fFilterableWithIndexiIdentityT$fFilterableBackwards$fFilterableReverse$fFilterableIdentityTPeatrunPeatWither' WitherLike'Wither WitherLike FilterLike'Filter' FilterLikeFilter cloneFilterwitherOf forMaybeOf mapMaybeOf catMaybesOf filterAOffilterOfordNubOf ordNubOnOf hashNubOf hashNubOnOf$fApplicativePeat $fFunctorPeatbaseGHC.BasepureliftA2ghc-prim GHC.Classes&&Data.Traversable TraversableData.Functor.ComposeComposefmaptraverseFunctor Data.Maybeid<$>flipString