Îõ³h&_n*      !"#$%&'()ÈUtilities for manipulating runtime representations of compile-time listsRichard EisenbergMITrae@richarde.dev experimental Safe-Inferred)1"type-reflectionÛGiven a representation of a list, get a representation of the kind of the list's elements.type-reflection?Turn a representation of a list into a list of representations.ÌUtilities for controlling how to serialize type representations into stringsRichard EisenbergMITrae@richarde.dev experimental Safe-Inferred"J type-reflectionßA rendering of a type where all components have package and module qualifications Data constructors used in types are preceded first with their package qualification, and then their module qualification, and then with a 'È, and infix operator types are printed without parentheses. So we have base.Data.Proxy.'Proxy for the Proxy constructor. Uses 9 to render types; see that function for further details.þNote that module qualifications arise from the module that defines a type, even if this is a hidden or internal module. This fact means that internal-structure changes in your libraries may affect how your types are rendered, including changes in e.g. base.type-reflection­A rendering of a type where all components have module qualifications. Data constructors used in types are preceded first with their module qualification, and then with a 'È, and infix operator types are printed without parentheses. So we have Data.Proxy.'Proxy for the Proxy constructor. Uses : to render types; see that function for further details.jþNote that module qualifications arise from the module that defines a type, even if this is a hidden or internal module. This fact means that internal-structure changes in your libraries may affect how your types are rendered, including changes in e.g. base.type-reflection†A rendering of a type where no components have module or package qualifications. Data constructors used in types are preceded with a 'Â, and infix operator types are printed without parentheses. Uses 9 to render types; see that function for further details.type-reflectionThe  class describes how a *È is rendered into a textual representation, and it is used to render a + by  . The ,Ù superclass is needed to insert connectives like spaces, dots, and parentheses, and the -7 superclass is needed to stitch these pieces together.Only   is needed for instances; if  . is omitted, then the default rendering, via . is used. See that function for more details.The only consistency law for  is this, holding for all tr of type + : Ðcase tr of Con' tc [] -> renderTypeRep tr == renderTyCon tc _ -> TrueIn other words, rendering a + consisting only of a * is the same as rendering the * itself. If the + is not a plain *Ö (with no kind arguments), then there are no applicable laws. Note that the law uses ., even though / is not a superclass of . type-reflectionExtract the contents of an  rendering type-reflection Convert a + into an  representation type-reflectionExtract the contents of a  renderingtype-reflection Convert a + into a  representationtype-reflectionExtract the contents of a  nametype-reflection Convert a + into a  representationtype-reflection Render a + into an instance of =. This follows the following rules for how to render a type:±Function types are rendered infix. If a function takes another function as an argument, the argument function is rendered in parentheses (as required by the right-associative -> operator).ÐAll other type constructors are rendered prefix, including the list constructor []" and the tuple constructors e.g. (,,)&, along with any other type operators.ºAll kind arguments to type constructors are rendered, with @ prefixes. Any non-atomic (that is, not simply a type constructor with no kind arguments) kinds are enclosed in parentheses.1Non-atomic arguments are enclosed in parentheses.:Type synonyms are always expanded. This means that we get [] Char, not String, and we get TYPE ('BoxedRep 'Lifted), not Type.    0      !"#$%&'()*+,-./012034056-78-79:*type-reflection-1.0-8str8fgSJSaLv2FqCCIJfBType.Reflection.ListType.Reflection.NametypeRepListKind typeRepListPackageQualifiedMkPackageQualified Qualified MkQualified Unqualified MkUnqualifiedTypeText renderTyCon renderTypeRepgetUnqualifiedshowUnqualified getQualified showQualifiedgetPackageQualifiedshowPackageQualifieddefaultRenderTypeRep$fTypeTextUnqualified$fTypeTextQualified$fTypeTextPackageQualified$fEqPackageQualified$fOrdPackageQualified$fShowPackageQualified$fHashablePackageQualified$fSemigroupPackageQualified$fMonoidPackageQualified$fIsStringPackageQualified $fEqQualified$fOrdQualified$fShowQualified$fHashableQualified$fSemigroupQualified$fMonoidQualified$fIsStringQualified$fEqUnqualified$fOrdUnqualified$fShowUnqualified$fHashableUnqualified$fSemigroupUnqualified$fMonoidUnqualified$fIsStringUnqualifiedghc-prim GHC.TypesTyConbaseData.Typeable.InternalTypeRep Data.StringIsStringGHC.BaseMonoid GHC.Classes==Eq