úÎDH.ßt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` a b c d e f g h i j k l m nopqrsSafe tuvwxyz{|}~€u{|}~€ tuvwxyz{|}~€4(C) 2008-2016 Edward Kmett, (C) 2015-2016 Ryan Scott BSD-style (see the file LICENSE) Edward KmettTemplate HaskellNone&ÿ"A mapping of type variable Names to their map function Names. For example, in a Bifunctor declaration, a TyVarMap might look like (a ~> f, b ~> g), where a and b are the last two type variables of the datatype, and f and g are the two functions which map their respective type variables.‚EWhether a type is not of kind *, is of kind *, or is a kind variable.ƒBExpands all type synonyms in a type. Written by Dan Rosén in the  genifunctors package (licensed under BSD3).„8Does a Type have kind * or k (for some kind variable k)?…Returns † the kind variable ‡ of a ‚# if it exists. Otherwise, returns ˆ.‰jConcat together all of the StarKindStatuses that are IsKindVar and extract the kind variables' Names out.Š Test if an ‹ value is the Œ= constructor. Provided as standard with GHC 7.8 and above.Pull the value out of an ‹/ where both alternatives have the same type. ?\x -> fromEither (Left x ) == x \x -> fromEither (Right x) == xŽŽ× takes a list of Bools and a list of some elements and filters out these elements for which the corresponding value in the list of Bools is False. This function does not check whether the lists have equal length.¢ takes a list of Bools and two lists as input, and outputs a new list consisting of elements from the last two input lists. For each Bool in the list, if it is ;, then it takes an element from the former list. If it is ‘~, it takes an element from the latter list. The elements taken correspond to the index of the Bool in its list. For example: @filterByLists [True, False, True, False] "abcd" "wxyz" = "axcz" AThis function does not check whether the lists have equal length.’’‡ takes a list of Bools and a list of some elements and partitions the list according to the list of Bools. Elements corresponding to + go to the left; elements corresponding to ‘ go to the right. For example, ;partitionByList [True, False, True] [1,2,3] == ([1,3], [2])D This function does not check whether the lists have equal length.“ Apply an Either Exp Exp expression to an ” expression, preserving the ‹-ness.•"Returns True if a Type has kind *.–GGets all of the type/kind variable names mentioned somewhere in a Type.—GGets all of the type/kind variable names mentioned somewhere in a Kind.˜hasKindVarChain n kind Checks if kindj is of the form k_0 -> k_1 -> ... -> k_(n-1), where k0, k1, ..., and k_(n-1) can be * or kind variables.™EIf a Type is a SigT, returns its kind signature. Otherwise, return *.šKIf a VarT is missing an explicit kind signature, steal it from a TyVarBndr.›Monadic version of concatMapœ#Extracts the name of a constructor.KGenerate a list of fresh names with a common prefix, and numbered suffixes.ž#Extracts the kind from a TyVarBndr.ŸConvert a TyVarBndr to a Type. )Applies a typeclass constraint to a type.¡ŸChecks to see if the last types in a data family instance can be safely eta- reduced (i.e., dropped), given the other types. This checks for three conditions: +All of the dropped types are type variables%All of the dropped types are distinct<None of the remaining types mention any of the dropped types¢iExtract Just the Name from a type variable. If the argument Type is not a type variable, return Nothing.£dExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.¤6Peel off a kind signature from a Type (if it has one).¥Is the given type a variable?¦PIs the given type a type family constructor (and not a data family constructor)?§AAre all of the items in a list (which have an ordering) distinct?HThis uses Set (as opposed to nub) for better asymptotic time complexity.¨9Does the given type mention any of the Names in the list?©@Does an instance predicate mention any of the Names in the list?ª)Construct a type via curried application.«7Fully applies a type constructor to its type variables.¬HSplit an applied type into its individual components. For example, this: Either Int Char would split to this: [Either, Int, Char] ­ESplit a type signature by the arrows on its spine. For example, this: .forall a b. (a ~ b) => (a -> b) -> Char -> () would split to this: (a ~ b, [a -> b, Char, ()]) ®)Like uncurryType, except on a kind level.\‚¯°±²³ƒ´µ¶·¸¹º»¼½¾„…‰ŠŽ’“•¿–—˜™š›ÀœžŸ ¡¢£¤¥¦§¨©ª«¬­®ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãä\‚¯°±²³ƒ´µ¶·¸¹º»¼½¾„…‰ŠŽ’“•¿–—˜™š›ÀœžŸ ¡¢£¤¥¦§¨©ª«¬­®ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäY‚¯°±²³ƒ´µ¶·¸¹º»¼½¾„…‰ŠŽ’“•¿–—˜™š›ÀœžŸ ¡¢£¤¥¦§¨©ª«¬­®ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãä4(C) 2008-2016 Edward Kmett, (C) 2015-2016 Ryan Scott BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableNoneG å6A representation of which function is being generated.æ1A representation of which class is being derived. Generates a çG instance declaration for the given data type or data family instance.1Generates a lambda expression which behaves like bimap (without requiring a ç instance). Generates a èG instance declaration for the given data type or data family instance.1Generates a lambda expression which behaves like bifold (without requiring a è instance).1Generates a lambda expression which behaves like  bifoldMap (without requiring a è instance).1Generates a lambda expression which behaves like bifoldr (without requiring a è instance).1Generates a lambda expression which behaves like bifoldl (without requiring a è instance). Generates a éG instance declaration for the given data type or data family instance.1Generates a lambda expression which behaves like  bitraverse (without requiring a é instance). 1Generates a lambda expression which behaves like  bisequenceA (without requiring a é instance). 1Generates a lambda expression which behaves like bimapM (without requiring a é instance). 1Generates a lambda expression which behaves like  bisequence (without requiring a é instance).êPDerive a class instance declaration (depending on the BiClass argument's value).ë½Generates a declaration defining the primary function(s) corresponding to a particular class (bimap for Bifunctor, bifoldr and bifoldMap for Bifoldable, and bitraverse for Bitraversable).NFor why both bifoldr and bifoldMap are derived for Bifoldable, see Trac #7436.ìDGenerates a lambda expression which behaves like the BiFun argument.ígGenerates a lambda expression for the given constructors. All constructors must be from the same type.î7Generates a lambda expression for a single constructor.ïCGenerates a lambda expression for a single constructor's arguments.ð^Generates a lambda expression for a single argument of a constructor. The returned value is ŒM if its type mentions one of the last two type parameters. Otherwise, it is ñ.òJGenerates a lambda expression for a specific type. The returned value is ŒM if its type mentions one of the last two type parameters. Otherwise, it is ñ.ó"Boilerplate for top level splices.-The given Name must meet one of two criteria: JIt must be the name of a type constructor of a plain data type or newtype.NIt must be the name of a data family instance or newtype instance constructor.,Any other value will result in an exception.ô6Deduces the instance context and head for an instance.õ±Attempt to derive a constraint on a Type. If successful, return Just the constraint and any kind variable names constrained to *. Otherwise, return Nothing and the empty list.dSee Note [Type inference in derived instances] for the heuristics used to come up with constraints.ö…Either the given data type doesn't have enough type variables, or one of the type variables to be eta-reduced cannot realize kind *.÷rOne of the last two type variables appeard in a contravariant position when deriving Bifoldable or Bitraversable.øYA constructor has a function argument in a derived Bifoldable or Bitraversable instance.ùZThe data type has a DatatypeContext which mentions one of the eta-reduced type variables.úbThe data type has an existential constraint which mentions one of the eta-reduced type variables.û•The data type mentions one of the n eta-reduced type variables in a place other than the last nth positions of a data type in a constructor's field.ü}One of the last type variables cannot be eta-reduced (see the canEtaReduce function for the criteria it would have to meet).9åýþÿæçèé êëìíîïðòóô'Bifunctor, Bifoldable, or Bitraversable(The type constructor or data family nameThe datatype context=The type variables from the data type/data family declaration†; the types used to instantiate a data family instance, or ˆ if it's a plain data type'Bifunctor, Bifoldable, or Bitraversable(The type constructor or data family nameThe datatype context*The types to instantiate the instance with+True if it's a data family, False otherwiseõö÷øùúûü        2åýþÿæçèé êëìíîïðòóôõö÷øùúûü     Safe'>IKLNUUsing parametricity as an approximation of a natural transformation in two arguments.      (C) 2011-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe*+N%Minimal definition either  or _ identifies foldable structures with two different varieties of elements. Common examples are ‹ and '(,)': ¤instance Bifoldable Either where bifoldMap f _ (Left a) = f a bifoldMap _ g (Right b) = g b instance Bifoldable (,) where bifoldr f g z (a, b) = f a (g b z)nWhen defining more than the minimal set of definitions, one should ensure that the following identities hold:  "a     f g "a  ( . f) ( . g)   f g z t "a  ( (Endo . f) (Endo . g) t) z 4Combines the elements of a structure using a monoid.  "a   UCombines the elements of a structure, given ways of mapping them to a common monoid.  f g "a  ( . f) ( . g) cCombines the elements of a structure in a right associative manner. Given a hypothetical function %toEitherList :: p a b -> [Either a b]T yielding a list of all elements of a structure in order, the following would hold:  f g z "a  ( f g) z . toEitherListaCombines the elments of a structure in a left associative manner. Given a hypothetical function %toEitherList :: p a b -> [Either a b]T yielding a list of all elements of a structure in order, the following would hold:  f g z "a  (acc -> # (f acc) (g acc)) z . toEitherListAs D, but strict in the result of the reduction functions at each step. A variant of N that has no base case, and thus may only be applied to non-empty structures. 2Right associative monadic bifold over a structure.!As D, but strict in the result of the reductionf unctions at each step." A variant of N that has no base case, and thus may only be applied to non-empty structures.#1Left associative monadic bifold over a structure.$As M, but ignores the results of the functions, merely performing the "actions".%As $1, but with the structure as the primary argument.&As N, but ignores the results of the functions, merely performing the "actions".'As &1, but with the structure as the primary argument.(As ), but ignores the results of the actions.)As ), but ignores the results of the actions.*1The sum of a collection of actions, generalizing 0.+1The sum of a collection of actions, generalizing 0.,6Collects the list of elements of a structure in order.-$Test whether the structure is empty..4Returns the size/length of a finite structure as an ./(Does the element occur in the structure?0AReduces a structure of lists to the concatenation of those lists.1-The largest element of a non-empty structure.2+The least element of a non-empty structure.3The 39 function computes the sum of the numbers of a structure.4The 4> function computes the product of the numbers of a structure.5vGiven a means of mapping the elements of a structure to lists, computes the concatenation of all such lists in order.66I returns the conjunction of a container of Bools. For the result to be  , the container must be finite; ‘, however, results from a ‘& value finitely far from the left end.77I returns the disjunction of a container of Bools. For the result to be ‘ , the container must be finite; , however, results from a & value finitely far from the left end.8UDetermines whether any element of the structure satisfies the appropriate predicate.9TDetermines whether all elements of the structure satisfy the appropriate predicate.:\The largest element of a non-empty structure with respect to the given comparison function.;ZThe least element of a non-empty structure with respect to the given comparison function.<< is the negation of /.=The ={ function takes a predicate and a structure and returns the leftmost element of the structure matching the predicate, or ˆ if there is no such element.9  !"#$%&'()*+,-./0123456789:;<=!"#$%&'()*+,-.% !"#$%&'()*+,-./0123456789:;<=% !"#$%&'+()*,-./1234056789:;<=1  !"#$%&'()*+,-./0123456789:;<=!"#$%&'()*+,-.(C) 2011-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe*+ /right-to-left state transformer0left-to-right state transformer>>_ identifies bifunctorial data structures whose elements can be traversed in order, performing 1 or 2Q actions at each element, and collecting a result structure with the same shape.A definition of 3! must satisfy the following laws:  naturality? (t . f) (t . g) "a t . ? f g) for every applicative transformation tidentity? Identity Identity "a Identity compositionCompose . 4 (? g1 g2) . ? f1 f2 "a 3 (Compose . 4 g1 . f1) (Compose . 4 g2 . f2) where an applicative transformation is a function t :: (1 f, 1 g) => f a -> g apreserving the 1 operations: t (5 x) = 5 x t (f 6 x) = t f 6 t x and the identity functor Identity and composition functors Compose are defined as ÿnewtype Identity a = Identity { runIdentity :: a } instance Functor Identity where fmap f (Identity x) = Identity (f x) instance Applicative Identity where pure = Identity Identity f <*> Identity x = Identity (f x) newtype Compose f g a = Compose (f (g a)) instance (Functor f, Functor g) => Functor (Compose f g) where fmap f (Compose x) = Compose (fmap (fmap f) x) instance (Applicative f, Applicative g) => Applicative (Compose f g) where pure = Compose . pure . pure Compose f <*> Compose x = Compose ((<*>) <$> f <*> x)Some simple examples are ‹ and '(,)': Çinstance Bitraversable Either where bitraverse f _ (Left x) = Left <$> f x bitraverse _ g (Right y) = Right <$> g y instance Bitraversable (,) where bitraverse f g (x, y) = (,) <$> f x <*> g y>3 relates to its superclasses in the following ways: 7 f g "a  runIdentity . ? (Identity . f) (Identity . g)  f g = 8 . ? (9 . f) (9 . g) These are available as G and H respectively.?ÁEvaluates the relevant functions at each element in the structure, running the action, and builds a new structure with the same shape, using the elements produced from sequencing the actions. ? f g "a @ . 7 f g@ySequences all the actions in a structure, building a new structure with the same shape using the results of the actions. @ "a ?  AAs ?, but uses evidence that m is a 2 rather than an 1. A f g "a B . 7 f g A f g "a : . ? (; . f) (; . g) BAs @, but uses evidence that m is a 2 rather than an 1. B "a A   B "a : . @ . 7 ; ; CC is ?* with the structure as the first argument.DD is A* with the structure as the first argument.EDTraverses a structure from left to right, threading a state of type aH and using the given actions to compute new elements for the structure.FDTraverses a structure from right to left, threading a state of type aH and using the given actions to compute new elements for the structure.GA default definition of 7 in terms of the > operations.HA default definition of  in terms of the > operations.&<=>/?@0AB>?@ABCDEFGHCDEFGHIJKLMNOPQRST >?@ABCDEFGH >?@BACDEFGH<=>/?@0AB>?@ABCDEFGHCDEFGHIJKLMNOPQRSTSafe '+0=>LIJKLMNOPIJKIJKPONMLIJKLMNOP(C) 2011-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafeT a T b "a 7 (U ) (U ) V a S b U a U b "a 7 U U V a S b XLift binary functionsYLift ternary functionsQRSTUVWXYVWXYZ[\]^ _`7aQRSTUVWXY QRSTUVWXYQRSTUVWXYVWXYZ[\]^STUVW(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '*+04=>KLZ Compose two bs on the inside of a a. Z[\cdefghiZ[\Z[\Z[\cdefghi(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '+0=>L]Make a b over the first argument of a a. Mnemonic: Cl owns to the l1eft (parameter of the Bifunctor), joker s to the right. ]^_jklmnop]^_]^_]^_jklmnop (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisional non-portableSafe'*+04>`Greatest fixpoint of a a (a b' over the first argument with zipping).`abqrst`ab`ab`abqrst (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe'+0>cMake a a flipping the arguments of a a. cdeuvwxyz{|cdecde cdeuvwxyz{| (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisional non-portableSafe'*+04>fMake a b over both arguments of a a.fgh}~€fghfghfgh}~€ (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '+0=>LiMake a b over the second argument of a a. Mnemonic: Cl owns to the l1eft (parameter of the Bifunctor), joker s to the right. ijk‚ƒ„…†‡ijkijkijk‚ƒ„…†‡ )(C) 2008-2016 Jesse Selover, Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '+0=>Ll"Form the product of two bifunctorslmˆ‰Š‹Œlmlmlmˆ‰Š‹Œ(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '*+04=>KLn Compose a b on the outside of a a.nopŽ‘’“”•–—˜™š›œnopnopnopŽ‘’“”•–—˜™š›œ(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe '+0=>LqMake a b over the second argument of a a. qrsžŸ ¡¢£¤qrsqrsqrsžŸ ¡¢£¤¥ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkllmnno p q r s s t u u v w w x y z{{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—’“˜™š’›œ’›žŸ ¡¢£¡¢¤¥¦•–§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùú/Tûüýþÿ’›      !"#’“$’“%’“&’'(’)*’›+’),¡¢-../00123456789:;<=>?@A’“B’“C’DE’“F’“G’“H’IJ’KL’KM’KN’KOPPQ@RASTUVWXYZ[\]^_`abcde’“fghijklmno’Ip’Iq’Iú’“rstuvwxyz{|}~€  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µbifun_Lg5j6GeboyY0mvJdfqrKtlData.Bifunctor.THData.Bifunctor.FunctorData.BifoldableData.BitraversableData.Bifunctor.SumData.BiapplicativeData.Bifunctor.BiffData.Bifunctor.ClownData.Bifunctor.FixData.Bifunctor.FlipData.Bifunctor.JoinData.Bifunctor.JokerData.Bifunctor.ProductData.Bifunctor.TannenData.Bifunctor.WrappedPaths_bifunctorsData.Bifunctor.TH.Internal bitraversebimapM bisequenceA bisequencederiveBifunctor makeBimapderiveBifoldable makeBifold makeBifoldMap makeBifoldr makeBifoldlderiveBitraversablemakeBitraversemakeBisequenceA makeBimapMmakeBisequenceBifunctorComonad biextractbiextend biduplicateBifunctorMonadbireturnbibindbijoinBifunctorFunctorbifmap:->biliftMbiliftW Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldr1bifoldrMbifoldl'bifoldl1bifoldlM bitraverse_bifor_bimapM_biforM_ bisequenceA_ bisequence_biasumbimsumbiListbinullbilengthbielembiconcat bimaximum biminimumbisum biproduct biconcatMapbiandbiorbianybiall bimaximumBy biminimumBy binotElembifind BitraversablebiforbiforM bimapAccumL bimapAccumR bimapDefaultbifoldMapDefaultSumL2R2$fBifunctorMonadkkSum$fBifunctorFunctorkkkkSum$fBitraversableSum$fBifoldableSum$fBifunctorSum Biapplicativebipure<<*>>*>><<*<<$>><<**>>biliftA2biliftA3BiffrunBiffClownrunClownFixInoutFliprunFlipJoinrunJoinJokerrunJokerProductPairTannen runTannenWrappedBifunctor WrapBifunctorunwrapBifunctorcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameTyVarMapStarKindStatus expandSyncanRealizeKindStarstarKindStatusToNamebaseGHC.BaseJusttemplate-haskellLanguage.Haskell.TH.SyntaxNameNothingcatKindVarNamesisRight Data.EitherEitherRight fromEither filterByList filterByListsghc-prim GHC.TypesTrueFalsepartitionByList appEitherEExp hasKindStartyVarNamesOfTypetyVarNamesOfKindhasKindVarChaintyKindstealKindForType concatMapMconstructorName newNameListtvbKind tvbToType applyClass canEtaReducevarTToName_maybe varTToNameunSigTisTyVar isTyFamily allDistinct mentionsNamepredMentionsNameapplyTy applyTyCon unapplyTy uncurryTy uncurryKind NotKindStarKindStar IsKindVar KindSubst TypeSubst expandSynKind expandSynAppmkSubst substType substKindsubstNameWithKindsubstNamesWithKindStar bimapConst bifoldrConstbifoldMapConstbitraverseConst isStarOrVarthd3bifunctorsPackageKeymkBifunctorsName_tcmkBifunctorsName_vbifoldableTypeNamebitraversableTypeNamebifoldrValNamebifoldMapValNamebitraverseValNamebimapConstValNamebifoldrConstValNamebifoldMapConstValNamebitraverseConstValName dualDataName endoDataNamewrapMonadDataNamefunctorTypeNamefoldableTypeNametraversableTypeNameappEndoValNamecomposeValName idValName errorValName flipValName fmapValName foldrValNamefoldMapValNamegetDualValNametraverseValNameunwrapMonadValName starKindNamebifunctorTypeName bimapValName pureValName apValNamemappendValName memptyValNameBiFunBiClass Bifunctor deriveBiClass biFunDecs makeBiFunmakeBiFunForConsmakeBiFunForConmakeBiFunForArgsmakeBiFunForArgLeftmakeBiFunForTypewithTypebuildTypeInstancederiveConstraintderivingKindErrorcontravarianceErrornoFunctionsErrordatatypeContextErrorexistentialContextErroroutOfPlaceTyVarErroretaReductionErrorBimapBifoldr BifoldMap BitraversebuildTypeInstanceFromTys reifyConTysbiFunConstName biClassName biFunName biClassToFuns biFunToClassbiClassConstraint biFunArity allowFunTys allowExQuant biFunTrivbiFunApp biFunCombine bimapCombinebifoldrCombinebifoldMapCombinebitraverseCombineidmappendmempty Data.MonoidappEndo Data.FoldablefoldreitherfoldlIntMingetMinMaxgetMax $fMonoidMin $fMonoidMax$fBifoldableEither$fBifoldableTagged$fBifoldable(,,,,,,)$fBifoldable(,,,,,)$fBifoldable(,,,,)$fBifoldable(,,,)$fBifoldable(,,)$fBifoldableK1$fBifoldableConstant$fBifoldableConst$fBifoldable(,)$fBifoldableArgStateRStateL ApplicativeMonadData.Traversabletraversefmappure<*>Data.BifunctorbimapControl.ApplicativegetConstConst unwrapMonad WrapMonadIdgetId runStateR runStateL$fApplicativeId $fFunctorId$fApplicativeStateR$fFunctorStateR$fApplicativeStateL$fFunctorStateL$fBitraversableTagged$fBitraversableK1$fBitraversableConstant$fBitraversableConst$fBitraversableEither$fBitraversable(,,,,,,)$fBitraversable(,,,,,)$fBitraversable(,,,,)$fBitraversable(,,,)$fBitraversable(,,)$fBitraversable(,)$fBitraversableArgconst$fBiapplicativeConst$fBiapplicativeTagged$fBiapplicative(,,,,,,)$fBiapplicative(,,,,,)$fBiapplicative(,,,,)$fBiapplicative(,,,)$fBiapplicative(,,)$fBiapplicativeArg$fBiapplicative(,)secondfirstFunctor$fBitraversableBiff$fTraversableBiff$fBifoldableBiff$fFoldableBiff$fBiapplicativeBiff $fFunctorBiff$fBifunctorBiff$fTraversableClown$fBitraversableClown$fFoldableClown$fBifoldableClown$fBiapplicativeClown$fFunctorClown$fBifunctorClown$fTraversableFix $fFoldableFix$fApplicativeFix $fFunctorFix$fBifunctorFunctorkkkkFlip$fTraversableFlip$fBitraversableFlip$fFoldableFlip$fBifoldableFlip$fBiapplicativeFlip $fFunctorFlip$fBifunctorFlip$fTraversableJoin$fFoldableJoin$fApplicativeJoin $fFunctorJoin$fTraversableJoker$fBitraversableJoker$fFoldableJoker$fBifoldableJoker$fBiapplicativeJoker$fFunctorJoker$fBifunctorJoker$fBifunctorComonadkkProduct$fBifunctorFunctorkkkkProduct$fBitraversableProduct$fBifoldableProduct$fBiapplicativeProduct$fBifunctorProduct$fArrowPlusTannen$fArrowZeroTannen$fArrowLoopTannen$fArrowChoiceTannen $fArrowTannen$fCategorykTannen$fBitraversableTannen$fTraversableTannen$fBifoldableTannen$fFoldableTannen$fBiapplicativeTannen$fFunctorTannen$fBifunctorTannen$fBifunctorComonadkkTannen$fBifunctorMonadkkTannen$fBifunctorFunctorkkkkTannen$fBitraversableWrappedBifunctor$fTraversableWrappedBifunctor$fBifoldableWrappedBifunctor$fFoldableWrappedBifunctor$fBiapplicativeWrappedBifunctor$fFunctorWrappedBifunctor$fBifunctorWrappedBifunctor