h&PE=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                            (C) 2011-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportable Trustworthy)* o bifunctorsLift binary functions bifunctors a  b D  ( ) ( )  a  b  bifunctors a  b D     a  b  bifunctorsLift ternary functions  bifunctors Traverse a  container in a . $ satisfies the following properties: Pairing   (,) t = (t, t) Composition   ( .  g h . f) =  .  ( g) ( h) .   f   (  .  f . g) =   .  (  f) .  g Naturality  t .   f =   (t . f)'for every biapplicative transformation t.A biapplicative transformation from a  P to a  Q is a function t :: P a b -> Q a bpreserving the  operations. That is, t ( x y) =  x y t (x  y) = t x  t yPerformance note  is fairly efficient, and uses compiler rewrite rules to be even more efficient for a few important types like []. However, if performance is critical, you might consider writing a container-specific implementation.  bifunctorsPerform all the  Biappicative actions in a 9 container and produce a container with all the results. sequenceBia =   id  bifunctors A version of  . that doesn't care how the traversal is done.   = traverseBiaWith traverse   44444(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportable Trustworthy 89:;X bifunctors8Pointwise lifting of a class over two arguments, using .#Classes that can be lifted include ,  and . Each method of those classes can be defined as lifting themselves over each argument of . mempty = bipure mempty mempty minBound = bipure minBound minBound maxBound = bipure maxBound maxBound fromInteger n = bipure (fromInteger n) (fromInteger n) negate = bimap negate negate (+) = biliftA2 (+) (+) (<>) = biliftA2 (<>) (<>)  is to  as  is to . can be used with  DerivingVia) to derive a numeric instance for pairs: newtype Numpair a = Np (a, a) deriving (S.Semigroup, Monoid, Num, Bounded) via Biap (,) a a (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe 056;>5 bifunctors Compose two s on the inside of a .567567(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe06;M bifunctorsMake a  over the first argument of a . Mnemonic: Cl owns to the l1eft (parameter of the Bifunctor), joker s to the right.MNOMNO(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisional non-portableSafe056;e bifunctorsGreatest fixpoint of a  (a ' over the first argument with zipping).efgefgSafe08 bifunctorsUsing parametricity as an approximation of a natural transformation in two arguments. uvwxyz{|}~ }~yz{|uvwx0(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe06;7 bifunctorsMake a  flipping the arguments of a .(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisional non-portableSafe056;# bifunctorsMake a  over both arguments of a . (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe06; bifunctorsMake a  over the second argument of a . Mnemonic: Cl owns to the l1eft (parameter of the Bifunctor), joker s to the right. )(C) 2008-2016 Jesse Selover, Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe06;q bifunctors"Form the product of two bifunctors Safe06;4(C) 2008-2016 Edward Kmett, (C) 2015-2016 Ryan Scott BSD-style (see the file LICENSE) Edward KmettTemplate HaskellUnsafe) bifunctorsA 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. bifunctorsWhether a type is not of kind *, is of kind *, or is a kind variable. bifunctors8Does a Type have kind * or k (for some kind variable k)? bifunctorsReturns  the kind variable  of a # if it exists. Otherwise, returns . bifunctorsConcat together all of the StarKindStatuses that are IsKindVar and extract the kind variables' Names out. bifunctors 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. bifunctors 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" This function does not check whether the lists have equal length. bifunctors 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]) This function does not check whether the lists have equal length. bifunctors"Returns True if a Type has kind *. bifunctorshasKindVarChain n kind Checks if kind is of the form k_0 -> k_1 -> ... -> k_(n-1), where k0, k1, ..., and k_(n-1) can be * or kind variables. bifunctorsIf a Type is a SigT, returns its kind signature. Otherwise, return *. bifunctorsGenerate a list of fresh names with a common prefix, and numbered suffixes. bifunctors)Applies a typeclass constraint to a type. bifunctorsChecks 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 Type Then in the type F a b, we would consider a to be an argument to F , but not b. bifunctorsAre all of the items in a list (which have an ordering) distinct?This uses Set (as opposed to nub) for better asymptotic time complexity. bifunctors9Does the given type mention any of the Names in the list? bifunctorsDoes an instance predicate mention any of the Names in the list? bifunctors)Construct a type via curried application. bifunctors7Fully applies a type constructor to its type variables. bifunctorsSplit an applied type into its individual components. For example, this: Either Int Char would split to this: [Either, Int, Char]  bifunctorsSplit 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, ()])  bifunctors)Like uncurryType, except on a kind level. 4(C) 2008-2016 Edward Kmett, (C) 2015-2016 Ryan Scott BSD-style (see the file LICENSE)Edward Kmett  provisionalportableUnsafeB5 bifunctorsDoes not contain variables bifunctorsA bare variable bifunctors A bare variable, contravariantly bifunctors Function type bifunctorsTuple type. The [a] is the result of folding over the arguments of the tuple. bifunctorsType app, variables only in last argument. The [(Type, a)] represents the last argument types. That is, they form the argument parts of fun_ty arg_ty_1 ... arg_ty_n. bifunctors/Type app, variable other than in last arguments bifunctors Forall type bifunctors6A representation of which function is being generated. bifunctors1A representation of which class is being derived. bifunctors4Options that further configure how the functions in Data.Bifunctor.TH should behave. bifunctorsIf , derived instances for empty data types (i.e., ones with no data constructors) will use the  EmptyCase language extension. If $, derived instances will simply use ; instead. (This has no effect on GHCs before 7.8, since  EmptyCase' is only available in 7.8 or later.) bifunctors Conservative  that doesn't attempt to use  EmptyCase (to prevent users from having to enable that extension at use sites.) bifunctors Generates a  instance declaration for the given data type or data family instance. bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like bimap (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors Generates a  instance declaration for the given data type or data family instance. bifunctorsLike , but takes an  argument. bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like  bifoldMap (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like bifoldr (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like bifoldl (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors Generates a  instance declaration for the given data type or data family instance. bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like  bitraverse (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like  bisequenceA (without requiring a  instance). bifunctorsLike makeBitraverseA, but takes an  argument. bifunctors1Generates a lambda expression which behaves like bimapM (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctors1Generates a lambda expression which behaves like  bisequence (without requiring a  instance). bifunctorsLike , but takes an  argument. bifunctorsDerive a class instance declaration (depending on the BiClass argument's value). bifunctorsGenerates a declaration defining the primary function(s) corresponding to a particular class (bimap for Bifunctor, bifoldr and bifoldMap for Bifoldable, and bitraverse for Bitraversable).For why both bifoldr and bifoldMap are derived for Bifoldable, see Trac #7436. bifunctorsGenerates a lambda expression which behaves like the BiFun argument. bifunctorsGenerates a lambda expression for the given constructors. All constructors must be from the same type. bifunctors+Generates a match for a single constructor. bifunctors3Generates a match whose right-hand side implements bimap. bifunctors3Generates a match whose right-hand side implements bifoldr. bifunctors3Generates a match whose right-hand side implements  bifoldMap. bifunctors3Generates a match whose right-hand side implements  bitraverse. bifunctorsAttempt 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.See Note [Type inference in derived instances] for the heuristics used to come up with constraints. bifunctorsEither the given data type doesn't have enough type variables, or one of the type variables to be eta-reduced cannot realize kind *. bifunctorsOne of the last two type variables appeard in a contravariant position when deriving Bifoldable or Bitraversable. bifunctorsA constructor has a function argument in a derived Bifoldable or Bitraversable instance. bifunctorsThe data type has a DatatypeContext which mentions one of the eta-reduced type variables. bifunctorsThe data type has an existential constraint which mentions one of the eta-reduced type variables. bifunctorsThe 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. bifunctorsOne of the last type variables cannot be eta-reduced (see the canEtaReduce function for the criteria it would have to meet). bifunctors'Bifunctor, Bifoldable, or Bitraversable bifunctors(The type constructor or data family name bifunctorsThe datatype context bifunctors*The types to instantiate the instance with bifunctors1Are we dealing with a data family instance or not bifunctorsVariables to look for bifunctors How to fold bifunctorsType to process (C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe 056;D bifunctors Compose a  on the outside of a .(C) 2008-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe06;D bifunctorsMake a  over the second argument of a . Safe-InferredE( !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                            (bifunctors-5.5.13-4cCvoRC2w9AHmmuX7FxPcZData.BiapplicativeData.Bifunctor.BiapData.Bifunctor.BiffData.Bifunctor.ClownData.Bifunctor.FixData.Bifunctor.FunctorData.Bifunctor.FlipData.Bifunctor.JoinData.Bifunctor.JokerData.Bifunctor.ProductData.Bifunctor.SumData.Bifunctor.THData.Bifunctor.TannenData.Bifunctor.WrappedBiffTannen Data.MonoidApData.Bifunctor.TH.InternalPaths_bifunctors Biapplicativebipure<<*>>biliftA2*>><<*<<$>><<**>>biliftA3 traverseBia sequenceBiatraverseBiaWith$fBiapplicativeConst$fBiapplicativeTagged$fBiapplicative(,,,,,,)$fBiapplicative(,,,,,)$fBiapplicative(,,,,)$fBiapplicative(,,,)$fBiapplicative(,,)$fBiapplicativeArg$fBiapplicative(,)$fApplicativeMag $fFunctorMagBiapgetBiap $fNumBiap $fBoundedBiap $fMonoidBiap$fSemigroupBiap$fBitraversableBiap$fEqBiap $fOrdBiap $fShowBiap $fReadBiap $fEnumBiap $fFunctorBiap$fFoldableBiap$fTraversableBiap$fAlternativeBiap$fApplicativeBiap $fGenericBiap$fGeneric1TYPEBiap $fMonadBiap$fMonadFailBiap$fMonadPlusBiap $fEq1Biap $fOrd1Biap$fBifunctorBiap$fBiapplicativeBiap$fBifoldableBiap $fEq2Biap $fOrd2BiaprunBiff$fBitraversableBiff$fTraversableBiff$fBifoldableBiff$fFoldableBiff$fBiapplicativeBiff $fFunctorBiff$fBifunctorBiff $fShow2Biff $fShow1Biff $fRead2Biff $fRead1Biff $fOrd2Biff $fOrd1Biff $fEq2Biff $fEq1Biff$fEqBiff $fOrdBiff $fShowBiff $fReadBiff $fGenericBiff$fGeneric1kBiffClownrunClown$fTraversableClown$fBitraversableClown$fFoldableClown$fBifoldableClown$fBiapplicativeClown$fFunctorClown$fBifunctorClown $fShow2Clown $fShow1Clown $fRead2Clown $fRead1Clown $fOrd2Clown $fOrd1Clown $fEq2Clown $fEq1Clown $fEqClown $fOrdClown $fShowClown $fReadClown$fGenericClown$fGeneric1kClownFixInout$fTraversableFix $fFoldableFix$fApplicativeFix $fFunctorFix $fShow1Fix $fRead1Fix $fOrd1Fix$fEq1Fix $fGenericFix $fReadFix $fShowFix$fOrdFix$fEqFixBifunctorComonad biextractbiextend biduplicateBifunctorMonadbireturnbibindbijoinBifunctorFunctorbifmap:->biliftMbiliftWFliprunFlip$fBifunctorFunctorkkkkFlip$fTraversableFlip$fBitraversableFlip$fFoldableFlip$fBifoldableFlip$fBiapplicativeFlip $fFunctorFlip$fBifunctorFlip $fShow2Flip $fShow1Flip $fRead2Flip $fRead1Flip $fOrd2Flip $fOrd1Flip $fEq2Flip $fEq1Flip$fEqFlip $fOrdFlip $fShowFlip $fReadFlip $fGenericFlipJoinrunJoin$fTraversableJoin$fFoldableJoin$fApplicativeJoin $fFunctorJoin $fShow1Join $fRead1Join $fOrd1Join $fEq1Join $fGenericJoin $fReadJoin $fShowJoin $fOrdJoin$fEqJoinJokerrunJoker$fTraversableJoker$fBitraversableJoker$fFoldableJoker$fBifoldableJoker$fBiapplicativeJoker$fFunctorJoker$fBifunctorJoker $fShow2Joker $fShow1Joker $fRead2Joker $fRead1Joker $fOrd2Joker $fOrd1Joker $fEq2Joker $fEq1Joker $fEqJoker $fOrdJoker $fShowJoker $fReadJoker$fGenericJoker$fGeneric1kJokerProductPair$fArrowPlusProduct$fArrowZeroProduct$fArrowLoopProduct$fArrowChoiceProduct$fArrowProduct$fCategorykProduct$fBifunctorComonadkkProduct$fBifunctorFunctorkkkkProduct$fBitraversableProduct$fBifoldableProduct$fBiapplicativeProduct$fBifunctorProduct$fShow2Product$fShow1Product$fRead2Product$fRead1Product $fOrd2Product $fOrd1Product $fEq2Product $fEq1Product $fEqProduct $fOrdProduct $fShowProduct $fReadProduct$fGenericProduct$fGeneric1kProductSumL2R2$fBifunctorMonadkkSum$fBifunctorFunctorkkkkSum$fBitraversableSum$fBifoldableSum$fBifunctorSum $fShow2Sum $fShow1Sum $fRead2Sum $fRead1Sum $fOrd2Sum $fOrd1Sum$fEq2Sum$fEq1Sum$fEqSum$fOrdSum $fShowSum $fReadSum $fGenericSum$fGeneric1kSumOptionsemptyCaseBehaviordefaultOptionsderiveBifunctorderiveBifunctorOptions makeBimapmakeBimapOptionsderiveBifoldablederiveBifoldableOptions makeBifoldmakeBifoldOptions makeBifoldMapmakeBifoldMapOptions makeBifoldrmakeBifoldrOptions makeBifoldlmakeBifoldlOptionsderiveBitraversablederiveBitraversableOptionsmakeBitraversemakeBitraverseOptionsmakeBisequenceAmakeBisequenceAOptions makeBimapMmakeBimapMOptionsmakeBisequencemakeBisequenceOptions $fEqBiFun $fEqOptions $fOrdOptions $fReadOptions $fShowOptions runTannen$fArrowPlusTannen$fArrowZeroTannen$fArrowLoopTannen$fArrowChoiceTannen $fArrowTannen$fCategorykTannen$fBitraversableTannen$fTraversableTannen$fBifoldableTannen$fFoldableTannen$fBiapplicativeTannen$fFunctorTannen$fBifunctorTannen$fBifunctorComonadkkTannen$fBifunctorMonadkkTannen$fBifunctorFunctorkkkkTannen $fShow2Tannen $fShow1Tannen $fRead2Tannen $fRead1Tannen $fOrd2Tannen $fOrd1Tannen $fEq2Tannen $fEq1Tannen $fEqTannen $fOrdTannen $fShowTannen $fReadTannen$fGenericTannen$fGeneric1kTannenWrappedBifunctor WrapBifunctorunwrapBifunctor$fBitraversableWrappedBifunctor$fTraversableWrappedBifunctor$fBifoldableWrappedBifunctor$fFoldableWrappedBifunctor$fBiapplicativeWrappedBifunctor$fFunctorWrappedBifunctor$fBifunctorWrappedBifunctor$fShow2WrappedBifunctor$fShow1WrappedBifunctor$fRead2WrappedBifunctor$fRead1WrappedBifunctor$fOrd2WrappedBifunctor$fOrd1WrappedBifunctor$fEq2WrappedBifunctor$fEq1WrappedBifunctor$fEqWrappedBifunctor$fOrdWrappedBifunctor$fShowWrappedBifunctor$fReadWrappedBifunctor$fGenericWrappedBifunctor$fGeneric1kWrappedBifunctorbaseData.BifunctorbimapGHC.BaseconstidData.Traversable Traversabletraversefmap BifunctorsecondfirstMonoidGHC.NumNumGHC.EnumBounded ApplicativeFunctorTyVarMapStarKindStatuscanRealizeKindStarstarKindStatusToName GHC.MaybeJusttemplate-haskellLanguage.Haskell.TH.SyntaxNameNothingcatKindVarNames filterByList filterByListsghc-prim GHC.TypesTrueFalsepartitionByList hasKindStarhasKindVarChaintyKind newNameList applyClass canEtaReducevarTToName_maybe varTToNameunSigTisTyVarisInTypeFamilyApp allDistinct mentionsNamepredMentionsNameapplyTy applyTyCon unapplyTy uncurryTy uncurryKind IsKindVarKindStar NotKindStarapplySubstitutionKindsubstNameWithKindsubstNamesWithKindStar bimapConst bifoldrConstbifoldMapConstbitraverseConst isStarOrVarthd3unsnocbifunctorsPackageKeymkBifunctorsName_tcmkBifunctorsName_vbimapConstValNamebifoldrConstValNamebifoldMapConstValName coerceValNamebitraverseConstValNamewrapMonadDataNamefunctorTypeNamefoldableTypeNametraversableTypeNamecomposeValName idValName errorValName flipValName fmapValName foldrValNamefoldMapValName seqValNametraverseValNameunwrapMonadValNamebifunctorTypeName bimapValName pureValName apValName liftA2ValNamemappendValName memptyValNamebifoldableTypeNamebitraversableTypeNamebifoldrValNamebifoldMapValNamebitraverseValNameappEndoValName dualDataName endoDataNamegetDualValNameft_trivft_var ft_co_varft_funft_tup ft_ty_app ft_bad_app ft_forallBiFunBiClassGHC.Primseq Bifoldable Bitraversable deriveBiClass biFunDecs makeBiFunmakeBiFunForConsmakeBiFunForConmakeBimapMatchmakeBifoldrMatchmakeBifoldMapMatchmakeBitraverseMatchderiveConstraintderivingKindErrorcontravarianceErrornoFunctionsErrordatatypeContextErrorexistentialContextErroroutOfPlaceTyVarErroretaReductionErrorbuildTypeInstancefunctorLikeTraverseversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir