&      !"#$%&'()*+,-./0123456789 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q rstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!!!""""""""""""""""""""""""""""""######################################################################### # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~###########################################################$$%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O(P(Q)R)S)T)U)V)W)X)Y)Z)[)\)]*^*_*`*a*b*c*d+e,f-g-h-i.j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/{/|/}/~////////////0111111222334444444444444444444444444444444444444444444444444444444444444444444444444455677777777777777777777777777777777777777 7 7 7 7 7777777777778888999 9!9"9#9$9%9&9'9(:):*:+:,:-:.:/:0:1:2:3:4:5:6:7:8:9:::;:<:=:>:?:@:A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V;W;X;Y;Z<[=\=]=^=_>`>a?b?c?d@eAfAgBhCiCjDkDlDmDnDoDpDqDrEsFtGuHvHwHxIyJzJ{J|J}J~JKKKKKKKKKLLLMNNNNNNNOPQRSTTUVVWXXYZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,_-_._/_0_1_2_3_4_5_6`7`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```a`b`c`d`e`f`g`h`i`j`k`l`m`n`o`p`q`r`s`t`u`v`w`x`y`z`{`|`}`~``````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaabbbccddeffffffffgggggggggggggggggggggg g g g g ggggggggggggggggggg g!g"g#g$h%h&h'h(h)h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;h<h=h>h?h@hAhBhChDiEiFiGiHiIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkllmmmmmmmmmmmnnnooooooopppppqqrrrrrssssssssssttttttttttttuuuuuu v v v v vvvvvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-v.v/v0v1v2w3w4w5w6w7w8w9w:w;w<w=w>w?w@xAyBzC{D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t}u}v}w}x}y}z}{}|}}}~~~~~~~~~~~~~Safe!"$*,2:<=CDLMOT[b0Locates the node executable. Checks for either nodejs or node./Grabs the filename where the history is stored.Expands tilde in path.Safe!"$*,2:<=CDLMOT[b        None!"$*,2:<=CDLMOT[bGGlob relative to the current directory, and produce relative pathnames.)Glob pattern for PureScript source files.-Glob pattern for PureScript dependency files.Safe!"$*,2:<=CDLMOT[bSafe!"$*,2:<=CDLMOT[bState for the parser monad*The most recently marked indentation levelSafe!"$*,2:<=CDLMOT[bSafe!"$*,2:<=CDLMOT[b ! ! ! !None!"$*,2:<=CDLMOT[b$ Source name%Start of the span'Source position information) Line number* Column number"#$%&'()*+,-./012 "#&%$'()*+,-.'()*+21"#$%&,-0/. "#$%&'()*+,-./012 Safe!"$*,2:<=CDLMOT[b9UData type for literal values. Parameterised so it can be used for Exprs and Binders.:A numeric literal;A string literal<A character literal=A boolean literal>An array literal?An object literal9:;<=>?9:;<=>?9:;<=>?9:;<=>? Safe!"$*,2:<=CDLMOT[b D!The data type of compiler optionsFDisable tail-call eliminationG>Disable inlining of calls to return and bind for the Eff monadH#When specified, checks the type of mainN in the module, and generate a call to run main after the module definitions.ISkip all optimizationsJVerbose error messageK)Remove the comments from the generated jsLGenerate soure mapsM Dump CoreFnNDefault make options DEFGHIJKLMN DEFGHIJKLMN DEFGHIJKLMND EFGHIJKLMN None!"$*,2:<=CDLMOT[bPThe data type of kindsQ!Unification variable of type KindRThe kind of typesSThe kind of effectsT5Kinds for labelled, unordered rows without duplicatesUFunction kindsVType-level strings PQRSTUVZ[\] PVTRSQUZ[\ PQRSTUV]]Z[\PQRSTUVZ[\] Safe!"$*,2:<=CDLMOT[b_3Exit with an error message and a crash report link.____ None!"$*,2:<=CDLMOT[b`Fixity data for infix operatorsb!Associativity for infix operatorsf(A precedence level for an infix operator `abcdefghijk `abecdfgh fbcdeghkj`ai`abcdefghijkNone!"$*,2:<=CDLMOT[brstxrstrstxxrstxNone!"$*,2:<=CDLMOT[b}Start position of this token~5End position of this token (not including whitespace)"End position of the previous tokenCWe use Text.Parsec.Token to implement the string and number lexemes/A token parser based on the language definition1Parse zero or more values separated by semicolons0Parse one or more values separated by semicolons-Parse zero or more values separated by commas,Parse one or more values separated by commas)A list of purescript reserved identifiers+The characters allowed for use in operators<The characters allowed in the head of an unquoted record key<The characters allowed in the tail of an unquoted record key3Strings allowed to be left unquoted in a record keyiz{|}~>z{|}~>{|}~zFz{|}~None!"$*,2:<=CDILMOT[bNone!"$*,2:<=CDLMOT[bNone!"$*,2:<=CDLMOT[b:A qualified name, i.e. a name with an optional module name Module names$The closed set of proper name types.TProper names, i.e. capitalized names for e.g. module names, type//data constructors.'The closed set of operator alias types.Operator alias names.Names for value identifiersAn alphanumeric identifier"A generated name for an identifierEA sum of the possible name types, useful for error and lint messages.Coerces a ProperName from one ProperNameType to another. This should be used with care, and is primarily used to convert ClassNames into TypeNames after classes have been desugared.7Provide a default module name, if a name is unqualified4Makes a qualified value from a name and module name.,Remove the module name from a qualified nameZRemove the qualification from a value when it is qualified with a particular module name.NChecks whether a qualified value is actually qualified with a module referenceRChecks whether a qualified value is not actually qualified with a module referenceFChecks whether a qualified value is qualified with a particular module<  !5?  !!'  !None!"$*,2:<=CDILMOT[b%#A typeclass constraint%constraint class name&type arguments'+additional data relevant to this constraint(2Additional data relevant to type class constraints)Data to accompany a Partial constraint generated by the exhaustivity checker. It contains (rendered) binder information for those binders which were not matched, and a flag indicating whether the list was truncated or not. Note: we use  here because using Binder: would introduce a cyclic dependency in the module graph.*The type of types+#A unification variable of type Type,A named type variable-A type-level string.:A type wildcard, as would appear in a partial type synonym/A type constructor0lA type operator. This will be desugared into a type constructor during the "operators" phase of desugaring.1A type application2Forall quantifier3+A type with a set of type class constraints4A skolem constant5 An empty row6A non-empty row7A type with a kind annotation8%A placeholder used in pretty printing9%A placeholder used in pretty printing:%A placeholder used in pretty printing;qBinary operator application. During the rebracketing phase of desugaring, this data constructor will be removed.<jExplicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed.zNote: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching.=0An identifier for the scope of a skolem variableT4Convert a row to a list of pairs of labels and typesU+Convert a list of labels and types to a rowV"Check whether a type is a monotypeWUniversally quantify a typeX?Replace a type variable, taking into account variable shadowingY'Replace named type variables with typesZ.Collect all type variables appearing in a type[3Collect all free type variables appearing in a type\EUniversally quantify over all type variables appearing free in a type]5Move all universal quantifiers to the front of a type^"Check if a type contains wildcards3#$%&'()*+,-./0123456789:;<=>?@APRTUVWXYZ[\]^_`abcde0#$%&'()*+,-./0123456789:;<=>?@ATUVWXYZ[\]^_`abcd6=>?*+,-./0123456789:;<()#$%&'@APPRReeTUVWXYZ[\]^_`abcd#$%&'()*+,-./0123456789:;<=>?@APRTUVWXYZ[\]^_`abcdeNone!"$*,2:<=CDLMOT[b gData type for bindershWildcard binderi A binder which matches a literalj"A binder which binds an identifierk)A binder which matches a data constructorlmA operator alias binder. During the rebracketing phase of desugaring, this data constructor will be removed.mqBinary operator application. During the rebracketing phase of desugaring, this data constructor will be removed.njExplicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed.zNote: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching.o/A binder which binds its input to an identifierp)A binder with source position informationqA binder with a type annotationr8Collect all names introduced in binders in an expression ghijklmnopqr ghijklmnopqr ghijklmnopqrg hijklmnopqrNone!"$*,2:<=CDLMOT[bu;Data representing a type class dictionary which is in scopewCThe identifier with which the dictionary can be accessed at runtimex8How to obtain this instance via superclass relationshipsyDThe name of the type class to which this type class instance appliesz3The types to which this type class instance applies{LType class dependencies which must be satisfied to construct this dictionaryuvwxyz{uvwxyz{uvwxyz{uvwxyz{None!"$*,2:<=CDLMOT[b~4Convert an Ident into a valid Javascript identifier:,Alphanumeric characters are kept unmodified.2Reserved javascript identifiers are prefixed with $$.Symbols are prefixed with 2 followed by a symbol name or their ordinal value.;Test if a string is a valid JS identifier without escaping.kAttempts to find a human-readable name for a symbol, if none has been specified returns the ordinal value.<Checks whether an identifier name is reserved in Javascript.=Checks whether a name matches a built-in value in Javascript. }~ }~ }~ }~None!"$*,2:<=CDLMOT[b||||None!"$*,2:<=CDLMOT[b2 The type ('data' or  'newtype') of a data type declarationA standard data constructorA newtype constructor The kinds of a type  Data type  Type synonym  Foreign data A local type variableA scoped type variableA flag for whether a name is for an private or public value - only public values will be included in a generated externs file.mA private value introduced as an artifact of code generation (class instances, class member accessors, etc.)@A public value for a module member or foreing import declaration.A name for member introduced by foreign import!The visibility of a name in scopeDThe name is defined in the current binding group, but is not visible_The name is defined in the another binding group, or has been made visible by a function binderlA functional dependency indicates a relationship between two sets of type arguments in a class declaration.@the type arguments which determine the determined type argumentsthe determined type argumentsInformation about a type classVA list of type argument names, and their kinds, where kind annotations were provided.oA list of type class members and their types. Type arguments listed above are considered bound in these types.A list of superclasses of this type class. Type arguments listed above are considered bound in the types appearing in these constraints.GA list of functional dependencies for the type arguments of this class. The  Environment; defines all values and types which are currently in scope:"Values currently in scope#Type names currently in scope$yData constructors currently in scope, along with their associated type constructor name, argument types and return type.% Type synonyms currently in scope&!Available type class dictionaries' Type classes(TThe initial environment with no values and only the default javascript types defined*)Construct a ProperName in the Prim module+#Construct a type in the Prim module,Type constructor for functions-Type constructor for strings.Type constructor for strings/Type constructor for numbers0Type constructor for integers1Type constructor for booleans2Type constructor for arrays3Type constructor for records4 Check whether a type is a record5"Check whether a type is a function7$Smart constructor for function types8pThe primitive types in the external javascript environment with their associated kinds. There is also a pseudo Partial8 type that corresponds to the class with the same name.9/The primitive class map. This just contains to PartialB class, used as a kind of magic constraint for partial functions.:GFinds information about data constructors from the current environment.;3Checks whether a data constructor is for a newtype.<<Finds information about values from the current environment.;      !"#$%&'()*+,-./0123456789:;<=>KM7      !"#$%&'()*+,-./0123456789:;<= !"#$%&'(     )>=*+,-./0123456789:;<KKMM       !"#$%&'()*+,-./0123456789:;<=>KMNone!"$*,2:<=CDLMOT[bOData type for bindersPWildcard binderQ&A binder which matches a literal valueR"A binder which binds an identifierS)A binder which matches a data constructorT/A binder which binds its input to an identifierOPQRSTUOPQRSTUOPQRSTUOPQRSTUNone!"$*,2:<=CDLMOT[bX"An alternative in a case statementZ6A collection of binders with which to match the inputs[9The result expression or a collect of guarded expressions\SA guard is just a boolean-valued expression that appears alongside a set of binders]A let or module binding.^(Non-recursive binding for a single value_3Mutually recursive binding group for several values`#Data type for expressions and termsaA literal valueb=A data constructor (type name, constructor name, field names)cA record property accessordPartial record updateeFunction introductionfFunction applicationgVariablehA case expressioni A let bindingj"Extract the annotation from a termkModify the annotation on a termXYZ[\]^_`abcdefghijklXYZ[\]^_`agbcdefhijk`abcdefghi]^_\XYZ[ljkXYZ[\]^_` abcdefghijklNone!"$*,2:<=CDLMOT[brsrsrsrsNone!"$*,2:<=CDLMOT[btData constructor metadatau6The constructor is for a type with a single construcorv7The constructor is for a type with multiple construcorswMetadata annotationsx)The contained value is a data constructory The contained value is a newtypez9The contained value is a typeclass dictionary constructor{/The contained reference is for a foreign membertuvwxyz{tuvwxyz{wxyz{tuvtuvwxyz{None!"$*,2:<=CDLMOT[b Type alias for basic annotations#Initial annotation with no metadata&Remove the comments from an annotationNone!"$*,2:<=CDLMOT[b The CoreFn module representation   None!"$*,2:<=CDLMOT[bParse a general proper name.Parse a proper name for a type.Parse a module name0Parse a qualified name, i.e. M.name or just nameParse an identifier.Parse an operator.nRun the first parser, then match the second if possible, applying the specified function on a successful matchnRun the first parser, then match the second zero or more times, applying the specified function for each matchPBuild a parser from a smaller parser and a list of parsers for postfix operators"Mark the current indentation level;Check that the current identation level matches a predicateACheck that the current indentation level is past the current markWCheck that the current indentation level is at the same indentation as the current mark?Read the comments from the the next token, without consuming it Run a parserConvert from Parsec sourcepos None!"$*,2:<=CDLMOT[b Parse a kind!None!"$*,2:<=CDLMOT[b5Parse a type as it appears in e.g. a data constructorParse a monotypeParse a polytype&Parse an atomic type with no wildcardsSafe!"$*,2:<=CDLMOT[b  "None!"$*,2:<=CDLMOT[b>A module is just a list of elements of the types listed above.<There are four types of module element we are interested in:R1) Require statements 2) Member declarations 3) Export lists 4) Everything else|Each is labelled with the original AST node which generated it, so that we can dump it back into the output during codegen.An export is either a "regular export", which exports a name from the regular module we are in, or a reexport of a declaration in the corresponding foreign module.WRegular exports are labelled, since they might re-export an operator with another name.yA piece of code is identified by its module and its name. These keys are used to label vertices in the dependency graph.7A module is identified by its module name and its type.VModules are either "regular modules" (i.e. those generated by psc) or foreign modules.The type of error messages. We separate generation and rendering of errors using a data type, in case we need to match on error types later.XGiven a filename, assuming it is in the correct place on disk, infer a ModuleIdentifier.3Prepare an error message for consumption by humans.FCalculate the ModuleIdentifier which a require(...) statement imports.OCompute the dependencies of all elements in a module, and add them to the tree.YMembers and exports can have dependencies. A dependency is of one of the following forms: 1) module.name or member["name"]where module was imported usingvar module = require( Module.Name);2) nameAwhere name is the name of a member defined in the current module.1Attempt to create a Module from a Javascript AST.xEach type of module element is matched using pattern guards, and everything else is bundled into the Other constructor.=Eliminate unused code based on the specified entry point set.zTopologically sort the module dependency graph, so that when we generate code, modules can be defined in the right order.A module is empty if it contains no exported members (in other words, if the only things left after dead code elimination are module imports and "other" foreign code).<If a module is empty, we don't want to generate code for it.?Generate code for a set of modules, including a call to main().8Modules get defined on the global PS object, as follows:>var PS = { }; (function(exports) { ... })(PS[ Module.Name] = PS[ Module.Name ] || {});LIn particular, a module and its foreign imports share the same namespace inside PS. This saves us from having to generate unique names for a module and its foreign imports, and is safe since a module shares a namespace with its foreign imports in PureScript as well (so there is no way to have overlaps in code generated by psc).The bundling function. This function performs dead code elimination, filters empty modules and generates and prints the final Javascript bundle.- main module namespace input modulesCThe input modules. Each module should be javascript rendered from \ or psc.WEntry points. These module identifiers are used as the roots for dead-code eliminationAn optional main module.The namespace (e.g. PS).#None!"$*,2:<=CDLMOT[bT"A statement in a do-notation block A monadic value without a binderA monadic value with a binder0A let statement, i.e. a pure value with a binder6A do notation element with source position information"An alternative in a case statement6A collection of binders with which to match the inputs9The result expression or a collect of guarded expressions#Data type for expressions and termsA literal valueA prefix -, will be desugaredqBinary operator application. During the rebracketing phase of desugaring, this data constructor will be removed.jExplicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed.zNote: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching.-An record property accessor expression (e.g. `obj.x` or `_.x`z). Anonymous arguments will be removed during desugaring and expanded into a lambda that reads a property from a record.Partial record updateFunction introductionFunction applicationVariable`An operator. This will be desugared into a function during the "operators" phase of desugaring.%Conditional (if-then-else expression)A data constructorA case expression. During the case expansion phase of desugaring, top-level binders will get desugared into case expressions, hence the need for guards and multiple binders per branch here.A value with a type annotation A let bindingA do-notation block\An application of a typeclass dictionary constructor. The value should be an ObjectLiteral.A placeholder for a type class dictionary to be inserted later. At the end of type checking, these placeholders will be replaced with actual expressions representing type classes dictionaries which can be evaluated at runtime. The constructor arguments represent (in order): whether or not to look at superclass implementations when searching for a dictionary, the type class name and instance type, and the type class dictionaries in scope.`A typeclass dictionary accessor, the implementation is left unspecified until CoreFn desugaring.eA placeholder for a superclass dictionary to be turned into a TypeClassDictionary during typechecking0A placeholder for an anonymous function argumentEA typed hole that will be turned into a hint/error duing typechecking(A value with source position informationSA guard is just a boolean-valued expression that appears alongside a set of binders0The members of a type class instance declarationThis is a derived instance*This is an instance derived from a newtypenThis is an instance derived from a newtype, desugared to include a dictionary for the type under the newtype.%This is a regular (explicit) instanceThe data type of declarationsMA data type declaration (data or newtype, name, arguments, data constructors):A minimal mutually recursive set of data type declarations2A type synonym declaration (name, arguments, type))A type declaration for a value (name, ty)DA value declaration (name, top-level binders, optional guard, value)6A minimal mutually recursive set of value declarations)A foreign import declaration (name, type)'A data type foreign import (name, kind)A fixity declaration'A module import (module name, qualified unqualified%hiding, optional "qualified as" name)GA type class declaration (name, argument, implies, member declarations)bA type instance declaration (name, dependencies, class name, instance types, member declarations).A declaration with source position information8The data type which specifies type of import declaration,An import with no explicit list: `import M`.IAn import with an explicit list of references to import: `import M (foo)`DAn import with a list of references to hide: `import M hiding (foo)`0An item in a list of explicit imports or exports)A type constructor with data constructorsA type operatorA valueA value-level operator A type class]A type class instance, created during typeclass desugaring (name, class name, instance types)A module, in its entiretygA value re-exported from another module. These will be inserted during elaboration in name desugaring.8A declaration reference with source position informationA module declaration, consisting of comments about the module, a module name, a list of declarations, and a list of the declarations that are explicitly exported. If the export list is Nothing, everything is exported. Categories of hintsGError message hints, providing more detailed information about failure.(A type of error messages&A map of locally-bound names in scope.Return a module's name.Return a module's source span.SAdd an import declaration for a module if it does not already explicitly import it. A traversal for TypeInstanceBody,Test if a declaration is a value declaration@Test if a declaration is a data type or type synonym declaration(Test if a declaration is a module import3Test if a declaration is a data type foreign import-Test if a declaration is a fixity declaration)Test if a declaration is a foreign import:Test if a declaration is a type class instance declaration1Test if a declaration is a type class declarationCRecursively flatten data binding groups in the list of declarations      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'     ,        !"#$%&'(])*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$None!"$*,2:<=CDLMOT[bReturn a list of all declarations which are exported from a module. This function descends into data declarations to filter out unexported data constructors, and also filters out type instance declarations if they refer to classes or types which are not themselves exported.]Note that this function assumes that the module has already had its imports desugared using X. It will produce incorrect results if this is not the case - for example, type class instances will be incorrectly removed in some cases.Filter out all data constructors from a declaration which are not exported. If the supplied declaration is not a data declaration, this function returns it unchanged.Filter out all the type instances from a list of declarations which reference a type or type class which is both local and not exported.Note that this function assumes that the module has already had its imports desugared using "Language.PureScript.Sugar.Names.desugarImports". It will produce incorrect results if this is not the case - for example, type class instances will be incorrectly removed in some cases.LGet all type and type class names referenced by a type instance declaration.Test if a declaration is exported, given a module's export list. Note that this function does not account for type instance declarations of non-exported types, or non-exported data constructors. Therefore, you should prefer " to this function, where possible._Test if a data constructor for a given type is exported, given a module's export list. Prefer " to this function, where possible.%None!"$*,2:<=CDLMOT[bNone!"$*,2:<=CDLMOT[b"#&%$'()*+,-.9:;<=>?`abecdfghghijklmnopqr      !"#$%&'(R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&None!"$*,2:<=CDLMOT[b8A type or value declaration appearing in an externs fileA type declarationA type synonymA data construtorA value declarationA type class declarationAn instance declaration,A type fixity declaration in an externs file!The associativity of the operator$The precedence level of the operatorThe operator symbol&The value the operator is an alias for'A fixity declaration in an externs file!The associativity of the operator$The precedence level of the operatorThe operator symbol&The value the operator is an alias for"A module import in an externs fileThe imported module-The import type: regular, qualified or hiding+The imported-as name, for qualified imports4The data which will be serialized to an externs fileThe externs version Module nameList of module exportsList of module imports$List of operators and their fixities)List of type operators and their fixities"List of type and value declaration*Convert an externs file back into a module9Generate an externs file for all declarations in a module> 99  'None!"$*,2:<=CDLMOT[b8 /Data type for simplified Javascript expressions A numeric literal A string literalA boolean literalA unary operator applicationA binary operator applicationAn array literalAn array indexer expressionAn object literal&An object property accessor expression8A function introduction (optional name, arguments, body)Function applicationVariableConditional expression A block of expressions in braces3A variable introduction and optional initializationA variable assignment While loopFor loop ForIn loopIf-then-else statement Return statement!Throw statement"Type-Of operator#InstanceOf test$Labelled statement%Break statement&Continue statement'VRaw Javascript (generated when parsing fails for an inline foreign import declaration)(Commented Javascript)Built-in binary operators*Numeric addition+Numeric subtraction,Numeric multiplication-Numeric division. Remainder/Generic equality test0Generic inequality test1Numeric less-than2Numeric less-than-or-equal3Numeric greater-than4Numeric greater-than-or-equal5 Boolean and6 Boolean or7 Bitwise and8 Bitwise or9 Bitwise xor:Bitwise left shift;Bitwise right shift<"Bitwise right shift with zero-fill=Built-in unary operators>Numeric negation?Boolean negation@Bitwise negationANumeric unary 'plus'B Constructor>    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH>  %& ! "#$'()56*+,-./01234789:;<=?>@ABCDEFGH>=>?@AB)*+,-./0123456789:;<    !"#$%&'(CDEFGH     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH(None!"$*,2:<=CDLMOT[bO@Collapse blocks which appear nested directly below another blockOPOPOPOP)None!"$*,2:<=CDLMOT[b QRSTUVWXYZ[\ QRSTUVWXYZ[\ QRSTUVWXYZ[\ QRSTUVWXYZ[\*None!"$*,2:<=CDLMOT[b-]^_`a bc                           ! " # $]^_`abc`abc]^_-]^_`a bc                           ! " # $+None!"$*,2:<=CDLMOT[b %CInline type class dictionaries for >>= and return for the Eff monadE.g.;Prelude[">>="](dict)(m1)(function(x) { return ...; })becomes-function __do { var x = m1(); ... } &!Inline functions in the ST moduled % &ddd % &,None!"$*,2:<=CDLMOT[beEliminate tail callse 'eee '-None!"$*,2:<=CDLMOT[bfghfghfghfgh.None!"$*,2:<=CDLMOT[bi@Apply a series of optimizer passes to simplified Javascript codei ( )iii ( )/None!"$*,2:<=CDILMOT[b o)String with length and source-map entriesvWrap a string in parenthesesx+Generalize intercalate slightly for monoids~)Number of characters per identation level)Pretty print with a new indentation level!Get the current indentation levelPrint many lines.Prints an object key, escaping reserved names.RPlace a box before another, vertically when the first box takes up multiple lines.*Place a Box on the bottom right of anotherMake a monoid where append consists of concatenating the string part, adding the lengths appropriately and advancing source mappings on the right hand side to account for the length of the left.jklmnopqrstuvwxyz{|}~jklmnopqrstuvwxyz{|}~vwxstuqropmnyz{|jkl}~jklmnopqrstuvwxyz{|}~0None!"$*,2:<=CDLMOT[b4Generate a pretty-printed string representing a Kind * + , * + ,1None!"$*,2:<=CDLMOT[b3Generate a pretty-printed string representing a Row\Generate a pretty-printed string representing a Type, as it should appear inside parentheses4Generate a pretty-printed string representing a Type - . / 0 1 2 3 4 5 6 7 8 - . / 0 1 2 3 4 5 6 7 82None!"$*,2:<=CDLMOT[b 95Render an aligned list of items separated with commasPretty-print an expression :CPretty-print an atomic expression, adding parentheses if necessary.6Generate a pretty-printed string representing a Binder 9 ; < : = > ? @ A 9 ; < : = > ? @ A3None!"$*,2:<=CDLMOT[b BEGenerate a pretty-printed string representing a Javascript expressionrGenerate a pretty-printed string representing a collection of Javascript expressions at the same indentation level CPGenerate an indented, pretty-printed string representing a Javascript expression D E F G H I J K L M N O P Q B C D E F G H I J K L M N O P Q B CNone!"$*,2:<=CDLMOT[b 4None!"#$*,2:<=CDILMOT[b$ Options$Color code with this color... or not"Should write a full error message?)Should this report an error or a warning?0Should show a link to error message's wiki page?How critical the issue isLA map from rigid type variable name/unknown variable pairs to new variables.Ga map from skolems to their new names, including source and naming info3a map from unification variables to their new namesunknowns and skolems share a source of names during renaming, to avoid overlaps in error messages. This is the next label for either case.A stack trace for an error Get the source span for an error Get the module name for an error3Remove the module name and span hints from an error.Get the error code for a particular error type5Check whether a collection of errors is empty or not.6Create an error set from a single simple error message/Create an error set from a single error message?Lift a function on ErrorMessage to a function on MultipleErrorsAdd a hint to an error messageAdd hints to an error message1Extract nested error messages from wrapper errors)Default color intesity and color for codeDefault options for PPEOptions5Pretty print a single error, simplifying if necessaryPretty print multiple errorsPretty print multiple warningsPretty print warnings as a BoxPretty print errors as a Box)Pretty print a Parsec ParseError as a Box(Pretty print ParseError detail messages. Adapted from , see  Hhttps://github.com/aslatter/parsec/blob/v3.1.9/Text/Parsec/Error.hs#L173./Indent to the right, and pad on top and bottom.JRethrow an error with a more detailed error message in the case of failure1Rethrow an error with source position informationuRuns a computation listening for warnings and then escalating any warnings that match the predicate to error status.Collect errors in in parallelFY"#&%$'()*+,-.9:;<=>?`abecdfghghijklmnopqr      !"#$%&'(R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~F85None!"$*,2:<=CDLMOT[b4A list of modules with their transitive dependencies:Sort a collection of modules based on module dependencies.6Reports an error if the module graph contains a cycle. RQCalculate a list of used modules based on explicit imports and qualified names. ams is a list of  ModuleNames; that refer to names brought into scope by importing with as - this ensures that when building the list we don't inadvertantly assume a dependency on an actual module, if there is a module that has the same name as the qualified import. SFConvert a strongly connected component of the module graph to a module R S R S6None!"$*,2:<=CDLMOT[b;Warns about duplicate values in a list of declaration refs.7None!"$*,2:<=CDLMOT[b$When updating the  the behaviour is slightly different depending on whether we are exporting values defined within the module or elaborating re-exported values. This type is used to indicate which behaviour should be used.9The imports and exports for a collection of modules. The " is used to store the source location of the module with a given name, used to provide useful information when there is a duplicate module definition.(The exported declarations from a module.CThe exported types along with the module they originally came from.MThe exported type operators along with the module they originally came from.EThe exported classes along with the module they originally came from.DThe exported values along with the module they originally came from.NThe exported value operators along with the module they originally came from.KThe imported declarations for a module, including the module's own members.HLocal names for types within a module mapped to to their qualified namesQLocal names for type operators within a module mapped to to their qualified namesTLocal names for data constructors within a module mapped to to their qualified namesJLocal names for classes within a module mapped to to their qualified namesILocal names for values within a module mapped to to their qualified namesRLocal names for value operators within a module mapped to to their qualified nameszThe name of modules that have been imported into the current scope that can be re-exported. If a module is imported with as qualification, the as0 name appears here, otherwise the original name.<The "as" names of modules that have been imported qualified.Used to track how an import was introduced into scope. This allows us to handle the one-open-import special case that allows a name conflict to become a warning rather than being an unresolvable situation.JThe details for an import: the name of the thing that is being imported ( if importing from Az), the module that the thing was originally defined in (for re-export resolution), and the import provenance (see below).An  value with imports for the  module. An empty  value. Extracts the " from an  value. Extracts the  from an  value. Extracts the  from an  value. TThe exported types from the Prim module0Environment which only contains the Prim module.gSafely adds a type and its data constructors to some exports, returning an error if a conflict occurs. VSafely adds a type operator to some exports, returning an error if a conflict occurs. MSafely adds a class to some exports, returning an error if a conflict occurs. MSafely adds a value to some exports, returning an error if a conflict occurs. WSafely adds a value operator to some exports, returning an error if a conflict occurs. UeAdds an entry to a list of exports unless it is already present, in which case an error is returned. VIRaises an error for when there is more than one definition for something. WDRaises an error for when there are conflicting names in the exports. MGets the exports for a module, or raise an error if the module doesn't exist.SWhen reading a value from the imports, check that there are no conflicts in scope.3 X Y Z T    U V W ,     ,       X Y Z T    U V W 8None!"$*,2:<=CDLMOT[b|Finds the imports within a module, mapping the imported module name to an optional set of explicitly imported declarations.)Constructs a set of imports for a module.7Constructs a set of imports for a single module import. [TExtends the local environment for a module by resolving an import of another module. [ [9None!"$*,2:<=CDLMOT[b \ Read source position informationParse a single declaration 6Parse a module header and a collection of declarations!)Parse a collection of modules in parallel"@Parses a single module with FilePath for eventual parsing errors# Converts a  ParseError into a PositionedError ]/Parse an expression in backticks or an operator ^1Expressions including indexers and record updates$ Parse a value%Parse a binder&<Parse a binder as it would appear in a top level declaration' Parse a guardA \ _ ` a b c d e f g h i j k l m n o !"# p q r s t u v w x y z { | } ~  ] ^$ % &'  !"#$%&'  !"$'%&#A \ _ ` a b c d e f g h i j k l m n o !"# p q r s t u v w x y z { | } ~  ] ^$ % &'None!"$*,2:<=CDLMOT[baz{|}~ !"#$%&':None!"$%&*,29:;<=CDLMOT[b&(Unification variables) State required for type checking+ The current  Environment,"The next type unification variable-"The next kind unification variable.The next skolem variable/The next skolem scope constant0The current module1The current substitution2OThe current error message hint stack. This goes into state, rather than using R, since this way, we can provide good error messages during instance resolution.3:A substitution of unification variables for types or kinds5Type substitution6Kind substitution7An empty substitution8Create an empty  CheckState90Temporarily bind a collection of names to values:/Temporarily bind a collection of names to types;/Temporarily bind a collection of names to types?BTemporarily make a collection of type class dictionaries available@:Get the currently available map of type class dictionariesA+Lookup type class dictionaries in a module.B9Temporarily bind a collection of names to local variablesC>Temporarily bind a collection of names to local type variablesD-Update the visibility of all names to DefinedEQUpdate the visibility of all names to Defined in the scope of the provided actionF6Perform an action while preserving the names from the  Environment.G*Lookup the type of a value by name in the  EnvironmentH0Lookup the visibility of a value by name in the  EnvironmentIAssert that a name is visibleJ)Lookup the kind of a type by name in the  EnvironmentKGet the current  EnvironmentL?Get locally-bound names in context, to create an error message.M Update the  EnvironmentN Modify the  EnvironmentODRun a computation in the typechecking monad, starting with an empty  EnvironmentPtRun a computation in the typechecking monad, failing with an error, or succeeding with a return value and the final  Environment.Q0Make an assertion, failing with an error messageRbRun a computation in the substitution monad, generating a return value and the final substitution..()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU.()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU.34567)*+,-./0128(9:;<=>?@ABCDEFGHIJKLMNOPQRSTU"() *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU;None!"$*,29:;<=CDLMOT[b Generate a fresh kind variable 2Update the substitution to solve a kind constraint Apply a substitution to a kind 2Make sure that an unknown does not occur in a kind Unify two kindsVInfer the kind of a single typeWQInfer the kind of a single type, returning the kinds of any scoped type variablesXtInfer the kind of a type constructor with a collection of arguments and a collection of associated data constructorsYNSimultaneously infer the kinds of several mutually recursive type constructors ^Solve the set of kind constraints associated with the data constructors for a type constructor 3Default all unknown kinds to the Star kind of types Infer a kind for a type VWX Y VWXYVWXY VWX Y <None!"$%&*,2:<=CDLMOT[b $Replace fully applied type synonyms. ZZZ Z=None!"$*,2:<=CDLMOT[b[SReplace all sets of mutually-recursive declarations in a module with binding groups\BCollapse all binding groups in a module to individual declarations^6Collapse all binding groups to individual declarations oConvert a group of mutually-recursive dependencies into a BindingGroupDeclaration (or simple ValueDeclaration).[\]^ [\]^][^\[\]^ >None!"$*,2:<=CDLMOT[b_@Replace all top-level binders in a module with case expressions. 2Validates that case head and binder lengths match.`4Replace all top-level binders with case expressions._ ` _``__ ` ?None!"$*,2:<=CDLMOT[baAdd type synonym declarations for type class dictionary types, and value declarations for type class instance dictionary expressions. a bcabcabc a bc@None!"$*,2:<=CDLMOT[bd Replace all DoNotationBind and DoNotationValueH constructors with applications of the bind function in scope, and all  DoNotationLet$ constructors with let expressions. Desugar a single do statementd ddd ANone!"$*,2:<=CDLMOT[befefefefBNone!"$*,2:<=CDLMOT[bgIReplace all top level type declarations in a module with type annotationsggggCNone!"$*,2:<=CDLMOT[bhLFinds all exportable members of a module, disregarding any explicit exports.iResolves the exports for a module, filtering out members that have not been exported and elaborating re-exports of other modules. ~Filters the full list of exportable values, types, and classes for a module based on a list of export declaration references.hi hihihi DNone!"$*,2:<=CDLMOT[bjklmnopqjklmnopqjklmnopqjklmnopqENone!"$*,2:<=CDLMOT[brrrrFNone!"$*,2:<=CDLMOT[bssssGNone!"$*,2:<=CDLMOT[bttttHNone!"$*,2:<=CDLMOT[b An operator associated with its declaration position, fixity, and the name of the function or data constructor it is an alias for.uARemoves unary negation operators and replaces them with calls to  .vERemove explicit parentheses and reorder binary operator applications.LThis pass requires name desugaring and export elaboration to have run first.wChecks all the fixity exports within a module to ensure that members aliased by the operators are also exported from the module.LThis pass requires name desugaring and export elaboration to have run first. uv wuvwuvw uv wINone!"$*,2:<=CDLMOT[bx+Ensure rows do not contain duplicate labelsxxxxJNone!"$*,2:<=CDLMOT[byGenerate a new skolem constantz5Introduce skolem scope at every occurence of a ForAll{Generate a new skolem scope|PSkolemize a type variable by replacing its instances with fresh skolem constants}This function has one purpose - to skolemize type variables appearing in a DeferredDictionary placeholder. These type variables are somewhat unique since they are the only example of scoped type variables.~1Ensure skolem variables do not escape their scopeyz{|}~yz{|}~yz{|}~yz{|}~KNone!"$*,29:;<=CDLMOT[b Generate a fresh type variable2Update the substitution to solve a type constraintApply a substitution to a type 2Make sure that an unknown does not occur in a type2Compute a list of all unknowns appearing in a type2Unify two types, updating the current substitution1Unify two rows, updating the current substitutionCommon labels are first identified, and unified. Remaining labels and types are unified with a trailing row unification variable, if appropriate, otherwise leftover labels result in a unification error.>Replace a single type variable with a new unification variable$Replace type wildcards with unknownsJReplace outermost unsolved unification variables with named type variables      LNone!"#$*,2:<=CDLMOT[b QThree options for how we can handle a constraint, depending on the mode we're in. We solved this constraint CWe couldn't solve this constraint right now, it will be generalized DWe couldn't solve this constraint right now, so it has been deferred GA type substitution which makes an instance head match a list of types.Note: we store many types per type variable name. For any name, all types should unify if we are going to commit to an instance.The 1 tracks those constraints which can be satisfied.PReplace type class dictionary placeholders with inferred type class dictionaries Check that the current set of type class dictionaries entail the specified type class goal, and, if so, return a type class dictionary reference.iAdd a dictionary for the constraint to the scope, and dictionaries for all implied superclass instances. 5Check all pairs of values in a list match a predicate 4Check any pair of values in a list match a predicate         MNone!"$*,2:<=CDLMOT[bYCheck that one type subsumes another, rethrowing errors to provide a better error message $Check that one type subsumes another  NNone!"#$*,2:<=CDLMOT[bInfer the types of multiple mutually-recursive values, and return elaborated values including type class dictionaries and type annotations. +Check if a value contains a type annotation =Map a function over type annotations appearing inside a value 9Check the kind of a type, failing if it is not of kind *. yRemove any ForAlls and ConstrainedType constructors in a type by introducing new unknowns or TypeClassDictionary values.iThis is necessary during type checking to avoid unifying a polymorphic type with a unification variable. UInfer a type for a value, rethrowing any error to provide a more useful error message Infer a type for a value ;Infer the types of variables brought into scope by a binder Returns true if a binder requires its argument type to be a monotype. | If this is the case, we need to instantiate any polymorphic types before checking binders. 9Instantiate polytypes only when necessitated by a binder. LCheck the types of the return values in a set of binders in a case statement NCheck the type of a value, rethrowing errors to provide a better error message Check the type of a value 5Check the type of a collection of named record fieldsThe laxt parameter controls whether or not every record member has to be provided. For object updates, this is not the case. ^Check the type of a function application, rethrowing errors to provide a better error message.!This judgment takes three inputs:.The expression of the function we are applyingThe type of that function$The expression we are applying it toand synthesizes two outputs:The return typewThe elaborated expression for the function application (since we might need to insert type class dictionaries, etc.) (Check the type of a function application JEnsure a set of property names and value does not contain duplicate labels  The function expressionThe type of the functionThe argument expression(The result type, and the elaborated term   ONone!"$*,2:<=CDLMOT[b4Desugars a module from AST to CoreFn representation. Find module names from qualified references to values. This is used to ensure instances are imported from any module that is referenced by the current module, not just from those that are imported explicitly (#667). ?Desugars import declarations from AST to CoreFn representation. @Desugars foreign declarations from AST to CoreFn representation. Desugars export declarations references from AST to CoreFn representation. CoreFn modules only export values, so all data constructors, class constructor, instances and values are flattened into one list. Makes a typeclass dictionary constructor function. The returned expression is a function that accepts the superclass instances and member implementations and returns a record for the instance dictionary. "Converts a ProperName to an Ident.  None!"$*,2:<=CDLMOT[b99:;<=>?OPQRSTUXYZ[\]^_`agbcdefhijkrstuvwxyz{PNone!"$*,2:<=CDLMOT[b $The state object used in this module DA map from names bound (in the input) to their names (in the output) DThe set of names which have been used and are in scope in the output CRuns renaming starting with a list of idents for the initial scope. bCreates a new renaming scope using the current as a basis. Used to backtrack when leaving an Abs. qAdds a new scope entry for an ident. If the ident is already present, a new unique name is generated and stored. 'Finds the new name to use for an ident. (Finds idents introduced by declarations.,Renames within each declaration in a module. PRenames within a declaration. isTopLevel is used to determine whether the declaration is a module member or appearing within a Let. At the top level declarations are not renamed or added to the scope (they should already have been added), whereas in a Let declarations are renamed if their name shadows another in the current scope. Renames within a value. Renames within literals. !Renames within case alternatives. Renames within binders.     QNone!"$*,2:<=CDLMOT[biGenerate code in the simplified Javascript intermediate representation for all declarations in a module.L}~  %& ! "#$'()56*+,-./01234789:;<=?>@ABCDEFGHNone!"$*,2:<=CDLMOT[bL}~  %& ! "#$'()56*+,-./01234789:;<=?>@ABCDEFGHRNone!"$*,2:<=CDLMOT[b            SNone!"$*,2:<=CDLMOT[b 8There are two modes of failure for the redundancy check: WExhaustivity was incomplete due to too many cases, so we couldn't determine redundancy.OWe didn't attempt to determine redundancy for a binder, e.g. an integer binder.+We want to warn the user in the first case. RQualifies a propername from a given qualified propername and a default module name Given an environment and a datatype or newtype name, this function returns the associated data constructors if it is the case of a datatype where: - ProperName is the name of the constructor (for example, NothingN in Maybe) - [Type] is the list of arguments, if it has (for example, Just has [TypeVar "a"]) Replicates a wildcard binder BApplies a function over two lists of tuples that may lack elements Find the uncovered set between two binders: the first binder is the case we are trying to cover, the second one is the matching binder Returns the uncovered set of binders the first argument is the list of uncovered binders at step i the second argument is the (i+1)th clause of a pattern matching definitionZThe idea of the algorithm is as follows: it processes each binder of the two lists (say, x and yU) one by one at each step two cases arises: - there are no missing cases between x and y: this is very straightforward, it continues with the remaining cases but keeps the uncovered binder in its position. - there are missing cases, let us call it the set U5: on the one hand, we mix each new uncovered case in U with the current tail of uncovered set. On the other hand, it continues with the remaining cases: here we can use x. (but it will generate overlapping cases), or y,, which will generate non-overlapping cases.As an example, consider:wdata N = Z | S N f Z Z = Z --> {[S _, _], [Z, S _]} which are the right non-overlapping cases (GHC uses this). if we use x instead of y (in this case, y stands for Z and x for `_`i) we obtain: f Z Z = Z --> {[S _, _], [_, S _]} you can see that both cases overlaps each other. Up to now, we've decided to use x~ just because we expect to generate uncovered cases which might be redundant or not, but uncovered at least. If we use y instead, we'll need to have a redundancy checker (which ought to be available soon), or increase the complexity of the algorithm. Guard handling+We say a guard is exhaustive iff it has an   (or truep) expression. Example: f x | x < 0 = 0 | otherwise = 1 is exhaustive, whereas `f x | x < 0` is not5The function below say whether or not a guard has an  # expression It is considered that   is defined in Prelude .Returns the uncovered set of case alternatives eMain exhaustivity checking function Starting with the set `uncovered = { _ }` (nothing covered, one `_` for each function argument), it partitions that set with the new uncovered cases, until it consumes the whole set of clauses. Then, returns the uncovered set of case alternatives.Exhaustivity checking                TNone!"$*,2:<=CDLMOT[bTMap of module name to list of imported names from that module which have been used.Find and warn on:3Unused import statements (qualified or unqualified),Unused references in an explicit import listImplicit imports of modulesoImplicit imports into a virtual module (unless the virtual module only has members from one module imported)Imports using hiding- (this is another form of implicit importing)            UNone!"$*,2:<=CDLMOT[bTLint the PureScript AST. | | Right now, this pass only performs a shadowing check. VNone!"$*,29:;<=CDLMOT[b 4Check that type synonyms are fully-applied in a type 'Type check all declarations in a moduleWAt this point, many declarations will have been desugared, but it is still necessary to)Kind-check all types and add them to the  Environment*Type-check all values and add them to the  Environment%Bring type class instances into scopeProcess module importsType check an entire module and ensure all types and classes defined within the module that are required by exported members are also exported.     ! " # $  9()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ     ! " # $  WNone!"$*,2:<=CDLMOT[b=Elaborates deriving instance declarations by code generation. %Takes a declaration, and if the declaration is a deriving TypeInstanceDeclaration, elaborates that into an instance declaration via code generation. % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :XNone!"$*,2:<=CDLMOT[bReplaces all local names with qualified names within a list of modules. The modules should be topologically sorted beforehand. ;Make all exports for a module explicit. This may still effect modules that have an exports list, as it will also make all data constructor exports explicit. <vReplaces all local names with qualified names within a module and checks that all existing qualified names are valid. ; < ; <YNone!"$*,2:<=CDLMOT[b,The desugaring pipeline proceeds as follows: $Remove signed literals in favour of negate applications3Desugar object literals with wildcards into lambdasDesugar operator sectionsDesugar do-notationBDesugar top-level case declarations into explicit case expressionsPDesugar type declarations into value declarations with explicit type annotations'Qualify any unqualified names and types'Rebracket user-defined binary operators3Introduce type synonyms for type class dictionariesIGroup mutually recursive value and data declarations into binding groups.0[\]^_`abcdefguvwZSafe!"$*,29:;<=CDLMORT[b;A replacement for WriterT IO which uses mutable references.5Run a Logger computation, starting with an empty log.   [None!"$*,2:<=CDILMORT[b A monad for running make actions#Determines when to rebuild a moduleNever rebuild this moduleAlways rebuild this module#Generated code for an externs file.AActions that require implementations when running in "make" mode.-This type exists to make two things abstract:;The particular backend being used (Javascript, C++11, etc.).The details of how files are read/written etc.TGet the timestamp for the input file(s) for a module. If there are multiple files (.purs^ and foreign files, for example) the timestamp should be for the most recently modified file.tGet the timestamp for the output files for a module. This should be the timestamp for the oldest modified file, or  =2 if any of the required output files are missing.]Read the externs file for a module as a string and also return the actual path for the file.JRun the code generator for the module and write any required output files.Respond to a progress update.'Progress messages from the make processRender a progress messageRebuild a single module[Compiles in "make" mode, compiling each module separately to a js files and an externs fileIf timestamps have not changed, the externs file can be used to provide the module's types without having to typecheck the module again. Execute a P monad, returning either errors, or the result of the compile plus any warnings.Read a text file in the ( monad, capturing any errors using the  > instance.ZInfer the module name for a module by looking for the same filename with a .js extension.KA set of make actions that read and write modules from the given directory. ?oCheck that the declarations in a given PureScript module match with those in its corresponding foreign module. @the output directoryQa map between module names and paths to the file containing the PureScript moduleWa map between module name and the file containing the foreign javascript for the moduleGenerate a prefix comment? ? @ ?\None!"$*,2:<=CDLMOT[bD"#&%$'()*+,-.9:;<=>?DEFGHIJKLMNPVTRSQUZ[\_`abecdfghrstz{|}~#$%&'()*+,-./0123456789:;<=>?@ATUVWXYZ[\]^_`abcdghijklmnopqr      !"#$%&'()*+,-./0123456789:;<      !"#$%&'(R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefguvw]None!"$*,2:<=CDLMOT[b! ^None!"$*,2:<=CDILMOT[bA type representing a highly simplified version of PureScript code, intended for use in output formats like plain text or HTML.This type is isomorphic to  A G. It makes code a bit easier to read, as the meaning is more explicit.A single element in a rendered code fragment. The intention is to support multiple output formats. For example, plain text, or highlighted HTML.  Convert a  A  to a !, using the obvious isomorphism.  Convert a  to a  A !, using the obvious isomorphism.  A version of  fromMaybe for  values.%This function allows conversion of a  value into a value of some other type (for example, plain text, or HTML). The first argument is a function specifying how each individual  should be rendered.A  fragment representing a space.& B C      !!     !      B C      !_None!"$*,2:<=CDLMOT[b0Render code representing a Row1Render code representing a Kind2GRender code representing a Type, as it should appear inside parentheses3Render code representing a Type,-./ D E F0 G H I J K L M N O P Q R S T U V12345 ,-/.012345 3201,-./45,-./ D E F0 G H I J K L M N O P Q R S T U V12345None!"$*,2:<=CDLMOT[b+     ,-/.012345`None!"$*,2:<=CDLMOT[b;`Minimum allowable version for generating data with the current parser, and actual version used.J@A type instance declaration, with its dependencies and its type.K,A data constructor, with its type arguments.LA type class member, with its type. Note that the type does not include the type class constraint; this may be added manually if desired. For example,  W from  X would be `forall a. a -> f a`.TA value of this type contains information that is specific to a particular kind of declaration (as opposed to information which exists in all kinds of declarations, which goes into the [ type directly).Many of the constructors are very similar to their equivalents in the real PureScript AST, except that they have their name elided, since this is already available via the rdTitle field of [.U#A value declaration, with its type.VA data/newtype declaration, with the kind of declaration (data or newtype) and its type arguments. Constructors are represented as child declarations.W*A data type foreign import, with its kind.X5A type synonym, with its type arguments and its type.YyA type class, with its type arguments and its superclasses. Instances and members are represented as child declarations.Z[An operator alias declaration, with the member the alias is for and the operator's fixity.vThe version of the PureScript compiler which was used to generate this data. We store this in order to reject packages which are too old.>Discard any children which do not satisfy the given predicate.Given a function for turning association list keys into JSON object keys, and a function for turning association list values to JSON string values, turns an association list into a JSON object.For example: *assocListToJSON T.pack T.pack [("a", "b")] will give  {"a": "b"}.6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  6789:;<=>?@ABCDEFGHIJKLMNOPQRSTVXUWYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~lmnopqrstuvjkihwxbcdefg[\]^_`aTUVWXYZSyz{|}~MNOPQRIJKLFGHCDE:;<=>?@AB9678O6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|}~aNone!"$*,2:<=CDLMOT[b    bNone!"$*,2:<=CDLMOT[b YAn intermediate data type, used for either moving type class members under their parent type classes, or promoting them to normal Declaration values if their parent type class has not been re-exported. ZType class members which have not yet been dealt with. The String is the name of the type class they belong to, and the constraint is used to make sure that they have the correct type if they get promoted. [A list of normal value declarations. Type class members will be added to this list if their parent type class is not available. \rA list of type class declarations. Type class members will be added to their parents in this list, if they exist.Given:The Imports/Exports Env<An order to traverse the modules (which must be topological)iA map of modules, indexed by their names, which are assumed to not have their re-exports listed yet.This function adds all the missing re-exports. ]@Collect all of the re-exported declarations for a single module.We require that modules have already been sorted (P.sortModules) in order to ensure that by the time we convert a particular module, all its dependencies have already been converted. ^Assemble a list of declarations re-exported from a particular module, based on the Imports and Exports value for that module, and by extracting the declarations from the current state.This function works by searching through the lists of exported declarations in the Exports, and looking them up in the associated Imports value to find the module they were imported from. Additionally:Attempts to move re-exported type class members under their parent type classes, if possible, or otherwise, "promote" them from ChildDeclarations to proper Declarations.]Filters data declarations to ensure that only re-exported data constructors are listed.dFilters type class declarations to ensure that only re-exported type class members are listed. _Given a list of imported declarations (of a particular kind, ie. type, data, class, value, etc), and the name of an exported declaration of the same kind, together with the module it was originally defined in, return a tuple of:the module that exported declaration was imported from (note that this can be different from the module it was originally defined in, if it is a re-export),that same declaration's name.XThis function uses a type variable for names because we want to be able to instantiate name as both  and . `Extract a particular type declaration. For data declarations, constructors are only included in the output if they are listed in the arguments. a{Get the full list of declarations for a particular module out of the state, or raise an internal error if it is not there. bTake a TypeClassEnv and handle all of the type class members in it, either adding them to their parent classes, or promoting them to normal Declaration values.*Returns a tuple of (values, type classes). cGiven a list of exported constructor names, remove any data constructor names in the provided Map of declarations which are not in the list. dGiven a list of exported type class member names, remove any data type class member names in the provided Map of declarations which are not in the list. eIf the provided Declaration is a TypeClassDeclaration, construct an appropriate Constraint for use with the types of its members. Y f Z [ \ ] ^ _ g h ` i j a k l m b n c d o p q r s e Y f Z [ \ ] ^ _ g h ` i j a k l m b n c d o p q r s ecNone!"$*,2:<=CDLMOT[b tESome data which will be used to augment a Declaration in the output.oThe AugmentChild constructor allows us to move all children under their respective parents. It is only necessary for type instance declarations, since they appear at the top level in the AST, and since they might need to appear as children in two places (for example, if a data type defined in a module is an instance of a type class also defined in that module). uOThe data type for an intermediate stage which we go through during converting.In the first pass, we take all top level declarations in the module, and collect other information which will later be used to augment the top level declarations. These two situation correspond to the Right and Left constructors, respectively.In the second pass, we go over all of the Left values and augment the relevant declarations, leaving only the augmented Right values.uNote that in the Left case, we provide a [String] as well as augment information. The [String] value should be a list of titles of declarations that the augmentation should apply to. For example, for a type instance declaration, that would be any types or type classes mentioned in the instance. For a fixity declaration, it would be just the relevant operator's name.oConvert a single Module, but ignore re-exports; any re-exported types or values will not appear in the result. vAugment top-level declarations; the second pass. See the comments under the type synonym IntermediateDeclaration for more information. w!Create a basic Declaration value.Go through a PureScript module and extract a list of Bookmarks; references to data types or values, to be used as a kind of index. These are used for generating links in the HTML documentation, for example. t x u v y w z { | } t x u v y w z { | }dNone!"$*,2:<=CDLMOT[bLike convertModules, except that it takes a list of modules, together with their dependency status, and discards dependency modules in the resulting documentation.Convert a group of modules to the intermediate format, designed for producing documentation from. It is also necessary to pass an Env containing imports/exports information about the list of modules, which is needed for documenting re-exports.Note that the whole module dependency graph must be included in the list; if some modules import things from other modules, then those modules must also be included.For value declarations, if explicit type signatures are omitted, or a wildcard type is used, then we typecheck the modules and use the inferred types. ~!Convert a sorted list of modules. If any exported value declarations have either wildcard type signatures, or none at all, then typecheck in order to fill them in with the inferred types. <Typechecks all the modules together. Also returns the final  _, which is useful for adding in inferred types where explicit declarations were not provided. tUpdates all the types of the ValueDeclarations inside the module based on their types inside the given Environment. cPartially desugar modules so that they are suitable for extracting documentation information from.  ~    ~  eNone!"$*,2:<=CDLMOT[b <Specifies whether a PureScript source file is considered as: 1) with the 7d constructor, a target source file, i.e., we want to see its modules in the output 2) with the 8 constructor, a dependencies source file, i.e. we do not want its modules in the output; it is there to enable desugaring, and to ensure that links between modules are constructed correctly.Given:A list of local source filesZA list of source files from external dependencies, together with their package names!This function does the following:2Parse all of the input and dependency source filesmAssociate each dependency module with its package name, thereby distinguishing these from local modules>Collect a list of bookmarks from the whole set of source files+Return the parsed modules and the bookmarks    None!"$*,2:<=CDLMOT[b     ,-/.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTVXUWYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fNone!"$*,2:<=CDLMOT[bcTake a list of modules and render them all in order, returning a single Markdown-formatted String.         gNone!"$*,2:<=CDLMOT[b6An error that probably indicates a bug in this module.*An error that should be fixed by the user.RAn error which meant that it was not possible to retrieve metadata for a package.8        &     &               hNone!"$*,2:<=CDILMOT[b (Listed in bower.json, but not installed. In the output of `bower list --json --offline`, there was no _resolution key. This can be caused by adding the dependency using `bower link`, or simply copying it into bower_components instead of installing it normally. Resolved, but to something other than a version. The String argument is the resolution type. The values it can take that I'm aware of are "commit" and "branch". QResolved to a version. The String argument is the resolution tag (eg, "v0.1.0").'WHow to obtain the version tag and version that the data being generated will refer to.()What to do when the working tree is dirty*~Attempt to retrieve package metadata from the current directory. Calls exitFailure if no package metadata could be retrieved.+cAttempt to retrieve package metadata from the current directory. Returns a PackageError on failure 5Check if a string is a valid SPDX license expression. RExtracts all dependencies and their versions from `bower list --json --offline` `Extracts only the top level dependency names from the output of `bower list --json --offline` `Returns whether it looks like there is a purescript package checked out in the given directory.0 $ %&'()*+,-./0 123456 7 8$%&'()*+,-./01234567+1*$,-./0%&'()345627%   $ %&'()*+,-./0 123456 7 8iNone!"$*,2:<=CDLMOT[bDEFGHDEFGHDEFGHDEFGHjNone!"$*,24:<=CDLMOT[bJ\A Pursuit Response for a module. Consists of the modules name and the package it belongs toKlA Pursuit Response for a declaration. Consist of the declaration's module, name, package, type summary text^+A completion as it gets sent to the editorsfSourceSpans for the definition sites of Values and Types aswell as type annotations found in a module]IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~UIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]}~yz{|xstuvwopqrlmnhijkfg^_`abcdeYZ[\]QRSTUVWXOPLMNIJK%IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~kNone!"$*,2:<=CDLMOT[b   lNone!"$*,2:<=CDLMOT[b  mNone!"$*,2:<=CDLMOT[b DEFGH  nNone!"$*,2:<=CDLMOT[b    oNone!"$*,2:<=CDILMOT[bOnly keeps the given Modules7Only keeps Identifiers that start with the given prefix:Only keeps Identifiers that are equal to the search string        pNone!"$*,29:;<=CDILMOT[b=Matches any occurence of the search string with intersectionsThe scoring measures how far the matches span the string where closer is better. Examples: flMa matches flexMatcher. Score: 14.28 sons matches sortCompletions. Score: 6.25        qNone!"$*,2:<=CDLMOT[bApplies the CompletionFilters and the Matcher to the given Modules and sorts the found Completions according to the Matching Score  rNone!"$*,2:<=CDLMOT[b-Extracts AST information from a parsed module;Extracts type annotations for functions from a given ModuleuGiven a surrounding Sourcespan and a Declaration from the PS AST, extracts definition sites inside that Declaration. The surrounding span%The declaration to extract spans fromA Right0 corresponds to a type level declaration, and a Left to a value level one sNone!"$*,2:<=CDLMOT[bBContains the module with resolved reexports, and eventual failuresTUses the passed formatter to format the resolved module, and adds eventual failures%Whether any Refs couldn't be resolvedbResolves Reexports for a given Module, by looking up the reexported values from the passed in Map!Formatter for the resolved resultThe Result to be pretty printed1Modules to search for the reexported declarationsHThe module to resolve reexports for, aswell as the references to resolve  tNone!"$*,2:<=CDLMOST[bResets all State inside psc-ideGets the loaded ModulenamesGets all loaded ExternFiles(Insert a Module into Stage1 of the State STM version of insertModule CRetrieves Stage1 from the State. This includes loaded Externfiles STM version of getStage1  Retrieves Stage2 from the State. STM version of setStage2 aRetrieves Stage3 from the State. This includes the denormalized Declarations and cached rebuilds Sets Stage3 inside the compilerChecks if the given ModuleName matches the last rebuild cache and if it does returns all loaded definitions + the definitions inside the rebuild cacheAdds an ExternsFile into psc-ide's State Stage1. This does not populate the following Stages, which needs to be done after all the necessary Exterms have been loaded.STM version of insertExterns+Sets rebuild cache to the given ExternsFile Retrieves the rebuild cache*Extracts source spans from the parsed ASTs STM version of populateStage2HResolves reexports and populates Stage3 with data to be used in queries.STM version of populateStage3RLooks up the types and kinds for operators and assigns them to their declarations           uNone!"$*,2:<=CDLMOT[b/Constructs Patterns to insert into a sourcefile   Current lineBegin of the splitEnd of the split%Whether to explicitly type the splitsConstructors to split    vNone!"$*,2:<=CDLMOT[b3Rebuild the specified file using the loaded externs'      !"#$%&'()*+,-./$      !"#$%&'()*+,' !"#$%&'()*+, /    .-      !"#$%&'()*+,-./wNone!"$*,2:<=CDLMOT[b bReads a file and returns the (lines before the imports, the imports, the lines after the imports) We start in theModuleHeader state.We skip every line we encounter, that doesn't start with "import". If we find a line that starts with module we store that linenumber. Once we find a line with "import" we store its linenumber as the start of the import section and change into theImportSection stateFor any line that starts with import or whitespace(is thus indented) we expand the end of the import section to that line and continue. If we encounter a commented or empty line, we continue moving forward in the ImportSection state but don't expand the import section end yet. This allows us to exclude newlines or comments that directly follow the import section. Once we encounter a line that is not a comment, newline, indentation or import we switch into the Res statea, which just shortcuts to the end of the file and carries the detected import section boundaries5Adds an implicit import like import Prelude to a Sourcefile. Adds an explicit import like import Prelude (unit){ to a Sourcefile. If an explicit import already exists for the given module, it adds the identifier to that imports list.So &addExplicitImport "/File.purs" "bind" Prelude with an already existing import Prelude (bind) in the file File.purs returns  ["import Prelude (bind, unit)"]8>Looks up the given identifier in the currently loaded modules.2Throws an error if the identifier cannot be found.KIf exactly one match is found, adds an explicit import to the importsectionaIf more than one possible imports are found, reports the possibilities as a list of completions.;Writes a list of lines to  Just filepath and responds with a  TextResult, or returns the lines as a MultilineTextResult if Nothing" was given as the first argument.<Test and ghci helper 23 4 5The Sourcefile read fromThe module to import6 7 8The Sourcefile to read fromThe identifier to import5Filters to apply before searching for the identifier9:;<= 23456789:;< 58;<:674923  23 4 56 7 89:;<=xNone!"$*,2:<=CDLMOST[b ,Parameters we can access while building our  MakeActions@.Given a filepath performs the following steps:7Reads and parses a PureScript module from the filepath.VBuilds a dependency graph for the parsed module from the already loaded ExternsFiles.Attempts to find an FFI definition file for the module by looking for a file with the same filepath except for a .js extension.$Passes all the created artifacts to  rebuildModule.&If the rebuilding succeeds, returns a RebuildSuccessB with the generated warnings, and if rebuilding fails, returns a  RebuildError with the generated errors. dRebuilds a module but opens up its export list first and stores the result inside the rebuild cache Builds the default  MakeActions from a MakeActionsEnv -Shuts the compiler up about progress messages ZStops any kind of codegen (also silences errors about missing or unused FFI files though) Returns a topologically sorted list of dependent ExternsFiles for the given module. Throws an error if there is a cyclic dependency within the ExternsFiles Removes a modules export list.  @      @@  @      yNone!"$*,2:<=CDLMOST[bAeAccepts a Commmand and runs it against psc-ide's State. This is the main entry point for the server. dFinds all the externs.json files inside the output folder and returns the corresponding Modulenames <Finds all matches for the globs specified at the commandline Looks up the ExternsFiles for the given Modulenames and loads them into the server state. Then proceeds to parse all the specified sourcefiles and inserts their ASTs into the state. Finally kicks off an async worker, which populates Stage 2 and 3 of the state. A           AA A           zNone!"$*,2:<=CDLMOT[b kReloads an ExternsFile from Disc. If the Event indicates the ExternsFile was deleted we don't do anything.B`Installs filewatchers for the given directory and reloads ExternsFiles when they change on disc BBB B{None!"$*,2:<=CDLMOT[bC"Pretty print a module's signaturesCCCC|None!"$*,2:<=CDLMOT[bOValid Meta-commands for PSCIPA purescript expressionQ&Show the help (ie, list of directives)R"Import a module from a loaded fileSBrowse a moduleT Exit PSCIUReset the state of the REPLV8Add some declarations to the current evaluation context.WFind the type of an expressionXFind the kind of an expressionY5Shows information about the current state of the REPLZOAll of the data that is contained by an ImportDeclaration in the AST. That is:=A module name, the name of the module which is being importedpAn ImportDeclarationType which specifies whether there is an explicit import list, a hiding list, or neither.gIf the module is imported qualified, its qualified name in the importing module. Otherwise, Nothing.[The PSCI state.Holds a list of imported modules, loaded files, and partial let bindings. The let bindings are partial, because it makes more sense to apply the binding to the final evaluated expression.`The PSCI configuration.:These configuration values do not change during execution.g1Updates the imported modules in the state record.h5Updates the loaded externs files in the state record.i-Updates the let bindings in the state record.jA list of all ReplQuery values.*DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm*DKJIGFEHLMNORPQSTUVWXYZ[\]^_`abcdefghijklm*`abc[\]^_dZefghiOPQRSTUVWXYLMNjklmDEFGHIJKDEFGHIJKLMNO PQRSTUVWXYZ[\]^_`abcdefghijklm}None!"$*,2:<=CDLMOT[bt#The name of the PSCI support moduleu'Checks if the Console module is definedv"Loads a file for use with imports.wLoad all modules.x:Makes a volatile module to execute the current expression.yiMakes a volatile module to hold a non-qualified type synonym for a fully-qualified data type declaration.z7Makes a volatile module to execute the current imports. tuvwxyz{|} tuvwxyz{|} tuvwxyz{|} tuvwxyz{|}~None!"$*,2:<=CDLMOT[b ~!List of all avaliable directives.RA mapping of directives to the different strings that can be used to invoke them.0Like directiveStrings, but the other way around.List of all directive strings.;Returns all possible string representations of a directive.9Returns the default string representation of a directive.~Returns the list of directives which could be expanded from the string argument, together with the string alias that matched.?True if the given directive takes an argument, false otherwise.The help menu. ~ ~ ~ ~None!"$*,2:<=CDLMOT[b-Loads module, function, and file completions. Callback for Haskeline's  Z. Expects: * Line contents to the left of the word, reversed * Word to be completed Decide what kind of completion we need based on input. This function expects a list of complete words (to the left of the cursor) as the first argument, and the current word as the second argument. Given a module and a declaration in that module, return all possible ways it could have been referenced given the current PSCiState - including fully qualified, qualified using an alias, and unqualified. SReturns all the ImportedModule values referring to imports of a particular module.  ! " # $ %   & ' ( ) * + , - . /   0 1 2 3 4  ! " # $ %   & ' ( ) * + , - . /   0 1 2 3 4None!"$*,2:<=CDLMOT[bThe help message.The welcome prologue.The quit message.None!"$*,2:<=CDLMOT[b<Parses PSCI metacommands or expressions input from the user. 5,Parses expressions entered at the PSCI repl. 6PSCI version of letR. This is essentially let from do-notation. However, since we don't support the Eff% monad, we actually want the normal let. 7eImports must be handled separately from other declarations, so that :show import works, for example. 8hAny other declaration that we don't need a 'special case' parser for (like let or import declarations). 9 : ; < = > 5 6 7 8 ? @ A 9 : ; < = > 5 6 7 8 ? @ ANone!"$(*,2:<=CDLMOT[b BPretty-print errors&This is different than the runMake in \D in that it specifies the options and ignores the warning messages. CARebuild a module, using the cached externs data for dependencies.NBuild the collection of modules from scratch. This is usually done on startup.Performs a PSCi command DReset the application state EATakes a value expression and evaluates it with the current state. FTakes a list of declarations and updates the environment, then run a make. If the declaration fails, restore the original environment. G#Show actual loaded modules in psci. H"Show the imported modules in psci. I:Imports a module, preserving the initial state on failure. J!Takes a value and prints its type K Takes a type and prints its kind L*Browse a module and displays its signature B C D E F G H I J K LFCDKJIGFEHLMNORPQSTUVWXYZ[\]^_`abcdefghijklmtuvwxyz{|} B C D E F G H I J K L M                               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKKLMNOPQRSTUVWXYZ[\]^^__`abcdeefghijjkllmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!!!""""""""""" "!""""#"$"%"&"'"(")"*"+","-"."/"0"1"#2#3#4#5#6#######7#8#9######:#;###<##=#>#?#@#A#B#C#D##E#F#G#H#I#J#J#K#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#####h#i#j#k#l#m#n#o#p#q# #r#s#t#u#v#w#x#y#z#{#|#}#~############################################################################################################################################# # # ## #-# ###$$%%%%%%%%&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&6&7&8&9&:&;&;&<&=&>&?&@&@&A&B&C&D&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&[&\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'r's't'u'v'w'x'y'z'{'|'}'~''''''''''''''''''''''''''''''''''(())))))))))))*******+,---.////////////////////////////////01111112223344444444444444444444444444444444444444444444 4 4 4 4 44444444444444444444 4!4"4#4$4%4&5'5(6)7*7+7,7-7.7.7/70717273747475767778797:7;7<7=7>7?7@7A7B7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\8]8^8_8`9a9b9c9d9e9f9g9h9i9j9k:l:m:m:n:o:p:q:r:s:t:u:v:v:w:x:y:z:{:|:}:~:::::::::::::::::::::::::;;;;<====>>???@AABCCDDDDhDDDDEFGHHHIJJJJJJKKKKKKKKKLLLMNNNNNNNOPQRSTTUVVWXXYZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [ [ [ [ \]]]]]]]]]]]]]]]]]]]]]]]]] ]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1^2^3^4^5^6^7^l^8^^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]_^_^___`_a_b_c_d_e_f`g`@`h`i`j`k`l`m`n`o`p`q`r`s`s`t`u`u`v`w`x`y`z`{`{`|`}`~````Q`M`T`O`W``L`L``````````````````````````````````````````````````````````````````````````````````````````````````````` ````````````````````aaaaaaaaaaabbbccdd e f f f fffffggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.gjgggg/g0g1g2g3g4g5g6g7g8g9g:gg;g<g=h>h?h?h@hAhBhChDhEhFhGhhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh[i\i]i^i_i`jajbjcjdjjejfjfjgjhjijjjkjljmjnjojojpjqjrjsjsjtjujvjwjxjyjzjzj{j{j|j}j~j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkllmmmmmmmmmmmnnnooooooopppppqqrdrrrrsssssssssstttttttttttt u u u u uuvvv4vvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-v.v/v0v1v2v3v4v5v6www7w8w9w:w;w<w=w>w?w@wAwBxCyDzE{F|G|H|!| |I|||J|K|L|M||N|O||P|Q|R|S|T|U|V|W|X|X|Y|Z|[|\|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n}o}p}q}r}s}t}u}v}w}x~y~z~{~|~}~~~~~~~~D    !!!!!!!!!!!!"""""""""(""""""""""""""""""$$$$***X*Y*Z*[*^*_*e*f*g*h*i*`*a*b*c*d*m*j*l*n*************** * + + , . . 0 0 0 1 1 1 11 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 !3 "3 #3 $3 %3 &3 '3 (3 )3 *3 +3 ,5 -57 .7 /7 07 17 27 37 48 599 69 79 89 99 :9 ;9 <9 =99 >9 ?9 @9 A9 B9 C9 D9 E9 F9 G9 H9 I9 J9 K9 L9 M9 N9 O9 P9 Q9 R9 S9 T9 U9 V9 W9 X9 Y9 Z9 [9 \9 ]9 ^9 _9 `9 a9 b9 c9 d9 e9 f9 g9 h9 i; j; k; l; m; n; o; p; q; r; s< t= u= v= w= x= y= z= {= |= }= ~> > > > > > ? ? ? ?? ? ? ?S? @ C H  <H H H H H H H H H K mL L L L L L L L L L L L M N N N N N qN sN N N N N N N N N N N N N N N N O O O O O O P P P P P P P P P P P P P P P P R R R R R R R R R R S S S S S S S S  S S S SlS T T T T T V V V V V V V V V V V W W W W W W WWW W W W W W W $W W W W W W W X X   [ [  ^ ^ _ ___ _ _ __ _ _ _ _ _ _ _ _ _ _ _   b b b b b !b "b #b $b %b &bb 'b (b b )b *b +b ,b -b .b /b 0b 1b 2b 3bb 4c 5c 6c 7c 8c 9c :c ;c <c =c >d ?d @d Ad Bd Cd d De Ee Fe Ge He Ie Je Ke Le Mf Nf Nf Of Pf Qf Rf Sff Tf Uf Vg Wg Wg Xg Yg Zg [g \g ]g ^g _g `g ag bg cg dg eg fh gh hh ih jh khh lh mh nh oh ph qh>h rh sh th uh vh wh xh yh zh {h |h }h ~h k l l n nn n n n oo o o o pp p p p p p p p q r s t t t t t t t t t t t t u uu u u u u u u u u w w w w w w w w w w w w x x xx x x x x x x x x y y y y y y y y y y y z                            (purescript-0.10.1-3GrjOKhuPmAGlq3N0Cy76i(Language.PureScript.Publish.BoxesHelpers"Language.PureScript.Interactive.IO!Language.PureScript.Publish.Utils+Language.PureScript.Docs.Utils.MonoidExtras Language.PureScript.Parser.StateSystem.IO.UTF8Language.PureScript.Traversals!Language.PureScript.AST.SourcePos Language.PureScript.AST.LiteralsLanguage.PureScript.OptionsLanguage.PureScript.KindsLanguage.PureScript.Crash!Language.PureScript.AST.OperatorsLanguage.PureScript.Comments Language.PureScript.Parser.LexerControl.Monad.SupplyControl.Monad.Supply.ClassLanguage.PureScript.NamesLanguage.PureScript.TypesLanguage.PureScript.AST.Binders)Language.PureScript.TypeClassDictionaries%Language.PureScript.CodeGen.JS.CommonLanguage.PureScript.ConstantsLanguage.PureScript.Environment"Language.PureScript.CoreFn.BindersLanguage.PureScript.CoreFn.Expr%Language.PureScript.CoreFn.TraversalsLanguage.PureScript.CoreFn.MetaLanguage.PureScript.CoreFn.Ann!Language.PureScript.CoreFn.Module!Language.PureScript.Parser.Common Language.PureScript.Parser.Kinds Language.PureScript.Parser.TypesLanguage.PureScript.Bundle$Language.PureScript.AST.Declarations Language.PureScript.AST.Exported"Language.PureScript.AST.TraversalsLanguage.PureScript.Externs"Language.PureScript.CodeGen.JS.AST/Language.PureScript.CodeGen.JS.Optimizer.Blocks/Language.PureScript.CodeGen.JS.Optimizer.Common0Language.PureScript.CodeGen.JS.Optimizer.Inliner0Language.PureScript.CodeGen.JS.Optimizer.MagicDo,Language.PureScript.CodeGen.JS.Optimizer.TCO/Language.PureScript.CodeGen.JS.Optimizer.Unused(Language.PureScript.CodeGen.JS.Optimizer!Language.PureScript.Pretty.Common Language.PureScript.Pretty.Kinds Language.PureScript.Pretty.Types!Language.PureScript.Pretty.ValuesLanguage.PureScript.Pretty.JSLanguage.PureScript.Errors&Language.PureScript.ModuleDependencies&Language.PureScript.Sugar.Names.Common#Language.PureScript.Sugar.Names.Env'Language.PureScript.Sugar.Names.Imports'Language.PureScript.Parser.Declarations%Language.PureScript.TypeChecker.Monad%Language.PureScript.TypeChecker.Kinds(Language.PureScript.TypeChecker.Synonyms'Language.PureScript.Sugar.BindingGroups*Language.PureScript.Sugar.CaseDeclarations%Language.PureScript.Sugar.TypeClasses$Language.PureScript.Sugar.DoNotation)Language.PureScript.Sugar.ObjectWildcards*Language.PureScript.Sugar.TypeDeclarations'Language.PureScript.Sugar.Names.Exports*Language.PureScript.Sugar.Operators.Common+Language.PureScript.Sugar.Operators.Binders(Language.PureScript.Sugar.Operators.Expr)Language.PureScript.Sugar.Operators.Types#Language.PureScript.Sugar.Operators$Language.PureScript.TypeChecker.Rows'Language.PureScript.TypeChecker.Skolems%Language.PureScript.TypeChecker.Unify*Language.PureScript.TypeChecker.Entailment+Language.PureScript.TypeChecker.Subsumption%Language.PureScript.TypeChecker.Types"Language.PureScript.CoreFn.DesugarLanguage.PureScript.RenamerLanguage.PureScript.CodeGen.JS!Language.PureScript.CoreFn.ToJSON%Language.PureScript.Linter.Exhaustive"Language.PureScript.Linter.ImportsLanguage.PureScript.LinterLanguage.PureScript.TypeChecker.Language.PureScript.Sugar.TypeClasses.DerivingLanguage.PureScript.Sugar.NamesLanguage.PureScript.SugarControl.Monad.LoggerLanguage.PureScript.MakeLanguage.PureScriptLanguage.PureScript.Errors.JSON+Language.PureScript.Docs.RenderedCode.Types,Language.PureScript.Docs.RenderedCode.RenderLanguage.PureScript.Docs.TypesLanguage.PureScript.Docs.Render*Language.PureScript.Docs.Convert.ReExports'Language.PureScript.Docs.Convert.Single Language.PureScript.Docs.Convert)Language.PureScript.Docs.ParseAndBookmark#Language.PureScript.Docs.AsMarkdown*Language.PureScript.Publish.ErrorsWarningsLanguage.PureScript.Publish#Language.PureScript.Ide.ConversionsLanguage.PureScript.Ide.TypesLanguage.PureScript.Ide.ErrorLanguage.PureScript.Ide.PursuitLanguage.PureScript.Ide.UtilLanguage.PureScript.Ide.ExternsLanguage.PureScript.Ide.FilterLanguage.PureScript.Ide.Matcher"Language.PureScript.Ide.Completion"Language.PureScript.Ide.SourceFile!Language.PureScript.Ide.ReexportsLanguage.PureScript.Ide.State!Language.PureScript.Ide.CaseSplitLanguage.PureScript.Ide.CommandLanguage.PureScript.Ide.ImportsLanguage.PureScript.Ide.RebuildLanguage.PureScript.IdeLanguage.PureScript.Ide.Watcher'Language.PureScript.Interactive.Printer%Language.PureScript.Interactive.Types&Language.PureScript.Interactive.Module)Language.PureScript.Interactive.Directive*Language.PureScript.Interactive.Completion'Language.PureScript.Interactive.Message&Language.PureScript.Interactive.ParserLanguage.PureScript.InteractivePaths_purescriptMakedesugarImportsLanguage.PureScript.ASTLanguage.PureScript.PrettyText.Parsec.ErrorshowErrorMessagesAxLanguage.PureScript.ParserLanguage.PureScript.CoreFnLanguage.PureScript.CodeGen%Language.PureScript.Docs.RenderedCodeLanguage.PureScript.Docs!boxes-0.1.4-ydFzVDNbCb4CfN035tEOsText.PrettyPrint.BoxesnullBoxBoxmkdirponFirstFileMatchingfindNodeProcessgetHistoryFilename expandTildewidth indentWidthparaindentedsuccessivelyIndentedvcatspacer bulletedList printToStderr printToStdout globRelativepurescriptSourceFilespurescriptDepsFiles mintersperse ParseStateindentationLevel$fShowParseState readUTF8File writeUTF8FilefstMsndMthirdMpairMmaybeMeitherMdefS SourceSpanspanName spanStartspanEnd SourcePos sourcePosLinesourcePosColumndisplaySourcePosdisplayStartEndPosdisplaySourceSpaninternalModuleSourceSpan$fFromJSONSourceSpan$fToJSONSourceSpan$fFromJSONSourcePos$fToJSONSourcePos$fShowSourcePos $fEqSourcePos$fOrdSourcePos$fShowSourceSpan$fEqSourceSpan$fOrdSourceSpanLiteralNumericLiteral StringLiteral CharLiteralBooleanLiteral ArrayLiteral ObjectLiteral $fEqLiteral $fOrdLiteral $fShowLiteral$fFunctorLiteralOptions optionsNoTcooptionsNoMagicDo optionsMainoptionsNoOptimizationsoptionsVerboseErrorsoptionsNoCommentsoptionsSourceMapsoptionsDumpCoreFndefaultOptions $fShowOptionsKindKUnknownStarBangRowFunKindSymbol $fShowKind$fEqKind $fOrdKindeverywhereOnKindseverywhereOnKindsMeverythingOnKinds$fFromJSONKind $fToJSONKind internalErrorFixity AssociativityInfixlInfixrInfix Precedence showAssoc readAssoc$fToJSONFixity$fFromJSONAssociativity$fToJSONAssociativity$fShowAssociativity$fEqAssociativity$fOrdAssociativity $fShowFixity $fEqFixity $fOrdFixityComment LineComment BlockComment $fShowComment $fEqComment $fOrdComment$fFromJSONComment$fToJSONComment TokenParserPositionedToken ptSourcePosptEndPos ptPrevEndPosptToken ptCommentsTokenlexanyTokentokenmatchlparenrparenparenslbracerbracebraceslsquarersquaresquaresindentindentAtlarrowrarrow lfatArrow rfatArrowcolon doubleColonequalspipetickdotcommasemiat underscoreholeLitsemiSepsemiSep1commaSep commaSep1lnamelname' qualifierreservedunameuname'tynamemnamesymbolsymbol' charLiteral stringLiteralnumbernatural identifierreservedPsNamesreservedTypeNames isSymbolChar isUnquotedKey$fShowPositionedToken $fShowToken $fEqToken $fOrdToken$fEqPositionedTokenSupplySupplyT unSupplyT runSupplyT evalSupplyT runSupply evalSupply$fFunctorSupplyT$fApplicativeSupplyT$fMonadSupplyT$fMonadTransSupplyT$fMonadErrorSupplyT$fMonadWriterSupplyT$fMonadReaderSupplyT MonadSupplyfresh freshName$fMonadSupplyWriterT$fMonadSupplyStateT$fMonadSupplySupplyT Qualified ModuleNameProperNameTypeTypeNameConstructorName ClassName Namespace ProperName runProperName OpNameType ValueOpName TypeOpNameOpName runOpNameIdentGenIdentName IdentName ValOpNameTyNameTyOpName DctorName TyClassNameModName getIdentName getValOpName getTypeName getTypeOpName getDctorName getClassName getModNamerunIdent showIdent freshIdent freshIdent'showOpcoerceProperName runModuleNamemoduleNameFromString showQualifiedgetQualqualify mkQualified disqualify disqualifyFor isQualified isUnqualifiedisQualifiedWith$fFromJSONProperName$fToJSONProperName$fFromJSONOpName$fToJSONOpName $fShowIdent $fEqIdent $fOrdIdent $fShowOpName $fEqOpName $fOrdOpName$fShowProperName$fEqProperName$fOrdProperName$fShowModuleName$fEqModuleName$fOrdModuleName$fEqName $fShowName$fShowQualified $fEqQualified$fOrdQualified$fFunctorQualified$fFromJSONQualified$fToJSONQualified$fFromJSONIdent $fToJSONIdent$fFromJSONModuleName$fToJSONModuleName ConstraintconstraintClassconstraintArgsconstraintDataConstraintDataPartialConstraintDataTypeTUnknownTypeVarTypeLevelString TypeWildcardTypeConstructorTypeOpTypeAppForAllConstrainedTypeSkolemREmptyRCons KindedTypePrettyPrintFunctionPrettyPrintObjectPrettyPrintForAllBinaryNoParensType ParensInType SkolemScoperunSkolemScopemapConstraintArgsoverConstraintArgs$fShowSkolemScope$fEqSkolemScope$fOrdSkolemScope$fToJSONSkolemScope$fFromJSONSkolemScope$fShowConstraintData$fEqConstraintData$fOrdConstraintData$fShowConstraint$fEqConstraint$fOrdConstraint $fShowType$fEqType $fOrdType$fFromJSONType $fToJSONType$fFromJSONConstraint$fToJSONConstraint rowToList rowFromList isMonoTypemkForAllreplaceTypeVarsreplaceAllTypeVarsusedTypeVariablesfreeTypeVariablesquantifymoveQuantifiersToFrontcontainsWildcardseverywhereOnTypeseverywhereOnTypesTopDowneverywhereOnTypesMeverywhereOnTypesTopDownMeverythingOnTypeseverythingWithContextOnTypes$fFromJSONConstraintData$fToJSONConstraintDataBinder NullBinder LiteralBinder VarBinderConstructorBinderOpBinderBinaryNoParensBinderParensInBinder NamedBinderPositionedBinder TypedBinder binderNames $fShowBinder $fEqBinderTypeClassDictionaryInScopetcdNametcdPath tcdClassNametcdInstanceTypestcdDependencies $fShowTypeClassDictionaryInScopemoduleNameToJs identToJsidentNeedsEscapingidentCharToStringnameIsJsReservednameIsJsBuiltIn jsAnyReserved jsKeywordsjsSometimesReservedjsFutureReservedjsFutureReservedStrict jsOldReserved jsLiteralsFailPartial$apply# applyFlipped<>++append>>=bind+add-sub*mul/div%mod<lessThan> greaterThan<= lessThanOrEq>=greaterThanOrEq==eq/=notEqcompare&&conj||disj unsafeIndex.|..&..^.<<<compose>>>composeFlippednegatenotshlshrzshr complementzeroonebottomtopreturnpure' returnEscapeduntilEwhileErunST stRefValuenewSTRef readSTRef writeSTRef modifySTRefmkFnrunFnunit undefinedmonadEffDictionaryapplicativeEffDictionarybindEffDictionarysemiringNumber semiringInt ringNumberringIntmoduloSemiringNumbermoduloSemiringInteuclideanRingNumbereuclideanRingInt ordBoolean ordNumberordInt ordStringordChareqNumbereqInteqStringeqChar eqBooleanboundedBooleanbooleanAlgebraBooleanheytingAlgebraBooleansemigroupStringsemigroupoidFngenerictoSpine fromSpine toSignaturemainpartial __superclass___unusedprimpreludedataArrayUnsafeeffstcontrolApplicativecontrolSemigroupoid controlBind dataBounded dataSemigroupdataHeytingAlgebradataEqdataOrd dataSemiringdataRingdataEuclideanRing dataFunctiondataFunctionUncurried dataIntBits DataDeclTypeDataNewtypeTypeKindDataType TypeSynonym ExternDataLocalTypeVariable ScopedTypeVarNameKindPrivatePublicExternalNameVisibility UndefinedDefinedFunctionalDependency fdDeterminers fdDetermined TypeClassDatatypeClassArgumentstypeClassMemberstypeClassSuperclassestypeClassDependencies EnvironmentnamestypesdataConstructors typeSynonymstypeClassDictionaries typeClassesinitEnvironmentshowDataDeclTypeprimNameprimTy tyFunctiontyStringtyChartyNumbertyInt tyBooleantyArraytyRecordisObject isFunctionisTypeOrAppliedfunction primTypes primClasseslookupConstructorisNewtypeConstructor lookupValue$fFromJSONDataDeclType$fToJSONDataDeclType$fShowFunctionalDependency$fShowTypeClassData$fShowNameVisibility$fEqNameVisibility$fShowNameKind $fEqNameKind$fShowTypeKind $fEqTypeKind$fShowDataDeclType$fEqDataDeclType$fOrdDataDeclType$fShowEnvironment$fFromJSONTypeKind$fToJSONTypeKind$fFromJSONFunctionalDependency$fToJSONFunctionalDependencyextractBinderAnn$fFunctorBinderCaseAlternativecaseAlternativeBinderscaseAlternativeResultGuardBindNonRecRecExpr ConstructorAccessor ObjectUpdateAbsAppVarCaseLet extractAnn modifyAnn$fFunctorCaseAlternative$fShowCaseAlternative $fShowExpr $fFunctorExpr $fShowBind $fFunctorBindeverywhereOnValueseverythingOnValuesConstructorType ProductTypeSumTypeMeta IsConstructor IsNewtypeIsTypeClassConstructor IsForeign$fShowConstructorType$fEqConstructorType $fShowMeta$fEqMetaAnnnullAnnremoveComments ForeignDeclModulemoduleComments moduleName moduleImports moduleExports moduleForeign moduleDecls $fShowModule properNametypeNameparseQualified parseIdent parseOperatoraugmentfoldbuildPostfixParsermarkcheckIndentationsame readCommentsrunTokenParser toSourcePos parseKind parseTypeAtom parseType parsePolyType noWildcardsModuleIdentifier ModuleTypeRegularForeign ErrorMessageUnsupportedModulePathInvalidTopLevelUnableToParseModuleUnsupportedExport ErrorInModuleMissingEntryPointMissingMainModuleguessModuleIdentifierprintErrorMessagegetExportedIdentifiersbundle$fShowModuleType$fEqModuleType$fOrdModuleType$fShowModuleIdentifier$fEqModuleIdentifier$fOrdModuleIdentifier$fShowErrorMessage$fShowExportType$fEqExportType$fOrdExportType$fShowModuleElementDoNotationElementDoNotationValueDoNotationBind DoNotationLetPositionedDoNotationElement UnaryMinusBinaryNoParensParensOp IfThenElse TypedValueDo!TypeClassDictionaryConstructorAppTypeClassDictionaryTypeClassDictionaryAccessorDeferredDictionaryAnonymousArgumentHolePositionedValueTypeInstanceBodyDerivedInstanceNewtypeInstanceNewtypeInstanceWithDictionaryExplicitInstance TypeFixity ValueFixity DeclarationDataDeclarationDataBindingGroupDeclarationTypeSynonymDeclarationTypeDeclarationValueDeclarationBindingGroupDeclarationExternDeclarationExternDataDeclarationFixityDeclarationImportDeclarationTypeClassDeclarationTypeInstanceDeclarationPositionedDeclarationImportDeclarationTypeImplicitExplicitHidingDeclarationRefTypeRef TypeOpRefValueRef ValueOpRef TypeClassRefTypeInstanceRef ModuleRef ReExportRefPositionedDeclarationRef HintCategoryExprHintKindHint CheckHint PositionHint SolverHint OtherHintErrorMessageHintErrorUnifyingTypesErrorInExpressionErrorInInstanceErrorInSubsumptionErrorCheckingAccessorErrorCheckingTypeErrorCheckingKindErrorCheckingGuardErrorInferringTypeErrorInApplicationErrorInDataConstructorErrorInTypeConstructorErrorInBindingGroupErrorInDataBindingGroupErrorInTypeSynonymErrorInValueDeclarationErrorInTypeDeclarationErrorInForeignImportErrorSolvingConstraintPositionedErrorSimpleErrorMessageErrorParsingFFIModuleErrorParsingModuleMissingFFIModuleMultipleFFIModulesUnnecessaryFFIModuleMissingFFIImplementationsUnusedFFIImplementationsInvalidFFIIdentifierCannotGetFileInfoCannotReadFileCannotWriteFile InfiniteType InfiniteKindMultipleValueOpFixitiesMultipleTypeOpFixitiesOrphanTypeDeclarationRedefinedIdentOverlappingNamesInLet UnknownName UnknownImportUnknownImportDataConstructor UnknownExportUnknownExportDataConstructor ScopeConflictScopeShadowing DeclConflictExportConflictDuplicateModuleDuplicateTypeArgument InvalidDoBind InvalidDoLetCycleInDeclarationCycleInTypeSynonymCycleInModulesNameIsUndefinedUndefinedTypeVariablePartiallyAppliedSynonym EscapedSkolemTypesDoNotUnifyKindsDoNotUnifyConstrainedTypeUnifiedOverlappingInstancesNoInstanceFoundPossiblyInfiniteInstance CannotDeriveInvalidNewtypeInstanceCannotFindDerivingTypeDuplicateLabelDuplicateValueDeclarationArgListLengthsDifferOverlappingArgNamesMissingClassMemberExtraneousClassMember ExpectedTypeIncorrectConstructorArityExprDoesNotHaveTypePropertyIsMissingAdditionalPropertyTypeSynonymInstanceOrphanInstanceInvalidNewtypeInvalidInstanceHeadTransitiveExportErrorTransitiveDctorExportError ShadowedNameShadowedTypeVar UnusedTypeVarWildcardInferredTypeHoleInferredTypeMissingTypeDeclarationOverlappingPatternIncompleteExhaustivityCheckMisleadingEmptyTypeImportImportHidingModule UnusedImportUnusedExplicitImportUnusedDctorImportUnusedDctorExplicitImportDuplicateSelectiveImportDuplicateImportDuplicateImportRefDuplicateExportRef IntOutOfRangeImplicitQualifiedImportImplicitImport HidingImportCaseBinderLengthDiffersIncorrectAnonymousArgumentInvalidOperatorInBinderDeprecatedRequirePath!CannotGeneralizeRecursiveFunctionCannotDeriveNewtypeForDataNonWildcardNewtypeInstanceContextTypeFixityDeclarationValueFixityDeclaration getModuleNamegetModuleSourceSpanaddDefaultImport getTypeRef getTypeOpRef getValueRef getValueOpRefgetTypeClassRef isModuleRef isImplicit isExplicitmapTypeInstanceBodytraverseTypeInstanceBody isValueDecl isDataDecl isImportDeclisExternDataDecl isFixityDecl getFixityDecl isExternDeclisTypeClassInstanceDeclarationisTypeClassDeclaration flattenDecls$fEqDeclarationRef$fShowHintCategory$fEqHintCategory$fShowDeclarationRef$fEqImportDeclarationType$fShowImportDeclarationType$fEqValueFixity$fOrdValueFixity$fShowValueFixity$fEqTypeFixity$fOrdTypeFixity$fShowTypeFixity$fShowDoNotationElement$fShowDeclaration$fShowTypeInstanceBody$fShowErrorMessageHint$fShowSimpleErrorMessage$fFromJSONDeclarationRef$fToJSONDeclarationRef$fFromJSONImportDeclarationType$fToJSONImportDeclarationTypeexportedDeclarations isExportedeverywhereOnValuesTopDownMeverywhereOnValuesMeverythingWithContextOnValueseverywhereWithContextOnValuesMeverythingWithScope accumTypesExternsDeclarationEDType EDTypeSynonymEDDataConstructorEDValueEDClass EDInstance edTypeName edTypeKindedTypeDeclarationKindedTypeSynonymNameedTypeSynonymArgumentsedTypeSynonymTypeedDataCtorNameedDataCtorOriginedDataCtorTypeCtoredDataCtorTypeedDataCtorFields edValueName edValueType edClassNameedClassTypeArgumentsedClassMembersedClassConstraintsedFunctionalDependenciesedInstanceClassNameedInstanceNameedInstanceTypesedInstanceConstraintsExternsTypeFixityefTypeAssociativityefTypePrecedenceefTypeOperator efTypeAlias ExternsFixityefAssociativity efPrecedence efOperatorefAlias ExternsImporteiModule eiImportType eiImportedAs ExternsFile efVersion efModuleName efExports efImports efFixitiesefTypeFixitiesefDeclarationsapplyExternsFileToEnvironmentmoduleToExternsFile$fShowExternsImport$fShowExternsFixity$fShowExternsTypeFixity$fShowExternsDeclaration$fShowExternsFile$fFromJSONExternsImport$fToJSONExternsImport$fFromJSONExternsFixity$fToJSONExternsFixity$fFromJSONExternsTypeFixity$fToJSONExternsTypeFixity$fFromJSONExternsDeclaration$fToJSONExternsDeclaration$fFromJSONExternsFile$fToJSONExternsFileJSJSNumericLiteralJSStringLiteralJSBooleanLiteralJSUnaryJSBinaryJSArrayLiteral JSIndexerJSObjectLiteral JSAccessor JSFunctionJSAppJSVar JSConditionalJSBlockJSVariableIntroduction JSAssignmentJSWhileJSForJSForInJSIfElseJSReturnJSThrowJSTypeOf JSInstanceOfJSLabelJSBreak JSContinueJSRaw JSCommentBinaryOperatorAddSubtractMultiplyDivideModulusEqualTo NotEqualToLessThanLessThanOrEqualTo GreaterThanGreaterThanOrEqualToAndOr BitwiseAnd BitwiseOr BitwiseXor ShiftLeft ShiftRightZeroFillShiftRight UnaryOperatorNegateNot BitwiseNotPositiveJSNewwithSourceSpan getSourceSpaneverywhereOnJSeverywhereOnJSTopDowneverywhereOnJSTopDownMeverythingOnJS$fShowUnaryOperator$fEqUnaryOperator$fShowBinaryOperator$fEqBinaryOperator$fShowJS$fEqJScollapseNestedBlockscollapseNestedIfsapplyAll replaceIdent replaceIdents isReassigned isReboundisUsedtargetVariable isUpdatedremoveFromBlockisFnisDictisDict' etaConvertunThunk evaluateIifesinlineVariablesinlineCommonValuesinlineCommonOperatorsinlineFnCompositionmagicDotcoremoveCodeAfterReturnStatementsremoveUnusedArgremoveUndefinedAppoptimize PrinterState PlainStringStrPosSMapEmitemit addMapping parensPos intercalaterunPlainString addMapping'bumpPosaddPosemptyPrinterState blockIndent withIndent currentIndentprettyPrintManyprettyPrintObjectKeybeforebeforeWithSpaceendWith$fEmitPlainString $fEmitStrPos$fMonoidStrPos$fMonoidPlainStringprettyPrintKindprettyPrintRowWithprettyPrintRow typeAtomAsBoxprettyPrintTypeAtom typeAsBoxprettyPrintTypeprettyPrintValueprettyPrintBinderAtomprettyPrintBinderprettyPrintJSWithSourceMaps prettyPrintJS PPEOptions ppeCodeColorppeFullppeLevel ppeShowWikiLevelErrorWarningTypeMap umSkolemMap umUnknownMap umNextIndexMultipleErrorsrunMultipleErrorsErrorSuggestion errorSpan errorModulefindHintstripModuleAndSpan errorCodenonEmpty errorMessage singleErroronErrorMessagesaddHintaddHintsdefaultUnknownMapunwrapErrorMessagereplaceUnknownsonTypesInErrorMessageonTypesInErrorMessageMwikiUrierrorSuggestionsuggestionSpanshowSuggestion ansiColoransiColorReset colorCode colorCodeBoxdefaultCodeColordefaultPPEOptionsprettyPrintSingleErrorprettyPrintExportprettyPrintImportprettyPrintRefprettyPrintMultipleErrorsprettyPrintMultipleWarningsprettyPrintMultipleWarningsBoxprettyPrintMultipleErrorsBoxprettyPrintMultipleErrorsWithprettyPrintParseErrorprettyPrintParseErrorMessagesline renderBoxtoTypelevelStringrethrow reifyErrors reflectErrorswarnAndRethrowrethrowWithPositionwarnWithPositionwarnAndRethrowWithPosition withPositionescalateWarningWhenparU$fShowMultipleErrors$fMonoidMultipleErrors $fShowTypeMap $fShowLevel ModuleGraph sortModuleswarnDuplicateRefs ExportModeInternalReExportEnvExports exportedTypesexportedTypeOpsexportedTypeClassesexportedValuesexportedValueOpsImports importedTypesimportedTypeOpsimportedDataConstructorsimportedTypeClassesimportedValuesimportedValueOpsimportedModulesimportedQualModulesImportProvenance FromImplicit FromExplicitLocalPrim ImportRecord importNameimportSourceModuleimportProvenance primImports nullExportsenvModuleSourceSpanenvModuleImportsenvModuleExportsprimEnv exportType exportTypeOpexportTypeClass exportValue exportValueOp getExportscheckImportConflicts$fEqImportProvenance$fOrdImportProvenance$fShowImportProvenance$fEqImportRecord$fOrdImportRecord$fShowImportRecord $fShowImports $fShowExports$fEqExportMode$fShowExportMode ImportDef findImportsresolveImportsresolveModuleImportparseImportDeclaration'parseDeclarationparseLocalDeclaration parseModuleparseModulesFromFilesparseModuleFromFiletoPositionedError parseValue parseBinderparseBinderNoParens parseGuardUnknown CheckStatecheckEnv checkNextType checkNextKindcheckNextSkolemcheckNextSkolemScopecheckCurrentModulecheckSubstitution checkHints Substitution substType substKindemptySubstitutionemptyCheckState bindNames bindTypeswithScopedTypeVarswithErrorMessageHintrethrowWithPositionTCwarnAndRethrowWithPositionTCwithTypeClassDictionariesgetTypeClassDictionarieslookupTypeClassDictionariesbindLocalVariablesbindLocalTypeVariablesmakeBindingGroupVisiblewithBindingGroupVisiblepreservingNameslookupVariable getVisibilitycheckVisibilitylookupTypeVariablegetEnvgetLocalContextputEnv modifyEnvrunCheck runCheck' guardWithcaptureSubstitutioncapturingSubstitutionwithFreshSubstitutionwithoutWarningskindOfkindOfWithScopedVarskindsOf kindsOfAllreplaceAllTypeSynonymscreateBindingGroupsModulecollapseBindingGroupsModulecreateBindingGroupscollapseBindingGroupsdesugarCasesModule desugarCasesdesugarTypeClassestypeClassMemberNamesuperClassDictionaryNamesdesugarDoModuledesugarObjectConstructors desugarDecldesugarTypeDeclarationsModulefindExportableresolveExportsChaintoAssocparseOpmatchOpopTablematchOperatorsmatchBinderOperatorsmatchExprOperatorsmatchTypeOperatorsdesugarSignedLiterals rebracketcheckFixityExportscheckDuplicateLabelsnewSkolemConstantintroduceSkolemScopenewSkolemScope skolemizeskolemizeTypesInValueskolemEscapeCheck freshType solveTypesubstituteTypeunknownsInType unifyTypes unifyRowsreplaceVarWithUnknownreplaceTypeWildcards varIfUnknownInstanceContextreplaceTypeClassDictionariesnewDictionariessubsumesBindingGroupTypeRecursiveBindingGroupNonRecursiveBindingGrouptypesOf$fShowBindingGroupType$fEqBindingGroupType$fOrdBindingGroupTypemoduleToCoreFnrenameInModules moduleToJs moduleToJSONcheckExhaustiveExpr UsedImports lintImportslint checkNewtypetypeCheckModulederiveInstancesdesugarImportsWithEnvdesugarLogger runLogger runLogger'$fMonadBaseControlIOLogger$fMonadBaseIOLogger$fMonadWriterwLogger$fMonadIOLogger $fMonadLogger$fApplicativeLogger$fFunctorLoggerunMake RebuildPolicy RebuildNever RebuildAlwaysExterns MakeActionsgetInputTimestampgetOutputTimestamp readExternscodegenprogressProgressMessageCompilingModulerenderProgressMessage rebuildModulemakerunMakemakeIO readTextFileinferForeignModulesbuildMakeActions$fMonadBaseControlIOMake$fMonadBaseIOMake$fShowProgressMessage$fEqProgressMessage$fOrdProgressMessage$fShowRebuildPolicy$fEqRebuildPolicy$fOrdRebuildPolicy $fFunctorMake$fApplicativeMake $fMonadMake $fMonadIOMake$fMonadErrorMake$fMonadWriterMake$fMonadReaderMakeversion JSONResultwarningserrors JSONErrorpositionmessage errorLinkfilename suggestion replacement replaceRange ErrorPosition startLine startColumnendLine endColumn$fShowErrorPosition$fEqErrorPosition$fOrdErrorPosition$fShowErrorSuggestion$fEqErrorSuggestion$fShowJSONError $fEqJSONError$fShowJSONResult$fEqJSONResult$fFromJSONErrorPosition$fToJSONErrorPosition$fFromJSONJSONError$fToJSONJSONError$fFromJSONJSONResult$fToJSONJSONResult toJSONErrors toJSONError$fFromJSONErrorSuggestion$fToJSONErrorSuggestion RenderedCodeContainingModule ThisModule OtherModuleRenderedCodeElementSyntaxCtorKeywordSpaceasRenderedCodeElementasContainingModulemaybeToContainingModulecontainingModuleToMaybefromContainingModuleasRenderedCode outputWithspsyntaxidentident'ctorkindkeyword keywordForall keywordDatakeywordNewtype keywordType keywordClasskeywordInstance keywordWhere keywordFixity$fToJSONRenderedCode$fToJSONContainingModule$fToJSONRenderedCodeElement$fShowContainingModule$fEqContainingModule$fOrdContainingModule$fShowRenderedCodeElement$fEqRenderedCodeElement$fOrdRenderedCodeElement$fShowRenderedCode$fEqRenderedCode$fOrdRenderedCode$fMonoidRenderedCodeRenderTypeOptionsprettyPrintObjects currentModule renderRow renderKindrenderTypeAtom renderTypedefaultRenderTypeOptionsrenderTypeWithOptions InPackageFromDepBookmark PackageErrorCompilerTooOldErrorInPackageMetaInvalidVersionInvalidDeclarationTypeInvalidChildDeclarationType InvalidFixity InvalidKindInvalidDataDeclType GithubRepo runGithubRepo GithubUser runGithubUserChildDeclarationInfo ChildInstanceChildDataConstructorChildTypeClassMemberChildDeclaration cdeclTitle cdeclCommentscdeclSourceSpan cdeclInfo FixityAliasDeclarationInfoAliasDeclaration declTitle declCommentsdeclSourceSpan declChildrendeclInfomodName modCommentsmodDeclarations modReExportsVerifiedPackageUploadedPackage NotYetKnownPackagepkgMeta pkgVersion pkgVersionTag pkgModules pkgBookmarkspkgResolvedDependencies pkgGithub pkgUploaderpkgCompilerVersion verifyPackage packageNamedeclInfoToString isTypeClassisValueisType isValueAlias isTypeAliasfilterChildrenchildDeclInfoToStringisTypeClassMemberisDataConstructor takeLocal takeLocals ignorePackageparseUploadedPackageparseVerifiedPackage asPackageasUploadedPackage asNotYetKnownasVerifiedPackagedisplayPackageError asGithubUser asVersion parseVersion'asModule asDeclaration asReExport asInPackageasFixity asFixityAliasparseAssociativityasAssociativityasDeclarationInfoasTypeArgumentsasKindasTypeasDataDeclTypeasChildDeclarationasChildDeclarationInfo asSourcePos asConstraintasQualifiedProperNameasQualifiedIdent asBookmarks asBookmarkasResolvedDependenciesasGithub asSourceSpanassocListToJSON$fToJSONInPackage$fToJSONGithubRepo$fToJSONGithubUser$fToJSONChildDeclarationInfo$fToJSONDeclarationInfo$fToJSONChildDeclaration$fToJSONDeclaration$fToJSONModule$fToJSONNotYetKnown$fToJSONPackage$fFromJSONGithubUser$fFromJSONPackage$fFromJSONNotYetKnown$fFunctorInPackage$fShowNotYetKnown$fEqNotYetKnown$fOrdNotYetKnown$fShowDeclarationInfo$fEqDeclarationInfo$fOrdDeclarationInfo$fShowChildDeclarationInfo$fEqChildDeclarationInfo$fOrdChildDeclarationInfo$fShowChildDeclaration$fEqChildDeclaration$fOrdChildDeclaration$fEqDeclaration$fOrdDeclaration $fEqModule $fOrdModule$fShowGithubUser$fEqGithubUser$fOrdGithubUser$fShowGithubRepo$fEqGithubRepo$fOrdGithubRepo$fShowPackageError$fEqPackageError$fOrdPackageError$fShowInPackage $fEqInPackage$fOrdInPackage $fShowPackage $fEqPackage $fOrdPackagerenderDeclarationrenderDeclarationWithOptionsrenderChildDeclaration!renderChildDeclarationWithOptionsrenderConstraintrenderConstraintWithOptionsrenderConstraintsrenderConstraintsWithOptions notQualifiedtypeApp toTypeVarupdateReExports$fMonoidTypeClassEnv$fShowTypeClassEnvconvertSingleModulecollectBookmarksconvertModulesInPackageconvertModulesparseAndBookmarkDocsrenderModulesAsMarkdownmodulesAsMarkdown codeToStringrunDocs $fShowFirst $fEqFirst $fOrdFirst OtherError ProcessFailedIOExceptionThrown JSONSourceFromFile FromBowerList InternalErrorRepositoryFieldErrorRepositoryFieldMissingBadRepositoryType NotOnGithub UserErrorBowerJSONNotFoundBowerExecutableNotFoundCouldntDecodeBowerJSONTagMustBeCheckedOutAmbiguousVersionsBadRepositoryFieldNoLicenseSpecifiedInvalidLicenseMissingDependencies CompileErrorDirtyWorkingTreePackageWarningNoResolvedVersionUndeclaredDependencyUnacceptableVersionDirtyWorkingTree_Warn printErrorprintErrorToStdout renderErrorrenderWarnings printWarnings$fMonoidCollectedWarnings$fShowPackageWarning$fShowRepositoryFieldError$fShowUserError$fShowJSONSource$fShowInternalError$fShowOtherError$fShowCollectedWarnings$fEqCollectedWarnings$fOrdCollectedWarningsPrepareMPublishOptionspublishGetVersionpublishWorkingTreeDirtydefaultPublishOptionsunsafePreparePackagepreparePackage runPrepareMwarn userError otherErrorpreparePackage'getModulesAndBookmarksgetGitWorkingTreeStatuscheckCleanWorkingTreegetVersionFromGitTaggetBowerRepositoryInfogetResolvedDependencies$fMonadIOPrepareM$fFunctorPrepareM$fApplicativePrepareM$fMonadPrepareM$fMonadWriterPrepareM$fMonadErrorPrepareM$fShowTreeStatus$fEqTreeStatus$fOrdTreeStatus$fEnumTreeStatus$fShowDependencyStatus$fEqDependencyStatusrunProperNameT runIdentT runOpNameTrunModuleNameT prettyTypeTPursuitResponseModuleResponseDeclarationResponsePursuitSearchType Identifier PursuitQuerySuccessCompletionResult TextResultMultilineTextResult PursuitResult ImportList ModuleListRebuildSuccess ModuleImportimportModuleName importTypeimportQualifier Completion complModulecomplIdentifier complTypecomplExpandedType complLocationcomplDocumentationMatchStage3s3Declarationss3CachedRebuildStage2 s2AstDataStage1 s1Externs s1ModulesIdeState ideStage1 ideStage2 ideStage3IdeIdeEnvironment ideStateVarideConfiguration ConfigurationconfOutputPath confDebug confGlobsAstDataTypeAnnotationsDefinitionSites Annotation annLocationannExportedFromannTypeAnnotationIdeDeclarationAnnIdeDeclarationIdeValueIdeTypeIdeTypeSynonymIdeDataConstructor IdeTypeClassIdeValueOperatorIdeTypeOperator ModuleIdentemptyAnn emptyIdeState emptyStage1 emptyStage2 emptyStage3identifierFromDeclarationRef encodeSuccess$fToJSONPursuitResponse$fFromJSONPursuitResponse$fFromJSONPursuitQuery$fFromJSONPursuitSearchType$fToJSONSuccess$fToJSONModuleImport$fEqModuleImport$fToJSONCompletion$fShowIdeDeclaration$fEqIdeDeclaration$fOrdIdeDeclaration$fShowAnnotation$fEqAnnotation$fOrdAnnotation$fShowIdeDeclarationAnn$fEqIdeDeclarationAnn$fOrdIdeDeclarationAnn $fShowAstData $fEqAstData $fOrdAstData$fFunctorAstData$fFoldableAstData $fShowMatch $fEqMatch$fFunctorMatch$fShowCompletion$fEqCompletion$fShowModuleImport$fShowPursuitQuery$fEqPursuitQuery$fShowPursuitSearchType$fEqPursuitSearchType$fShowPursuitResponse$fEqPursuitResponse $fShowSuccess $fEqSuccess PscIdeError GeneralErrorNotFoundModuleNotFoundModuleFileNotFound ParseError RebuildError$fToJSONPscIdeErrorsearchPursuitForDeclarationsfindPackagesForModuleIdentidentifierFromIdeDeclaration discardAnn withEmptyAnn unwrapMatchcompletionFromMatchvalueOperatorAliasTtypeOperatorAliasTencodeTdecodeTunwrapPositionedunwrapPositionedRefreadExternFileconvertExternsannotateModuleFilter moduleFilter prefixFilterequalityFilter applyFilters$fFromJSONFilter$fMonoidFilterMatcher flexMatcher runMatcher$fFromJSONMatcher$fMonoidMatchergetCompletionsgetExactMatchesgetImportsForFileextractAstInformationextractTypeAnnotations extractSpansReexportResult reResolvedreFailedprettyPrintReexportResultreexportHasFailuresresolveReexports$fShowReexportResult$fEqReexportResult$fFunctorReexportResult resetIdeStategetLoadedModulenamesgetExternFiles insertModule getAllModules insertExternsinsertExternsSTM cacheRebuildpopulateStage2populateStage3populateStage3STMresolveOperatorsForModuleWildcardAnnotationsexplicitAnnotations noAnnotations caseSplit makePattern addClauseListType LoadedModulesAvailableModules ImportCommandAddImplicitImportAddImportForIdentifierCommandLoadCompletePursuit CaseSplit AddClauseImportListRebuildCwdResetQuit typeSearch typeFilterstypeCurrentModulecompleteFilterscompleteMatchercompleteCurrentModule pursuitQuerypursuitSearchType caseSplitLinecaseSplitBegin caseSplitEndcaseSplitAnnotations caseSplitType addClauseLineaddClauseAnnotationslistType$fFromJSONCommand$fFromJSONListType$fFromJSONImportCommand$fShowImportCommand$fEqImportCommandsliceImportSectionaddImplicitImportaddImplicitImport'addExplicitImport'addImportForIdentifierprettyPrintImport'prettyPrintImportSection answerRequest parseImport $fOrdImport $fEqImport $fShowImport rebuildFile handleCommandwatcherprintModuleSignatures DirectiveHelpBrowseShow ReplQuery QueryLoaded QueryImport ExpressionShowHelp BrowseModuleQuitPSCi ResetStateDeclsTypeOfKindOfShowInfoImportedModule PSCiStatepsciImportedModulespsciLetBindingspsciLoadedExterns PSCiConfigpsciLoadedFilespsciEnvironmentinitialPSCiStatepsciImportedModuleNames allImportsOfupdateImportedModulesupdateLoadedExterns updateLets replQueriesreplQueryStrings showReplQueryparseReplQuery$fShowPSCiConfig$fShowPSCiState $fEqReplQuery$fShowReplQuery $fEqDirective$fShowDirectivesupportModuleNamesupportModuleIsDefined loadModuleloadAllModulescreateTemporaryModulecreateTemporaryModuleForKindcreateTemporaryModuleForImports importDecl indexFile modulesDir directivesdirectiveStringsdirectiveStrings'strings stringsFor stringFordirectivesFor' directivesFordirectiveStringsForparseDirective hasArgumenthelp CompletionMliftCompletionM completion completion'$fShowCompletionContext helpMessageprologueMessagesupportModuleMessage quitMessage parseCommandlangDef tokenParserisUnquotedKeyHeadCharisUnquotedKeyTailCharLParenRParenLBraceRBraceLSquareRSquareIndentLArrowRArrow LFatArrow RFatArrowColon DoubleColonEqualsPipeTickDotCommaSemiAt UnderscoreLNameUName QualifierNumberHoleLitprettyPrintTokenupdatePositions parseTokens whitespace parseCommentparsePositionedToken parseTokenvalidModuleName validUNamebaseGHC.BaseString parseStar parseBang parseSymbol parseFunction parseObjectparseTypeLevelStringparseTypeWildcardparseTypeVariableparseTypeConstructor parseForAllparseConstrainedType parseAnyTypeparseNameAndTypeparseRowEndingparseRowcatchIObindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName ModuleElement ExportTypeKeycheckImportPathwithDepstoModulecompile isModuleEmptycodeGenRequireMember ExportsListOther RegularExportForeignReexportshowModuleTypefromStringLiteralstrValue commaListtrailingCommaList matchRequire matchMembermatchExportsAssignment extractLabelfilterDataConstructorsfilterInstancestypeInstanceConstituentsisDctorExported shouldInlineinlineNonClassFunctionopAddopMulopEqopNotEq opLessThanopLessThanOrEq opGreaterThanopGreaterThanOrEqopAppendopSubopNegateopDivopModopConjopDisjopNotmagicDo'inlineSTtco' optimize'untilFixedPoint typeLiteralsmatchRowfunKindconstraintsAsBoxconstraintAsBoxappliedFunctionkindedinsertPlaceholders constrainedexplicitParens matchTypeAtom matchTypeforall_listprettyPrintValueAtomellipsisprettyPrintObjectprettyPrintLiteralValueprettyPrintDeclarationprettyPrintCaseAlternativeprettyPrintDoNotationElementprettyPrintLiteralBinderprettyPrintJS1prettyPrintJS'literalsstring conditionalaccessorindexerlamapptypeOf instanceOfunary'unarynegateOperatorbinaryprettyStatements usedModules primExports addExportthrowDeclConflictthrowExportConflict ImportMap nullImportsprimModuleName resolveImportparseInfixExprindexersAndAccessors kindedIdentparseDataDeclarationparseTypeDeclarationparseTypeSynonymDeclarationparseValueDeclarationparseExternDeclaration parseFixityparseFixityDeclarationparseImportDeclarationparseDeclarationRefparseTypeClassDeclarationparseConstraintparseInstanceDeclarationparseTypeInstanceDeclaration parseDerivingInstanceDeclaration positionedbooleanLiteralparseNumericLiteralparseCharLiteralparseStringLiteralparseBooleanLiteralparseArrayLiteralparseObjectLiteralparseIdentifierAndValueparseAbsparseVarparseConstructor parseCaseparseCaseAlternativeparseIfThenElseparseLetparseValueAtom parseHoleparsePropertyUpdate parseAccessorparseDoparseDoNotationLetparseDoNotationBindparseDoNotationElementparseUpdaterBodyparseAnonymousArgumentparseNumberLiteralparseNullaryConstructorBinderparseConstructorBinderparseObjectBinderparseArrayBinderparseVarOrNamedBinderparseNullBinderparseIdentifierAndBinderparseBinderAtom freshKind solveKindsubstituteKind occursCheck unifyKinds solveTypes starIfUnknowninfer freshKindVarinfer'replaceAllTypeSynonyms'toBindingGroupcollapseBindingGroupsForValue usedIdentsusedImmediateIdents usedTypeNames declIdent declTypeNametoDataBindingGroup isTypeSynonym fromValueDecl validateCases desugarAbs inSameGrouptoDeclstoTuplemakeCaseDeclarationDesugar MemberMap desugarModulememberToNameAndTypetypeClassDictionaryDeclaration#typeClassMemberToDictionaryAccessor!typeInstanceDictionaryDeclaration desugarDo filterModule FixityRecordGHC.NumTypeFixityRecordValueFixityRecordrebracketModule removeParensexternsFixitiescollectFixitiesensureNoDuplicatescustomOperatorTable updateTypes EntailsResultSolvedUnsolvedDeferredMatchingentails pairwiseAll pairwiseAnycombineContextsmatches mkContext pairwiseM subsumes'isTyped overTypes checkTypeKindinstantiatePolyTypeWithUnknowns inferBinderbinderRequiresMonotypeinstantiateForBinders checkBinderscheckcheck'checkPropertiescheckFunctionApplicationcheckFunctionApplication'ensureNoDuplicateProperties UntypedDataTypeDatatypeDictionaryForBindingGroupcheckTypedBindingGroupElementtypeForBindingGroupElementinferLetBindingfindQualModulesimportToCoreFnexternToCoreFnexportToCoreFnmkTypeClassConstructor properToIdent RenameState rsBoundNames rsUsedNames runRenamenewScope updateScope lookupIdentfindDeclIdents renameInDecl renameInValuerenameInLiteralrenameInCaseAlternativerenameInBinderRename initState literalToJSON identToJSONproperNameToJSONqualifiedToJSONmoduleNameToJSON bindToJSON recordToJSON exprToJSONcaseAlternativeToJSON binderToJSONRedundancyError qualifyNamegetConstructors initialize genericMergemissingCasesSinglemissingCasesMultipleisExhaustiveGuard otherwise missingCasescheckExhaustive IncompletemissingAlternativelintImportDecl findUsedRefs matchName runDeclRefcheckDuplicateImportscheckTypeSynonyms typeCheckAll addDataTypeaddDataConstructoraddTypeSynonymvalueIsNotDefinedaddValue addTypeClassaddTypeClassDictionariescheckDuplicateTypeArgumentscheckTypeClassInstancederiveInstanceunwrapTypeConstructorderiveNewtypeInstance dataGeneric dataMaybe typesProxy dataNewtype deriveGenericderiveEq deriveOrd deriveNewtype findTypeDecllamNulllamCaselamCase2mkVarMnmkVar objectType decomposeRecelaborateExportsrenameInModuleNothing mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.Error.Class MonadErrorcheckForeignDecls importPrimMaybeRCunRC renderHead renderLabel renderTaildePrimconvertconvertForAllspreprocessTypepure Applicative TypeClassEnvenvUnhandledMembers envValuesenvTypeClasses getReExportscollectDeclarations findImportlookupTypeDeclarationlookupModuleDeclarations handleEnvfilterTypeClassMemberstypeClassConstraintForlookupValueDeclarationlookupValueOpDeclarationlookupTypeOpDeclarationlookupTypeClassDeclarationhandleTypeClassMembersvalsAndMembersToEnvtypeClassesToEnvsplitMapfilterExportedChildrenallDeclarations|>internalErrorInModuleDeclarationAugmentIntermediateDeclarationaugmentDeclarations mkDeclaration AugmentChildgetDeclarationTitlebasicDeclarationconvertDeclarationconvertCommentscollectBookmarks' convertSortedtypeCheckIfNecessary typeCheckinsertValueTypespartiallyDesugar runParserFileInfo parseFiles addBookmarks throwLeftfileInfoToString parseFileparseAsgetDepsModuleNames addPackageFirstNotFirstmoduleAsMarkdowndeclAsMarkdown childToStringtell' headerLevel fencedBlockticksCollectedWarningsnoResolvedVersionsundeclaredDependenciesunacceptableVersionsdirtyWorkingTreedisplayUserError spdxExamplesdisplayRepositoryErrordisplayInternalErrordisplayJSONSourcedisplayOtherErrorcollectWarningswarnNoResolvedVersionswarnUndeclaredDependencieswarnUnacceptableVersionswarnDirtyWorkingTreeMissing NoResolution ResolvedOtherResolvedVersion isValidSPDXasToplevelDependencies isPureScriptDependencyStatus TreeStatusCleanDirty unPrepareM catchLeftunlessM checkLicense extractGithub readProcess'findBowerExecutableasDependencyStatuswarnUndeclared handleDepstryExtractVersiongetInputAndDepsFileswithPackageNamegetPackageName textError queryPursuithandlerremoveTypeDeclarationsForClass convertExport convertDeclconvertOperatorconvertTypeOperatormkFilter moduleFilter' identFilter runFilter ScoredMatchdistanceMatcherdistanceMatcher' mkMatchersortCompletions flexMatchflexRate flexScorecompletionsFromModules getImports resolveRefinsertModuleSTM getStage1 getStage1STM getStage2 setStage2STM getStage3 setStage3STM cachedRebuildpopulateStage2STM getStage2STMresolveOperatorsmapIdeDeclarationfindTypeDeclarationfindTypeDeclaration'splitTypeConstructor prettyCtorprettyPrintWildcardprettyWildcard parseType'parseTypeDeclaration'splitFunctionTypeparseImportsFromFilestepaddExplicitImportImportStateMachine ModuleHeader ImportSectionRescompImportType compImportparseImportsWithModuleName moduleParseupdateAtFirstOrPrependMakeActionsEnvrebuildModuleOpen shushProgress shushCodegen sortExternsopenModuleExportsmaeOutputDirectorymaeFilePathMapmaeForeignPathMapmaePrefixCommentfindAvailableExternsfindAllSourceFiles loadModulesfindCompletionsfindTypefindPursuitCompletionsfindPursuitPackages printModulesoutputDirectorylistAvailableModules reloadFilehaskeline-0.7.2.3#System.Console.Haskeline.CompletioncompleteWordWithPrevcompletionContextgetAllQualificationsgetAllImportsOfCompletionContext CtxDirective CtxFilePath CtxModule CtxIdentifierCtxTypeCtxFixedcompleteDirective directiveArgcompleteImport headSatisfiesgetLoadedModulesgetModuleNamesmapLoadedModulesAndQualify getIdentNames getDctorNames getTypeNamesnubOnFst typeDecls identNames dctorNames moduleNamespsciExpressionpsciLet psciImportpsciOtherDeclaration parseRest psciCommandtrim trimStarttrimEnddiscardPositionInfo acceptableparseReplQuery' printErrorsrebuildhandleResetStatehandleExpression handleDeclshandleShowLoadedModuleshandleShowImportedModules handleImport handleTypeOf handleKindOf handleBrowse