!J       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottPortableSafe ,7;<=FTq invariantWrap a  to be used as a member of . invariantAny  * -> * -> *; type parametric in both arguments permits an instance of  Invariant2.,Instances should satisfy the following laws: ~invmap2 id id id id = id invmap2 f2 f2' g2 g2' . invmap2 f1 f1' g1 g1' = invmap2 (f2 . f1) (f1' . f2') (g2 . g1) (g1' . g2') invariantWrap a # functor to be used as a member of .  invariantWrap a  to be used as a member of . invariantAny * -> *9 type parametric in the argument permits an instance of  Invariant.,Instances should satisfy the following laws: Ninvmap id id = id invmap f2 f2' . invmap f1 f1' = invmap (f2 . f1) (f1' . f2') invariantEvery  is also an  functor. invariantEvery  functor is also an  functor. invariantEvery  is also an  functor. invariantEvery  is also an  functor. invariantA generic implementation of . invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics invariantfrom  GHC.Generics  invariantfrom  GHC.Generics! invariantfrom  GHC.Generics" invariantfrom  GHC.Generics# invariantfrom  GHC.Generics$ invariant from the unordered-containers package% invariant from the  transformers package& invariant from the  transformers package' invariant from the  transformers package( invariant from the  transformers package) invariant from the  transformers package* invariant from the  transformers package+ invariant from the  transformers package, invariant from the  transformers package- invariant from the  transformers package. invariant from the  transformers package/ invariant from the  transformers package0 invariant from the  transformers package1 invariant from the  transformers package3 invariant from the  transformers package4 invariant from the  transformers package5 invariant from the  transformers package6 invariant from the tagged package7 invariant from the stm package8 invariant from the StateVar package9 invariant from the StateVar package: invariant from the  profunctors package; invariant from the  profunctors package< invariant from the  profunctors package= invariant from the  profunctors package> invariant from the  profunctors package? invariant from the  profunctors package@ invariant from the  contravariant packageA invariant from the  contravariant packageB invariant from the  contravariant packageC invariant from the  contravariant packageD invariant from the  contravariant packageE invariant from the  contravariant packageF invariant from the  contravariant packageG invariant from the  containers packageH invariant from the  containers packageI invariant from the  containers packageJ invariant from the  containers packageK invariant from the  containers packageL invariant from the  containers packageM invariant from the comonad packageN invariant from the  bifunctors packageO invariant from the  bifunctors packageP invariant from the array packageQ invariantfrom System.Console.GetOptR invariantfrom System.Console.GetOptS invariantfrom System.Console.GetOptT invariantfrom Data.SemigroupU invariantfrom Data.SemigroupV invariantfrom Data.SemigroupW invariantfrom Data.SemigroupX invariantfrom Data.SemigroupY invariantfrom Data.SemigroupZ invariantfrom  Data.Proxy[ invariantfrom  Data.Monoid\ invariantfrom  Data.Monoid] invariantfrom  Data.Monoid^ invariantfrom  Data.Monoid_ invariantfrom  Data.Monoid` invariantfrom  Data.Monoida invariantfrom  Data.Monoidb invariantfrom Data.List.NonEmptyc invariantfrom Data.Functor.Sumd invariantfrom Data.Functor.Producte invariantfrom Data.Functor.Identityf invariantfrom Data.Functor.Composeg invariantfrom  Data.Complexh invariantfrom Control.Exceptioni invariantfrom  Control.Arrowj invariantfrom Control.Applicativek invariantfrom Control.Applicativel invariantfrom Control.Applicativem invariantfrom Control.Applicative invariantfrom  GHC.Generics invariant from the  transformers package invariant from the tagged package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  contravariant package invariant from the comonad package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariantfrom Data.Semigroup invariantfrom  Control.Arrow invariantfrom Control.Applicative invariantfrom Control.Applicative invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  profunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariant from the  bifunctors package invariantfrom  Control.Arrow   6(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottTemplate HaskellSafe invariantA mapping of type variable Names to their map function Names. For example, in a Invariant declaration, a TyVarMap might look like:,(a ~> (covA, contraA), b ~> (covB, contraB))where a and b are the last two type variables of the datatype, and covA and covB are the two map functions for a and b in covariant positions, and contraA and contraB are the two map functions for a and b in contravariant positions. invariantEWhether a type is not of kind *, is of kind *, or is a kind variable. invariantA representation of which  Invariant is being used. invariantA type-restricted version of . This constrains the map functions that are autogenerated by Template Haskell to be the correct type, even if they aren't actually used in an invmap(2) expression. This is useful in makeInvmap(2), since a map function might have its type inferred as a instead of a -> b (which is clearly wrong). invariant8Does a Type have kind * or k (for some kind variable k)? invariantReturns  the kind variable  of a # if it exists. Otherwise, returns . invariantjConcat together all of the StarKindStatuses that are IsKindVar and extract the kind variables' Names out. invariant"Returns True if a Type has kind *. invarianthasKindVarChain 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. invariantEIf a Type is a SigT, returns its kind signature. Otherwise, return *. invariantKGenerate a list of fresh names with a common prefix, and numbered suffixes. invariant)Applies a typeclass constraint to a type.  invariantChecks 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  invariantiExtract Just the Name from a type variable. If the argument Type is not a type variable, return Nothing.  invariantdExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.  invariant6Peel off a kind signature from a Type (if it has one).  invariantIs the given type a variable? invariantPIs the given type a type family constructor (and not a data family constructor)? invariantAAre all of the items in a list (which have an ordering) distinct?HThis uses Set (as opposed to nub) for better asymptotic time complexity. invariant9Does the given type mention any of the Names in the list? invariant@Does an instance predicate mention any of the Names in the list? invariant)Construct a type via curried application. invariant7Fully applies a type constructor to its type variables. invariantHSplit an applied type into its individual components. For example, this: Either Int Char would split to this: [Either, Int, Char]  invariantESplit 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, ()])  invariant)Like uncurryType, except on a kind level.7 !"#$%&'     ()*+,-./01236(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottTemplate HaskellSafeI invariant5Options that further configure how the functions in Data.Functor.Invariant.TH should behave. invariantIf 4`, derived instances for empty data types (i.e., ones with no data constructors) will use the  EmptyCase language extension. If 5$, derived instances will simply use 6; instead. (This has no effect on GHCs before 7.8, since  EmptyCase' is only available in 7.8 or later.) invariant Conservative  that doesn't attempt to use  EmptyCaseG (to prevent users from having to enable that extension at use sites.) invariant Generates an G instance declaration for the given data type or data family instance. invariantLike , but takes an  argument. invariant Generates an G instance declaration for the given data type or data family instance. invariantLike , but takes an  argument. invariant1Generates a lambda expression which behaves like invmap (without requiring an  instance). invariantLike , but takes an  argument. invariant1Generates a lambda expression which behaves like invmap2 (without requiring an  instance). invariantLike , but takes an  argument.7 invariant`Derive an Invariant(2) instance declaration (depending on the InvariantClass argument's value).8 invariantGenerates a declaration defining the primary function corresponding to a particular class (invmap for Invariant and invmap2 for Invariant2).9 invariantfGenerates a lambda expression which behaves like invmap (for Invariant), or invmap2 (for Invariant2).: invariantuGenerates a lambda expression for invmap(2) for the given constructors. All constructors must be from the same type.; invariantEGenerates a lambda expression for invmap(2) for a single constructor.< invariantMGenerates a lambda expression for invmap(2) for an argument of a constructor.= invariantGenerates a lambda expression for invmap(2) for a specific type. The generated expression depends on the number of type variables.> invariantAttempt 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.? invariantEither the given data type doesn't have enough type variables, or one of the type variables to be eta-reduced cannot realize kind *.@ invariantZThe data type has a DatatypeContext which mentions one of the eta-reduced type variables.A invariantbThe data type has an existential constraint which mentions one of the eta-reduced type variables.B invariantThe 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.C invariant}One of the last type variables cannot be eta-reduced (see the canEtaReduce function for the criteria it would have to meet).D invariantInvariant or Invariant2 invariant(The type constructor or data family name invariantThe datatype context invariant*The types to instantiate the instance with invariant1Are we dealing with a data family instance or not SafeEFGHIJKLM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'( )*+,-./0123456789:;<=>?@ABCABDAEFGHIJKLMNOPQRSTUVWXYZ[\]$invariant-0.5-LpyZaGmFjU59H5ecndQdlQData.Functor.InvariantData.Functor.Invariant.TH"Data.Functor.Invariant.TH.InternalPaths_invariant'bifunctors-5.5.3-C6ZpRcwIkW2G7uSQuXu3CKData.Bifunctor.WrappedunwrapBifunctor WrapBifunctorWrappedBifunctorWrappedProfunctorWrapProfunctorunwrapProfunctor Invariant2invmap2WrappedContravariantWrapContravariantunwrapContravariantWrappedFunctor WrapFunctor unwrapFunctor Invariantinvmap invmapFunctorinvmapContravariantinvmap2Bifunctorinvmap2Profunctor genericInvmap$fInvariantURec$fInvariantURec0$fInvariantURec1$fInvariantURec2$fInvariantURec3$fInvariantURec4$fInvariant:.:$fInvariantRec1$fInvariantPar1 $fInvariantM1 $fInvariantK1$fInvariant:*:$fInvariant:+: $fInvariantU1 $fInvariantV1$fInvariantHashMap$fInvariantReverse$fInvariantConstant$fInvariantWriterT$fInvariantWriterT0$fInvariantStateT$fInvariantStateT0$fInvariantReaderT$fInvariantRWST$fInvariantRWST0$fInvariantMaybeT$fInvariantListT$fInvariantIdentityT$fInvariantExceptT$fInvariantErrorT$fInvariantContT$fInvariantLift$fInvariantBackwards$fInvariantTagged$fInvariantSTM$fInvariantSettableStateVar$fInvariantStateVar$fInvariantYoneda$fInvariantCotambaraSum$fInvariantCotambara$fInvariantForget$fInvariantWrappedArrow$fInvariantCostar$fInvariantComposeFC$fInvariantComposeCF$fInvariantCompose $fInvariantOp$fInvariantEquivalence$fInvariantComparison$fInvariantPredicate$fInvariantTree$fInvariantViewR$fInvariantViewL$fInvariantSeq$fInvariantMap$fInvariantIntMap$fInvariantCokleisli$fInvariantJoker$fInvariantClown$fInvariantArray$fInvariantOptDescr$fInvariantArgOrder$fInvariantArgDescr$fInvariantArg$fInvariantOption$fInvariantLast$fInvariantFirst$fInvariantMax$fInvariantMin$fInvariantProxy$fInvariantAlt$fInvariantSum$fInvariantProduct$fInvariantLast0$fInvariantFirst0$fInvariantEndo$fInvariantDual$fInvariantNonEmpty$fInvariantSum0$fInvariantProduct0$fInvariantIdentity$fInvariantCompose0$fInvariantComplex$fInvariantHandler$fInvariantArrowMonad$fInvariantWrappedArrow0$fInvariantWrappedMonad$fInvariantZipList$fInvariantConst$fInvariant(,,,,)$fInvariant(,,,)$fInvariant(,,)$fInvariant(,)$fInvariantEither$fInvariant(->)$fInvariantReadPrec$fInvariantReadP $fInvariantST$fInvariantST0 $fInvariantIO $fInvariant[]$fInvariantMaybe$fTraversableWrappedFunctor$fFoldableWrappedFunctor$fMonadPlusWrappedFunctor$fMonadWrappedFunctor$fAlternativeWrappedFunctor$fApplicativeWrappedFunctor$fFunctorWrappedFunctor$fInvariantWrappedFunctor$fDecidableWrappedContravariant$fDivisibleWrappedContravariant#$fContravariantWrappedContravariant$fInvariantWrappedContravariant$fInvariant2K1$fInvariant2Constant$fInvariant2Tagged$fInvariant2Yoneda$fInvariant2TambaraSum$fInvariant2CotambaraSum$fInvariant2CopastroSum$fInvariant2Cotambara$fInvariant2Pastro$fInvariant2FreeTraversing$fInvariant2CofreeTraversing$fInvariant2FreeMapping$fInvariant2CofreeMapping$fInvariant2PastroSum$fInvariant2Tambara$fInvariant2Ran$fInvariant2Rift$fInvariant2Procompose$fInvariant2Codensity$fInvariant2Environment$fInvariant2Closure$fInvariant2Cayley$fInvariant2Forget$fInvariant2WrappedArrow$fInvariant2Costar$fInvariant2Star$fInvariant2Op$fInvariant2Cokleisli$fInvariant2WrappedBifunctor$fInvariant2Tannen$fInvariant2Sum$fInvariant2Product$fInvariant2Joker$fInvariant2Flip$fInvariant2Clown$fInvariant2Biff$fInvariant2Arg$fInvariant2Kleisli$fInvariant2WrappedArrow0$fInvariant2Const$fInvariant2(,,,,)$fInvariant2(,,,)$fInvariant2(,,)$fInvariant2(,)$fInvariant2Either$fInvariant2(->)$fInvariantTambaraSum$fInvariantTambara$fInvariantRan$fInvariantRift$fInvariantProcompose$fInvariantPrep$fInvariantCoprep$fInvariantCodensity$fInvariantClosure$fInvariantStar$fInvariantWrappedBifunctor$fInvariantTannen$fInvariantJoin$fInvariantFlip$fInvariantFix$fInvariantBiff$fInvariantKleisli$$fProfunctorComonadWrappedProfunctor"$fProfunctorMonadWrappedProfunctor$$fProfunctorFunctorWrappedProfunctor$fMappingWrappedProfunctor$fTraversingWrappedProfunctor$fClosedWrappedProfunctor$fCochoiceWrappedProfunctor$fCostrongWrappedProfunctor$fChoiceWrappedProfunctor$fStrongWrappedProfunctor$fArrowLoopWrappedProfunctor$fArrowChoiceWrappedProfunctor$fArrowPlusWrappedProfunctor$fArrowZeroWrappedProfunctor$fArrowWrappedProfunctor$fCategorykWrappedProfunctor$fProfunctorWrappedProfunctor$fInvariantWrappedProfunctor$fInvariant2WrappedProfunctor$fEqWrappedFunctor$fOrdWrappedFunctor$fReadWrappedFunctor$fShowWrappedFunctor$fEqWrappedContravariant$fOrdWrappedContravariant$fReadWrappedContravariant$fShowWrappedContravariant$fEqWrappedProfunctor$fOrdWrappedProfunctor$fReadWrappedProfunctor$fShowWrappedProfunctorOptionsemptyCaseBehaviordefaultOptionsderiveInvariantderiveInvariantOptionsderiveInvariant2deriveInvariant2Options makeInvmapmakeInvmapOptions makeInvmap2makeInvmap2Options $fEqOptions $fOrdOptions $fReadOptions $fShowOptions&profunctors-5.3-IGSDtyZ1NZbK1d8Jyc1IAIData.Profunctor.Unsafe Profunctor(contravariant-1.5-HWHOmzUIRDZBjbL8Fw1HTIData.Functor.Contravariant ContravariantbaseGHC.BaseFunctorData.Bifunctor BifunctorTyVarMapStarKindStatusInvariantClass invmapConstconstcanRealizeKindStarstarKindStatusToNameJusttemplate-haskellLanguage.Haskell.TH.SyntaxNameNothingcatKindVarNames hasKindStarhasKindVarChaintyKind newNameList applyClass canEtaReducevarTToName_maybe varTToNameunSigTisTyVar isTyFamily allDistinct mentionsNamepredMentionsNameapplyTy applyTyCon unapplyTy uncurryTy uncurryKind NotKindStarKindStar IsKindVarapplySubstitutionKindsubstNameWithKindsubstNamesWithKindStarinvmapConstNameinvariantClassName invmapName invmap2Const isStarOrVarfst3thd3lookup2createKindChaininvariantPackageKeymkInvariantName_tcmkInvariantName_vinvariantTypeNameinvariant2TypeName invmapValNameinvmap2ValNameinvmapConstValNameinvmap2ConstValName coerceValName errorValName seqValNameghc-prim GHC.TypesTrueFalseGHC.PrimseqderiveInvariantClass invmapDecsmakeInvmapClassmakeInvmapForConsmakeInvmapForConmakeInvmapForArgmakeInvmapForTypederiveConstraintderivingKindErrordatatypeContextErrorexistentialContextErroroutOfPlaceTyVarErroretaReductionErrorbuildTypeInstanceversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName