úÎg^Ēl      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkNone[!A quasi-quoter like the built-in  [t| ... |] quasi-quoter, but produces a listN of types instead of a single type. Each type should be separated by a comma.[ts| Bool, (), String |]<[ConT GHC.Types.Bool,ConT GHC.Tuple.(),ConT GHC.Base.String][ts| Maybe Int, Monad m |]U[AppT (ConT GHC.Base.Maybe) (ConT GHC.Types.Int),AppT (ConT GHC.Base.Monad) (VarT m)] lmnopqrst lmnopqrstNone9:;<=I{u vwxyz{|}~€‚ƒ !"#$%&'()*+,-./0123456789:;<=„>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij…†i  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijvu  vwxyz{|}~€‚ƒ !"#$%&'()*+,-./0123456789:;<=„>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij…†None*Lk―A Template Haskell function that generates a fixture record type with a given name that reifies the set of typeclass dictionaries provided, as described in the module documentation for Control.Monad.Fixie.THL. For example, the following splice would create a new record type called Fixture4 with fields and instances for typeclasses called Foo and Bar: $mkFixture "Fixture" [ts| Foo, Bar |]k( supports types in the same format that deriving! clauses do when used with the GeneralizedNewtypeDeriving‹ GHC extension, so deriving multi-parameter typeclasses is possible if they are partially applied. For example, the following is valid: dclass MultiParam a m where doSomething :: a -> m () mkFixture "Fixture" [ts| MultiParam String |]‡ÂEnsures that a provided constraint is something test-fixture can actually derive an instance for. Specifically, it must be a constraint of kind * -> Constraint, and anything else is invalid.ˆ Given some ‰# about a class, get its methods as Š declarations.‹Helper for applying ŒT over multiple methods using the same name replacement for a particular typeclass.Œ0Converts a typeclass s method (represented as a ŠL) to a record field. There are two operations involved in this conversion: Prepend the name with the _> character to avoid name clashes. This is performed by .{Replace the type variable bound by the typeclass constraint. To explain this step, consider the following typeclass: &class HasFoo x where foo :: x -> FooThe signature for the foo class is actually as follows: forall x. HasFoo x => x -> FooDHowever, when converted into a record, we want it to look like this: +data Record x = Record { fFoo :: x -> Foo }$Specifically, we want to remove the forallĪ constraint, and we need to replace the type variable bound by the typeclass constraint with the type variable bound by the record declaration itself.To accomplish this, Œ accepts a Ž and a , where the Ž5 is the name of a replacement type variable, and the : is the typeclass whose constraint must be removed.Prepends a name with a _ or ~Ķ character (depending on whether or not the name refers to an infix operator) to avoid name clashes when generating record fields based on typeclass method names.bImplements the class constraint replacement functionality as described in the documentation for Œö. Given a type that represents the typeclass whose constraint must be removed and a name used to replace the constrained type variable, it replaces the uses of that type variable everywhere in the quantified type and removes the constraint.‘TSubstitutes a type variable with a type within a particular type. This is used by w to swap out the constrained and quantified type variable with the type variable bound within the record declaration.’&Given a record field name, produces a “= that assigns that field to a function defined in terms of  •, which will raise an error upon an attempt to invoke it that will contain a message that explains the method has not been implemented by a user.”1Generates an implementation of a method within a Fixie_ typeclass instance for a generated fixture record. The implementation handles four things: ‰It detects the arity of the method to implement and automatically creates a function declaration that accepts that many arguments.dIt retrieves the actual implementation out of the reader-provided typeclass dictionary using .%It captures the call of the function.yIt applies the reader-provided function to all of the arguments generated by the arity-detection pass from step 1.ģThis function expects a signature declaration that describes the typeclass method to generate an implementation for, and it returns the function definition as a declaration.•'Given a potentially applied type, like T a b0, returns the base, unapplied type name, like T.–Like •, but extracts the Ž instead of .—The inverse of •/, this gets the arguments a type is applied to.˜WGiven a type, returns a list of all of the unique type variables contained within it.™Given any arbitrary š , gets its Ž.›Given any arbitrary , gets its function arity as a œ". Non-function types have arity 0.functionTypeArity [t|()|]0functionTypeArity [t|() -> ()|]1%functionTypeArity [t|() -> () -> ()|]2 Given an ž0 that represents a function value and a list of ž6s that represent function arguments, produces a new ž7 that applies the function to the provided arguments.Ÿk ĄĒ‡ˆ‹Œ‘’”•–—˜™›ĢĪĨŸk ĄĒ‡ˆ‹Œ‘’”•–—˜™›ĢĪĨŸk ĄĒ‡ˆ‹Œ‘’”•–—˜™›ĢĪĨNonef  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkĶ        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx yz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽŒ‘’Œ“Œ”•–—Œ˜™š›œžŒŸ ĄĒĢΌĨͧĻĐŠŦŽ­"fixie-1.0.0-HI6uPOUtGhm36sRFi5C7oB Test.Fixie!Test.Fixie.Internal.TH.TypesQuasiTest.Fixie.InternalTest.Fixie.Internal.TH1data-default-class-0.1.2.0-FYQpjIylblBDctdkHAFeXAData.Default.ClassdeftsFixieMFixieTCall _functionFunctionNote unimplementedtoSet getFixture getFunctionnote captureCalloutputNotesFunctionsToutputNotesFunctionsetToutputFunctionsNotesToutputFunctionsetNotesTvalueNotesFunctionsTvalueNotesFunctionsetTvalueFunctionsNotesTvalueFunctionsetNotesTnotesOutputFunctionsTnotesOutputFunctionsetTnotesValueFunctionsTnotesValueFunctionsetTnotesFunctionsOutputTnotesFunctionsetOutputTnotesFunctionsValueTnotesFunctionsetValueTfunctionsOutputNotesTfunctionsValueNotesTfunctionsNotesOutputTfunctionsNotesValueTfunctionsetOutputNotesTfunctionsetValueNotesTfunctionsetNotesOutputTfunctionsetNotesValueT outputNotesToutputFunctionsToutputFunctionsetT valueNotesTvalueFunctionsTvalueFunctionsetT notesOutputT notesValueTnotesFunctionsTnotesFunctionsetTfunctionsOutputTfunctionsValueTfunctionsNotesTfunctionsetOutputTfunctionsetValueTfunctionsetNotesToutputTvalueTnotesT functionsT functionsetToutputNotesFunctionsMoutputNotesFunctionsetMoutputFunctionsNotesMoutputFunctionsetNotesMvalueNotesFunctionsMvalueNotesFunctionsetMvalueFunctionsNotesMvalueFunctionsetNotesMnotesOutputFunctionsMnotesOutputFunctionsetMnotesValueFunctionsMnotesValueFunctionsetMnotesFunctionsOutputMnotesFunctionsetOutputMnotesFunctionsValueMnotesFunctionsetValueMfunctionsOutputNotesMfunctionsValueNotesMfunctionsNotesOutputMfunctionsNotesValueMfunctionsetOutputNotesMfunctionsetValueNotesMfunctionsetNotesOutputMfunctionsetNotesValueM outputNotesMoutputFunctionsMoutputFunctionsetM valueNotesMvalueFunctionsMvalueFunctionsetM notesOutputM notesValueMnotesFunctionsMnotesFunctionsetMfunctionsOutputMfunctionsValueMfunctionsNotesMfunctionsetOutputMfunctionsetValueMfunctionsetNotesMoutputMvalueMnotesM functionsM functionsetM mkFixtureparseTypesSplitOnCommaslexSplitOnCommassplitOnSrcSpans advanceLine advanceColumnlexSplittingCommassplittingCommasresolveTypeNamesresolveTypeNamenoVoidpluck swap_0_2_1 swap_1_0_2 swap_1_2_0 swap_2_0_1 swap_2_1_0map_0map_1map_2outputNotesCallsvalueNotesCallsoutputNotesFunctionsvalueNotesFunctionsfixieM$fMonadTransFixieT$fMonadErroreFixieTassertDerivableConstraint classMethodstemplate-haskellLanguage.Haskell.TH.SyntaxInfoSigDmethodsToFields methodToFieldmethodNameToFieldNameNameTypereplaceClassConstraintsubstituteTypeVarunimplementedFieldFieldExpmkDictInstanceFunc unappliedTypeunappliedTypeNametypeArgs typeVarNames tyVarBndrName TyVarBndrfunctionTypeArityghc-prim GHC.TypesIntapplyEExp MonadFailmkFixtureRecordmkDefaultInstance mkInstance mkInstanceDmkDataD noStrictness