Îőłh*‚ąů      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx0.5(c) Fumiaki Kinoshita 2020BSD3'Fumiaki Kinoshita  provisional non-portable Trustworthy69:;ÂĂÄĹĆČŇŘÝëk witherableIndexed variant of  . witherable Effectful .  ( i -> y . f i) áD y .  f witherable Monadic variant of  .. This may have more efficient implementation. witherableIndexed variant of .  witherable  f .   g áD ifilter (i x -> f x z g i x)  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 .   (y . f) áD y .  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 (‚ (z) g f) witherableEmpty a filterable.  áD  (const Nothing) 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')]† witherableA default implementation for .‡ witherableA default implementation for .; witherableWither from right to left.I witherable&Methods are good consumers for fusion.Y witherableWither from right to left.    41ˆ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…€†‡€ˆ‰€Š€†‹€Œ€€Ž€€€‘€’“”•%witherable-0.5-5ULZ57xMp2wE2fGHMK3HJm Witherable witherable Data.FunctorIdentity<&> Data.ListnubWrappedFoldableWrapFilterableunwrapFoldableWitherableWithIndexiwitheriwitherMifilterAFilterableWithIndex imapMaybeifilterwitherwitherMfilterA witherMap FilterablemapMaybe catMaybesfilterdrain<$?><&?>forMaybeordNubordNubOnhashNub hashNubOn$fFilterable:.:$fFilterable:+:$fFilterable:*:$fFilterableM1$fFilterableRec1$fFilterableK1$fFilterableU1$fFilterableV1$fFilterableMaybeT$fFilterableSum$fFilterableProduct$fFilterableCompose$fFilterableSeq$fFilterableVector$fFilterableConst$fFilterableProxy$fFilterableHashMap$fFilterableMap$fFilterableIntMap$fFilterableZipList$fFilterableList$fFilterableEither$fFilterableMaybe$fWitherable:.:$fWitherable:+:$fWitherable:*:$fWitherableM1$fWitherableRec1$fWitherableK1$fWitherableU1$fWitherableV1$fWitherableBackwards$fWitherableReverse$fWitherableMaybeT$fWitherableIdentityT$fWitherableSum$fWitherableProduct$fWitherableCompose$fWitherableSeq$fWitherableVector$fWitherableConst$fWitherableProxy$fWitherableHashMap$fWitherableMap$fWitherableIntMap$fWitherableZipList$fWitherableList$fWitherableEither$fWitherableMaybe$fFilterableWithIndexEitherSum"$fFilterableWithIndexEitherProduct$fFilterableWithIndex(,)Compose$fFilterableWithIndexIntSeq$fFilterableWithIndexIntVector$fFilterableWithIndexVoidProxy$fFilterableWithIndexkHashMap$fFilterableWithIndexkMap$fFilterableWithIndexIntIntMap$fFilterableWithIndexIntZipList$fFilterableWithIndexIntList$fFilterableWithIndex()Maybe$fWitherableWithIndexiBackwards$fWitherableWithIndexiReverse$fWitherableWithIndexiIdentityT$fWitherableWithIndexEitherSum"$fWitherableWithIndexEitherProduct$fWitherableWithIndex(,)Compose$fWitherableWithIndexIntSeq$fWitherableWithIndexIntVector$fWitherableWithIndexVoidProxy$fWitherableWithIndexkHashMap$fWitherableWithIndexkMap$fWitherableWithIndexIntIntMap$fWitherableWithIndexIntZipList$fWitherableWithIndexIntList$fWitherableWithIndex()Maybe$fWitherableWrappedFoldable%$fFilterableWithIndexiWrappedFoldable$fFilterableWrappedFoldable&$fTraversableWithIndexiWrappedFoldable#$fFoldableWithIndexiWrappedFoldable"$fFunctorWithIndexiWrappedFoldable$fFunctorWrappedFoldable$fFoldableWrappedFoldable$fTraversableWrappedFoldable$fApplicativeWrappedFoldable$fAlternativeWrappedFoldable$fFunctorBoolPair$fFilterableWithIndexiBackwards$fFilterableWithIndexiReverse$fFilterableWithIndexiIdentityT$fFilterableBackwards$fFilterableReverse$fFilterableIdentityTbaseGHC.Basepureghc-prim GHC.Classes&&Data.Traversable TraversableData.Functor.ComposeComposefmaptraverseFunctor Data.MaybeidliftA2<$>flipStringmapMaybeDefaultimapMaybeDefault