h$D=v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottPortable Safe-Inferred .9>?' invariantAn 8 with the same input and output types can be seen as an  functor. invariantA 8 with the same input and output types can be seen as an  functor. 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: invmap 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. invariantA 8 with the same input and output types can be seen as an  functor. invariantAn 8 with the same input and output types can be seen as 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 package0 invariant from the  transformers package1 invariant from the  transformers package2 invariant from the  transformers package3 invariant from the  transformers package4 invariant from the  transformers package5 invariant from the  transformers package6 invariant from the  transformers package7 invariant from the  transformers package8 invariant from the  transformers package9 invariant from the  transformers package: invariant from the  transformers package; invariant from the  transformers package< invariant from the tagged package= invariant from the stm package> invariant from the StateVar package? invariant from the StateVar package@ invariant from the  profunctors packageA invariant from the  profunctors packageB invariant from the  profunctors packageC invariant from the  profunctors packageD invariant from the  profunctors packageE invariant from the  profunctors packageF invariant from the  contravariant packageG invariant from the  contravariant packageH invariant from the  contravariant packageI invariant from the  contravariant packageJ invariant from the  contravariant packageK invariant from the  contravariant packageL invariant from the  contravariant packageM invariant from the  containers packageN invariant from the  containers packageO invariant from the  containers packageP invariant from the  containers packageQ invariant from the  containers packageR invariant from the  containers packageS invariant from the comonad packageT invariant from the  bifunctors packageU invariant from the  bifunctors packageV invariant from the array packageW invariantfrom System.Console.GetOptX invariantfrom System.Console.GetOptY invariantfrom System.Console.GetOptZ invariantfrom Data.Semigroup[ invariantfrom Data.Semigroup\ invariantfrom Data.Semigroup] invariantfrom Data.Semigroup^ invariantfrom Data.Semigroup_ invariantfrom Data.Semigroup` invariantfrom  Data.Proxya invariantfrom  Data.Monoidb invariantfrom  Data.Monoidc invariantfrom  Data.Monoidd invariantfrom  Data.Monoide invariantfrom  Data.Monoidf invariantfrom  Data.Monoidg invariantfrom  Data.Monoidh invariantfrom Data.List.NonEmptyi invariantfrom Data.Functor.Sumj invariantfrom Data.Functor.Productk invariantfrom Data.Functor.Identityl invariantfrom Data.Functor.Composem invariantfrom  Data.Complexn invariantfrom Control.Exceptiono invariantfrom  Control.Arrowp invariantfrom  Control.Arrowq invariantfrom Control.Applicativer invariantfrom Control.Applicatives invariantfrom Control.Applicativet 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  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  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    6(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottTemplate Haskell Safe-Inferred6 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. invariantWhether 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 . invariantConcat 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 kind is of the form k_0 -> k_1 -> ... -> k_(n-1), where k0, k1, ..., and k_(n-1) can be * or kind variables. invariantIf a Type is a SigT, returns its kind signature. Otherwise, return *. invariantGenerate 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 Type Then in the type F a b, we would consider a to be an argument to F , but not b. invariantAre all of the items in a list (which have an ordering) distinct?This uses Set (as opposed to nub) for better asymptotic time complexity. invariant9Does the given type mention any of the Names in the list? invariantDoes 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. invariantSplit an applied type into its individual components. For example, this: Either Int Char would split to this: [Either, Int, Char]  invariantSplit 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.76(C) 2012-2017 Nicolas Frisby, (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan ScottTemplate Haskell Safe-Inferred=  invariant5Options that further configure how the functions in Data.Functor.Invariant.TH should behave. invariantIf , 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.) invariant Conservative  that doesn't attempt to use  EmptyCase (to prevent users from having to enable that extension at use sites.) invariant Generates an  instance declaration for the given data type or data family instance. invariantLike , but takes an  argument. invariant Generates an  instance declaration for the given data type or data family instance. invariantLike , but takes an  argument. invariant2Generates a lambda expression which behaves like  (without requiring an  instance). invariantLike , but takes an  argument. invariant2Generates a lambda expression which behaves like  (without requiring an  instance). invariantLike , but takes an  argument.   Safe-Inferred=a    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$invariant-0.6-Kr17DC1Al9M2R8Pk5hc0EHData.Functor.InvariantData.Functor.Invariant.TH"Data.Functor.Invariant.TH.Internal Invariant Invariant2invmapinvmap2Paths_invariant(bifunctors-5.5.12-L4PDm0SBsOhFd059lLT7m6Data.Bifunctor.WrappedunwrapBifunctor WrapBifunctorWrappedBifunctorInvariantArrowInvariantProfunctorWrappedProfunctorWrapProfunctorunwrapProfunctorWrappedContravariantWrapContravariantunwrapContravariantWrappedFunctor WrapFunctor unwrapFunctor invmapFunctorinvmapContravariantinvmapProfunctor invmapArrowinvmap2Bifunctorinvmap2Profunctor genericInvmap$fInvariantURec$fInvariantURec0$fInvariantURec1$fInvariantURec2$fInvariantURec3$fInvariantURec4$fInvariant:.:$fInvariantRec1$fInvariantPar1 $fInvariantM1 $fInvariantK1$fInvariant:*:$fInvariant:+: $fInvariantU1 $fInvariantV1$fInvariantHashMap$fInvariantListT$fInvariantErrorT$fInvariantReverse$fInvariantConstant$fInvariantWriterT$fInvariantWriterT0$fInvariantStateT$fInvariantStateT0$fInvariantReaderT$fInvariantRWST$fInvariantRWST0$fInvariantMaybeT$fInvariantIdentityT$fInvariantExceptT$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$fInvariantOption$fInvariantArg$fInvariantLast$fInvariantFirst$fInvariantMax$fInvariantMin$fInvariantProxy$fInvariantAlt$fInvariantSum$fInvariantProduct$fInvariantLast0$fInvariantFirst0$fInvariantEndo$fInvariantDual$fInvariantNonEmpty$fInvariantSum0$fInvariantProduct0$fInvariantIdentity$fInvariantCompose0$fInvariantComplex$fInvariantHandler$fInvariantKleisli$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$fInvariant2Coyoneda$fInvariant2Yoneda$fInvariant2TambaraSum$fInvariant2CotambaraSum$fInvariant2CopastroSum$fInvariant2Copastro$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->$fInvariantCoyoneda$fInvariantTambaraSum$fInvariantCopastroSum$fInvariantCopastro$fInvariantPastro$fInvariantFreeTraversing$fInvariantFreeMapping$fInvariantPastroSum$fInvariantTambara$fInvariantRan$fInvariantRift$fInvariantProcompose$fInvariantPrep$fInvariantCoprep$fInvariantCodensity$fInvariantEnvironment$fInvariantClosure$fInvariantStar$fInvariantWrappedBifunctor$fInvariantTannen$fInvariantJoin$fInvariantFlip$fInvariantFix$fInvariantBiff$$fProfunctorComonadWrappedProfunctor"$fProfunctorMonadWrappedProfunctor,$fProfunctorFunctorTYPETYPEWrappedProfunctor$fMappingWrappedProfunctor$fTraversingWrappedProfunctor$fClosedWrappedProfunctor$fCochoiceWrappedProfunctor$fCostrongWrappedProfunctor$fChoiceWrappedProfunctor$fStrongWrappedProfunctor$fArrowLoopWrappedProfunctor$fArrowChoiceWrappedProfunctor$fArrowPlusWrappedProfunctor$fArrowZeroWrappedProfunctor$fArrowWrappedProfunctor$fCategorykWrappedProfunctor$fProfunctorWrappedProfunctor$fInvariantWrappedProfunctor$fInvariant2WrappedProfunctor$fInvariantInvariantProfunctor$fInvariantInvariantArrow$fEqWrappedProfunctor$fOrdWrappedProfunctor$fReadWrappedProfunctor$fShowWrappedProfunctor$fEqWrappedContravariant$fOrdWrappedContravariant$fReadWrappedContravariant$fShowWrappedContravariant$fEqWrappedFunctor$fOrdWrappedFunctor$fReadWrappedFunctor$fShowWrappedFunctorOptionsemptyCaseBehaviordefaultOptionsderiveInvariantderiveInvariantOptionsderiveInvariant2deriveInvariant2Options makeInvmapmakeInvmapOptions makeInvmap2makeInvmap2Options $fEqOptions $fOrdOptions $fReadOptions $fShowOptionsbase Control.ArrowArrow(profunctors-5.6.2-9gnkZaSXrilKezqejxjWWjData.Profunctor.Unsafe ProfunctorData.Functor.Contravariant ContravariantGHC.BaseFunctorData.Bifunctor BifunctorTyVarMapStarKindStatusInvariantClass invmapConstconstcanRealizeKindStarstarKindStatusToName GHC.MaybeJusttemplate-haskellLanguage.Haskell.TH.SyntaxNameNothingcatKindVarNames hasKindStarhasKindVarChaintyKind newNameList applyClass canEtaReducevarTToName_maybe varTToNameunSigTisTyVarisInTypeFamilyApp allDistinct mentionsNamepredMentionsNameapplyTy applyTyCon unapplyTy uncurryTy uncurryKind NotKindStarKindStar IsKindVarapplySubstitutionKindsubstNameWithKindsubstNamesWithKindStarinvmapConstNameinvariantClassName invmapName invmap2Const isStarOrVarfst3thd3lookup2createKindChaininvariantPackageKeymkInvariantName_tcmkInvariantName_vinvariantTypeNameinvariant2TypeName invmapValNameinvmap2ValNameinvmapConstValNameinvmap2ConstValName coerceValName errorValName seqValNameghc-prim GHC.TypesTrueFalseGHC.Primseqversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName