úÎ!Lc     Safe /249;<=?OTThe simplest selection type3Expose the underlying representation of a SelectionIYou can make any type selectable if it contains a functor of (Either b a)"Lift a functor into the Selectable2Extract the underlying functor from the Selectable9Create a selection from a functor by selecting all valuesIDrops selection from your functor returning all values (selected or not).  .  = id  =  id idCClear the selection then select only items which match a predicate.  f =  f .  :Add items which match a predicate to the current selection  f .  g =  (a -> f a || g a)=Remove items which match a predicate to the current selection  f .  g =  (a -> f a && not (g a))!Select all items in the container  =  (const True) #Deselect all items in the container   =  (const True) CFlip the selection, all selected are now unselected and vice versa. Map over selected values  onSelected = fmap Map over unselected values  onSelected f =  (fmap (  f)) RCollect all selected values into a list. For more complex operations use foldMap.   = foldMap (:[])gCollect all unselected values into a list. For more complex operations use operations from Bifoldable.  =   .  6Unify selected and unselected and forget the selection  f g ==  .  onUnselected f .  onSelected gNPerform a natural transformation over the underlying container of a selectable‚Select values based on their context within a comonad. This combinator makes its selection by running the predicate using extend.>Bitraversable over unselected and selected values respectively;Bifoldable over unselected and selected values respectivelyBifunctor over unselected ( ) and selected (!) valuesISelection is a monad over selected items when the underlying m is a Monad "#$   "#$%      !"#!"$%&'()selections-0.1.0.3-FZPCdVZhHrXHtpr2k8OLuQData.Functor.Selection Selection runSelection newSelectionforgetSelectionselectincludeexclude selectAll deselectAllinvertSelection mapSelected mapUnselected getSelected getUnselectedunifytransselectWithContext$fSelectableSelectionf$fBitraversableSelection$fBifoldableSelection$fBifunctorSelection$fMonadSelection$fApplicativeSelection$fFunctorSelection$fFoldableSelection $fEqSelection$fShowSelection Selectable wrapSelectionunwrapSelectionmodifySelectionbaseData.Bifunctorfirstsecondchoose'chooseswitch