Îõ³h$‹ òÙ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרNone25789>?ÁÉÎÖ×àT/ compactableÇDichotomous is about types that are injective to (Maybe (These a b)) In other words a + b + (a * b) + 1. Therefore ab (,) b LeftOnly b ab LeftOrBoth a RightOnly a ab RightOrBoth a b Either a b ab These 1 None 1 ab MaybeBoth 1 b MaybeRight 1 b ab MaybeRightOrBoth 1 a MaybeLeft 1 a ab MaybeLeftOrBoth 1 a b MaybeEither 1 a b ab TheseOrNot9   !"#$%&'()*+,-./0123456789/016582347,-.)*+&'(#$%!"    None25789<=?ÁÉÎÖ×Ùà ‰ compactableA generalization of catMaybescompact . map Just = idcompact . mapMaybe idcompact (pure Just <*> a) = aapplyMaybe (pure Just) = idapplyMaybe (pure id) = compactbindMaybe (return . Just) = idbindMaybe return = compact!compact (return . Just =<< a) = a,mapMaybe (l <=< r) = mapMaybe l . mapMaybe rcompact (Nothing <$ a) = emptycompact (Nothing <$ a) = memptycompact empty = emptycompact mempty = mempty"traverseMaybe (Just . Just) = Just)traverseMaybe (map Just . f) = traverse f¢ compactableñWhile more constrained, when available, this default is going to be faster than the one provided in the typeclass£ compactableñWhile more constrained, when available, this default is going to be faster than the one provided in the typeclass234‰ŒŠŽ‹‘’“”•–—˜™š›œžŸ ¡¢£‰ŒŠŽ‹‘’“”•–—˜™š234›œžŸ ¡¢£None25789?ÁÉÎÔÖ×Ùà ‘¼ compactablePartial inverse of Compactable'expand (unite x y) = uniteDichotomy x yunite = emapThese idmap Just = expand)(\x -> unite x x) = map (\x -> These x x)#emapThese f a b = map f (unite a b)3unite (f <$> x) (g <$> y) = bimap f g <$> unite x y'expand (unite x y) = swap <$> unite y x!emapThese f a b = f <$> unite a bunite empty = map Thatflip unite empty = map Thisunite mempty = map Thatflip unite mempty = map This ¼¾Â½¿ÀÁÃÄÅÆÇÈ ¼¾Â½¿ÀÁÃÄÅÆÇÈNone ≼ռ‰ÕÙ       !"##$%%&'())*+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚcompactable-0.2.0.0-inplaceControl.Functor.DichotomousControl.Functor.CompactableControl.Functor.ExpansiveControl.Functor.Elastic$these-1.1.1.1-8ZTMMpQdUZy4OTJwES5D1a Data.TheseTheseThatThisAltSumunAltSum TheseOrNotThis'That'These'Not MaybeEither MENothingMELeftMERightMaybeLeftOrBoth MLBNothingMLBLeftMLBoth MaybeLeft MLNothingMLeftMaybeRightOrBoth MRBNothingMRBRightMRBoth MaybeRight MRNothingMRight MaybeBoth unMaybeOrBothNone RightOrBothRight'RBoth RightOnly unRightOnly LeftOrBothLeft'LBothLeftOnly unLeftOnly Dichotomous dichotomy ymotohcidmfold'mleftsmrights hushRighthushLeft flipTheseswap$fDichotomousThese$fDichotomousEither$fDichotomous(,)$fDichotomousLeftOnly$fDichotomousLeftOrBoth$fDichotomousRightOnly$fDichotomousRightOrBoth$fDichotomousNone$fDichotomousMaybeBoth$fDichotomousMaybeRight$fDichotomousMaybeRightOrBoth$fDichotomousMaybeLeft$fDichotomousMaybeLeftOrBoth$fDichotomousMaybeEither$fDichotomousTheseOrNot$fMonoidAltSum$fSemigroupAltSum$fFunctorAltSum$fApplicativeAltSum$fAlternativeAltSum$fEqTheseOrNot$fOrdTheseOrNot$fShowTheseOrNot$fReadTheseOrNot$fGenericTheseOrNot$fEqMaybeEither$fOrdMaybeEither$fShowMaybeEither$fReadMaybeEither$fGenericMaybeEither$fEqMaybeLeftOrBoth$fOrdMaybeLeftOrBoth$fShowMaybeLeftOrBoth$fReadMaybeLeftOrBoth$fGenericMaybeLeftOrBoth $fEqMaybeLeft$fOrdMaybeLeft$fShowMaybeLeft$fReadMaybeLeft$fGenericMaybeLeft$fEqMaybeRightOrBoth$fOrdMaybeRightOrBoth$fShowMaybeRightOrBoth$fReadMaybeRightOrBoth$fGenericMaybeRightOrBoth$fEqMaybeRight$fOrdMaybeRight$fShowMaybeRight$fReadMaybeRight$fGenericMaybeRight $fEqMaybeBoth$fOrdMaybeBoth$fShowMaybeBoth$fReadMaybeBoth$fGenericMaybeBoth$fEqNone $fOrdNone $fShowNone $fReadNone $fGenericNone$fEqRightOrBoth$fOrdRightOrBoth$fShowRightOrBoth$fReadRightOrBoth$fGenericRightOrBoth $fEqRightOnly$fOrdRightOnly$fShowRightOnly$fReadRightOnly$fGenericRightOnly$fEqLeftOrBoth$fOrdLeftOrBoth$fShowLeftOrBoth$fReadLeftOrBoth$fGenericLeftOrBoth $fEqLeftOnly $fOrdLeftOnly$fShowLeftOnly$fReadLeftOnly$fGenericLeftOnly Compactablecompact separateThesefilter partitionmapMaybecontramapMaybemapThesecontramapThese applyMaybe applyThese bindMaybe bindThese traverseMaybe traverseTheseseparate fforMaybe fforThese mapMaybeM fforMaybeM mapTheseM fforTheseM applyMaybeM bindMaybeMtraverseMaybeMaltDefaultCompactaltDefaultSeparate$fCompactable:.:$fCompactableM1$fCompactable:*:$fCompactableAlt$fCompactableRec1$fCompactableWrappedMonad$fCompactableSet$fCompactableConst$fCompactableVector$fCompactableSeq$fCompactableMap$fCompactableIntMap$fCompactableCompose$fCompactableProduct$fCompactableOption$fCompactableU1$fCompactableProxy$fCompactableSTM$fCompactableIO$fCompactableZipList$fCompactable[]$fCompactableThese$fCompactableEither$fCompactableMaybe Expansiveexpanduniteunfilter emapMaybeecontramapMaybe emapTheseecontramapThese eapplyMaybe eapplyThese ebindMaybe ebindTheseuniteDichotomy$fExpansiveProduct$fExpansiveMap$fExpansiveIntMap$fExpansiveVector$fExpansiveStream$fExpansiveBundle$fExpansiveSeq$fExpansiveOption$fExpansiveProxy$fExpansiveZipList $fExpansive[]$fExpansiveMaybeElastic $fElasticMap$fElasticIntMap$fElasticMaybe