Hz)*U      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` 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 MNOPQRST NoneU&Convert a GADT to a normal data type. UUU Safe-Inferred4Read from a process returning both std err and out.  Safe-Inferred2Get all files in a folder and its subdirectories.  Taken from Real World Haskell  http:book.realworldhaskell.orgread:io-case-study-a-library-for-searching-the-filesystem.html  Safe-Inferred"Get the union of a list of lists.  Flip of map. None=Convert a Haskell value to a value representing a Fay value. =Convert a value representing a Fay value to a Haskell value. V&Parse a data type or record or tuple. WParse a tuple. X)Parse a data constructor from an object. Y0Make a simple ADT constructor from an object: { slot1: 1, slot2: 2} -> Foo 1 2 Z"Make a record from a key-value: { x: 1 } -> Foo { x = 1 } [Parse a double. \Parse an int. ]Parse a number. ^Parse a bool. _Parse a string. `Parse a char. aParse a Text. bParse an array. c Parse unit. VWXYZ[\]^_`abcVWXYZ[\]^_`abc Safe-InferredWord version of flip (>>=). When the value is Just. Wrap up a form in a Maybe. Flip of mapMaybe. Monadic version of maybe. *Do any of the (monadic) predicates match?     Noned/Helpful for writing qualified symbols (Fay.*). eHelpful for some things. fHelpful for some things. '  !"#$%&'()*+,-./def$  !"#$%&'()*+,-./$.-,+*)('&%$#"!  /'  !"#$%&'()*+,-./def Safe-Inferred04Alias of liftIO, I hate typing it. Hate reading it. 0000Noneg/Extract the module name from a qualified name. hExtract the name from a QName. i)Change or add the ModuleName of a QName. j Extract the string from a Name. ghkiljghkiljghkiljNonem0Make an identifier from the built-in HJ module. n=Mapping from unqualified names to qualified primitive names. o;Lookup a primop that was resolved to a Prelude definition. p4If this is resolved to a Prelude identifier or if it's unqualified,  check if it' s a primop mnopmopmnop Safe-Inferred qrstuvwxyz{rwxyz{ qrstuvwxyz{None*123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ*123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ*RQPONMLKJIHGFEDCBA@?>=<;:987654321STUVWXYZ*123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ None$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$|{zyxwvutsrqponmlkjihgfedcba`_^]\[}~$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneB.The serialization context indicates whether we' re currently E serializing some value or a particular field in a user-defined data  type. BThese are the data types that are serializable directly to native E JS data types. Strings, floating points and arrays. The others are: 7 actions in the JS monad, which are thunks that shouldn' t be forced > when serialized but wrapped up as JS zero-arg functions, and  unknown types can'.t be converted but should at least be forced. Literal value type. A name of some kind. Expression type. Statement type. &The JavaScript FFI interfacing monad.  Error type. Print some value. The printer monad. !The state of the pretty printer. Are we to pretty print? The current line. Current column. Source mappings. Current indentation level. /The current output. TODO: Make more efficient. Just outputted a newline? Compile monad. Uns the compiler ,Configuration and globals for the compiler. The compilation configuration. $Things written out by the compiler. Constructors. Fay to JS dispatchers.  JS to Fay dispatchers.  State of the compiler.  %Exported identifiers for all modules  Map types to constructors Map constructors to fields 4Newtype constructor, destructor, wrapped type tuple 8Map of all imported modules and their source locations. MDepth of the current lexical scope, used for creating unshadowing variables. -Name of the module currently being compiled. 0Module paths that have code generated for them. Use JS Strings instead of [Char] for string literals? :Module level declarations having explicit type signatures <The name of a module split into a list for code generation. Configuration of the compiler. Run optimizations Flatten function application? Export the runtime? Export the stdlib? Export only the stdlib? 6Possibly a fay package name, and a include directory.  Pretty print the JS output? !.Output a HTML file including the produced JS. ")Output a source map file as outfile.map. #%Any JS files to link to in the HTML. $Don'"t invoke main in the produced JS. %4Warn on dubious stuff, not related to typechecking. &File path to output to. 'Typecheck with GHC. (Typecheck with -Wall. )'Run Google Closure on the produced JS. *)The package config e.g. packages-6.12.3. +Included Fay packages. ,$Custom source location for fay-base -aProduce strict and uncurried wrappers for all functions with type signatures in the given module .%Only invoke GHC for typechecking, don't produce any output 05Construct the complete ModulePath from a ModuleName. 17Construct intermediate module paths from a ModuleName.  mkModulePaths A.B => [[A], [A,B]] 2KConverting a QName to a ModulePath is only relevant for constructors since & they can conflict with module names. |Just handy to have. }Default state. ~Simple concatenating instance.       !"#$%&'()*+,-./012|}~      !"#$%&'()*+,-./012  !"#$%&'()*+,-./    012       !"#$%&'()*+,-./012|}~None!The CPP's parsing state. Wrap an expression in a thunk. Wrap an expression in a thunk. Generate unique names. ?Resolve a given maybe-qualified name to a fully qualifed name. ?Resolve a given maybe-qualified name to a fully qualifed name. . Use this when a resolution failure is a bug. Resolve a newtype constructor. Resolve a newtype destructor. 'Qualify a name for the current module. 7Qualify a QName for the current module if unqualified. Make a top-level binding.  Force an expression in a thunk. )Is a JS expression a literal (constant)? 8Deconstruct a parse result (a la maybe, foldr, either). Get a config option. FOptimize pattern matching conditions by merging conditions in common. Throw a JS exception. )Throw a JS exception (in an expression). Is an alt a wildcard? Is a pattern a wildcard? 5Return formatter string if expression is a FFI call. =Generate a temporary, SCOPED name for testing conditions and  such. =Generate a temporary, SCOPED name for testing conditions and  such. We don'2t have name tracking yet, so instead we use this. Print out a compiler warning.  Pretty print a source location. )Lookup the record for a given type name. !Get the fields for a given type. >Get the flag used for GHC, this differs between GHC-7.6.0 and > GHC-everything-else so we need to specially test for that. It's  lame, but that'$s random flag name changes for you. /Run the top level compilation for all modules. 3&Runs compilation for a single module. 4Parse some Fay code. LApply incredibly simplistic CPP handling. It only recognizes the following:   #if FAY  #ifdef FAY  #ifndef FAY  #else  #endif INote that this implementation replaces all removed lines with blanks, so $ that line numbers remain accurate. The parse mode for Fay. ,34,34)34 None59Get all include directories without the package mapping. 6;Get all include directories not included through packages. 7;Add a mapping from (maybe) a package to a source directory 8!Add several include directories. 9<Add several include directories without package references. :Add a package to compilation ;$Add several packages to compilation Default configuration. 56789:;<56789:;<56789:;< 56789:;<None?Given a configuration, resolve any packages specified to their 7 data file directories for importing the *.hs sources. Resolve package. @Does a directory exist and does it contain any Haskell sources? Describe the given package. 6Get the package version from the package description. "Make a share directory generator. None=Generate a temporary, SCOPED name for testing conditions and  such. We don'2t have name tracking yet, so instead we use this. <Top level, desugar a whole module possibly returning errors  Desugaring *Convert do notation into binds and thens. (,) => x y -> (x,y) #None$Start the compilation process using  compileModule to compile a file. =Compile a module %Compile a module given its file path 6Lookup a module from include directories and compile. Compile an import. Find an import'.s filepath and contents from its module name. ===NoneFPreprocess and collect all information needed during code generation. 4Preprocess a module given its filepath and content. Preprocess from an AST Preprocessing Find newtype declarations Add new types to the state %Add record declarations to the state NoneState. Optimize monad. @The arity of a function. Arity here is defined to be the number C of arguments that can be directly uncurried from a curried lambda  abstraction. So x y z -> if x then (a -> a) else (a -> a) has an  arity of 3, not 4. :Run an optimizer, which may output additional statements. 'Inline x >> y to x;y in the JS output. Flatten a a>>(b>>c) to [a,b,c]. !Try to collect nested a>>(b>>c). @Perform any top-level cross-module optimizations and GO DEEP to  optimize further.  Perform tail-call optimization. 7Strip redundant forcing from the whole generated code. 9Strip redundant forcing from an application if possible. =Apply the given function to the top-level expressions in the  given statements. =Apply the given function to the top-level expressions in the  given statement. :Collect functions and their arity from the whole codeset.  Get the arity of an expression. (Change foo(x)(y) to foo$uncurried(x,y). 0Rename an uncurried copy of a curried function. NoneNGet all non local identifiers that should be exported in the JS module scope. >Is this *resolved* name a new type constructor or destructor? /Is this *resolved* name a new type destructor? 0Is this *resolved* name a new type constructor? ?Add a ModulePath to CompileState, meaning it has been printed. Has this ModulePath been added/ printed?  None>The opposite of Ptr,. Serialize the specified polymorphic type.  foo :: Automatic a -> String ?>Do not serialize the specified type. This is useful for, e.g.   foo :: String -> String  foo = ffi "%1" AThis would normally serialize and unserialize the string, for no  reason, in this case. Instead:  ! foo :: Ptr String -> Ptr String %Will just give an identity function. @Values that may be undefined 9 Defined x encodes to x, Undefined decodes to undefined. B An undefined property in a record will be removed when encoding. CValues that may be null 1 Nullable x decodes to x, Null decodes to null. FDeclare a foreign action. >?@ABCDEFThe foreign value. Bottom. >?@ABCDEF CED@BA?>F>?@BACEDFNone 8Compile the given pattern against the given expression. #Compile a pattern variable e.g. x.  Compile a record field pattern. .Compile a literal value from a pattern match. $Compile as binding in pattern match &Compile a pattern match on a newtype. Compile a pattern application. Compile a pattern list. 1Compile an infix pattern (e.g. cons and tuples.)   None Print the JS to a flat string.  !Print the JS to a pretty string.  Unqualify a JsName.  (Print a constructor name given a QName.  Print an unqualified name. =Print a constructor name given a Name. Helper for printCons. 7Words reserved in haskell as well are not needed here: , case, class, do, else, if, import, in, let AThis is a hack for names generated in the Haskell AST. Should be  removed once it's no longer needed. %Encode a Haskell name to JavaScript. 4Normalize the given name to JavaScript-valid names. "Print the given printer indented. Output a newline. ?Write out a string, updating the current position information. QGenerate a mapping from the Haskell location to the current point in the output. Intercalate monadic action. Concatenate two printables. A printer is a printable. Just write out strings. !Print one of the kinds of names. Print an expression. Print a module path. Print a single statement. Print a list of statements. $Print (and properly encode) a name.  0Print special constructors (tuples, list, etc.) !Print module name. "4Print (and properly encode to JS) a qualified name. #5Print literals. These need some special encoding for 6 JS-format literals. Could use the Text.JSON library.       !"#           !"#None$Compile an FFI call. %LCompile an FFI expression (also used when compiling top level definitions). &MWarn about uses of naked x.y which will not play nicely with Google Closure. 'Make a Fay!JS encoder.(A name used for transcoding. )@The name used for the forced version of a transcoding variable. *"Get arg types of a function type. +:Convert a Haskell type to an internal FFI representation. ,Extract the type. -Expand a type application. .Generate a user-defined type. /Translate: JS ! Fay.0Translate: Fay ! JS.1Make a translator. 2:Get a JS-representation of a fundamental type for encoding/ decoding. 3Get the arity of a type. 48Format the FFI format string with the given arguments. 5/Generate n name-typ pairs from the given list. 6Generate Fay!JS encoding.7Generate JS!Fay decoding.8Make a JS!Fay decoder.9MThe argument types used in serialization of parametrized user-defined types. :AGet the index of a name from the set of type variables bindings. ;/Extract the name from a possibly-kinded tyvar. $Name of the to-be binding. The format string. Type signature. %&'()*+,-./01234Source Location. The format string.  Arguments.  The JS code. 56789:;$%'3678$%&'()*+,-./0123456789:;NoneGCompile Haskell expression. <Compile variable. =Compile Haskell literal. >Compile simple application. ?Helper for compileApp. @Compile a negate application A7Compile an infix application, optimizing the JS cases. BCompile a let expression. CCompile let declaration. DCompile a list expression. ECompile an if. FCompile case expressions. G8Compile the given pattern against the given expression. HCompile a guarded alt. ICompile guards JCompile a lambda. K Compile [e1..] arithmetic sequences. LCompile [e1..e3] arithmetic sequences. MCompile [e1,e2..] arithmetic sequences. NCompile [e1,e2..e3] arithmetic sequences. O0Compile a record construction with named fields H | GHC will warn on uninitialized fields, they will be undefined in JS. PCompile a record update. QDesugar list comprehensions. RMake a Fay list. SOptimize short literal [e1..e3] arithmetic sequences. T!Optimize short literal [e1,e2..e3] arithmetic sequences. UBMaximum number of elements to allow in strict list representation  of arithmetic sequences. G<=>?@ABCDEFGHIJKLMNOPQRSTUG=CIG<=>?@ABCDEFGHIJKLMNOPQRSTUNoneVCompile Haskell declaration. HCompile a declaration. W"Compile a top-level pattern bind. X)Compile a normal simple pattern binding. YGCompile a data declaration (or a GADT, latter is converted to former). ZDCompile a function which pattern matches (causing a case analysis). [&Compile a right-hand-side expression. VH\WXYZ[VH\WXYZ[VH\WXYZ[None]!The data-files source directory. ^#The default compiler reader value. _The default compiler state. ]^_]^_]^_ None`(Call out to GHC to type-check the file. ``` None I?Compile a Haskell source string to a JavaScript source string. J"Compile the top-level Fay module. KCompile a source string. a.Compile given the location and source string. LCompile a parse HSE module. b5Check if the given language pragmas are all present. cFor a module A.B, generate  | var A = {};  | A.B = {}; d[Generate exports for non local names, local exports have already been added to the module. e8Generate strict wrappers for the exports of the module. f2Is the module a standard module, i.e., one that we' d rather not  output code for if we're compiling separate files. IJKaLbcdef 34=GHIJKL 3I=GHJKL4 IJKaLbcdefNone MBCompile the given file and write the output to the given path, or  if nothing given, stdout. NHCompile the given file and write to the output, also generate any HTML. OCompile the given file. P$Compile a file returning the state. g/Compile the given module to a runnable module. Q-Convert a Haskell filename to a JS filename. R-Print a compile error for human consumption. SGet the JS runtime source. : This will return the user supplied runtime if it exists. T#Get the default JS runtime source. MNOPgQRST      !"#$%&'()*+,-./012MNOPQRSTOPMNQRST MNOPgQRSTh!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ-./23456789:;<=>?@ABCDEFGHIJKLMNORSTUVWXYZ - . / 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O R W [ \ ] ^ _ ` 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 { | } ~                           o    u                                                                             a  i  i h  h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI J K L   M N OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy z{|}~f      !"#$%&' ( ) * + , - ./0 fay-0.18.1Fay.System.Process.ExtraFay.System.Directory.ExtraFay.Data.List.Extra Fay.ConvertFay.Control.Monad.ExtraFay.Exts.NoAnnotationFay.Control.Monad.IOFay.ExtsFay.Exts.Scoped Fay.Types Fay.CompilerFay.Compiler.ConfigFay.FFIFayFay.Compiler.GADTFay.Compiler.QNameFay.Compiler.PrimOp Paths_fayFay.Compiler.MiscFay.Compiler.PackagesFay.Compiler.DesugarFay.Compiler.ImportFay.Compiler.InitialPassFay.Compiler.OptimizerFay.Compiler.StateFay.Compiler.PatternFay.Compiler.PrintFay.Compiler.FFIFay.Compiler.ExpFay.Compiler.DeclFay.Compiler.DefaultsFay.Compiler.TypecheckreadAllFromProcessgetRecursiveContentsunionOffor showToFay readFromFaybindwhenJustjustforMaybemaybeManyMType TyVarBindStmt SrcSpanInfoSrcSpanSrcLoc SpecialConRhsQualStmt QualConDeclQOpQNamePatFieldPatName ModulePragma ModuleNameModuleMatchLiteral ImportSpec ImportDecl GuardedRhs GuardedAltsGadtDecl FieldUpdate FieldDecl ExportSpecExpExDeclHeadDecl ClassDeclBangTypeAltunAnnioX moduleName moduleExportsmoduleNameStringmkIdentnoIconvertFieldDeclfieldDeclNames declHeadName srcSpanInfoSerializeContextSerializeUserArgSerializeAnywhereFundamentalType UnknownType AutomaticPtrTypeBoolTypeIntType DoubleType StringTypeDateTypeNullableDefined UserDefined TupleTypeListTypeJsType FunctionTypeJsLitJsBool JsFloatingJsIntJsStrJsCharJsName JsModuleName JsBuiltIn JsConstructorJsTmpJsParamJsApplyJsForceJsThunkJsParametrizedTypeJsThis JsNameVarJsExpJsOrJsAnd JsUndefinedJsLitObjJsObjJsInfixJsNeqJsEqJsIndex JsInstanceOf JsThrowExpJsNewJsListJsUpdatePropExternJsGetPropExtern JsUpdatePropJsLookup JsGetPropJsParenJsNull JsTernaryIfJsNegAppJsAppJsFunJsSeqJsRawExpJsStmt JsExpStmtJsBlock JsContinueJsSetPropExternJsSetConstructor JsSetModule JsSetQName JsSetPropJsUpdateJsWhileJsThrow JsEarlyReturnJsIfJsVar CompileErrorUnsupportedWhereInMatchUnsupportedWhereInAltUnsupportedRhsUnsupportedRecursiveDoUnsupportedQualStmtUnsupportedPatternUnsupportedModuleSyntaxUnsupportedLiteralUnsupportedLetBindingUnsupportedLetUnsupportedImportUnsupportedFieldPatternUnsupportedExpressionUnsupportedExportSpecUnsupportedDeclarationUnableResolveQualifiedShouldBeDesugared ParseErrorInvalidDoBlockGHCErrorFfiNeedsTypeSigFfiFormatNoSuchArgFfiFormatInvalidJavaScriptFfiFormatIncompleteArgFfiFormatBadChars EmptyDoBlockCouldn'tFindImport PrintableprintJSPrinter runPrinter PrintStatepsPrettypsLinepsColumn psMappings psIndentLevelpsOutput psNewline CompileModule CompileResultCompile unCompile CompileReader readerConfigreaderCompileLitreaderCompileDecls CompileWriter writerCons writerFayToJs writerJsToFay CompileStatestateInterfacesstateRecordTypes stateRecords stateNewtypes stateImportedstateNameDepthstateModuleNamestateJsModulePathsstateUseFromString stateTypeSigs ModulePath unModulePath CompileConfigconfigOptimizeconfigFlattenAppsconfigExportRuntimeconfigExportStdlibconfigExportStdlibOnlyconfigDirectoryIncludesconfigPrettyPrintconfigHtmlWrapperconfigSourceMapconfigHtmlJSLibs configLibrary configWarnconfigFilePathconfigTypecheck configWallconfigGClosureconfigPackageConfconfigPackagesconfigBasePath configStrictconfigTypecheckOnlyconfigRuntimePath mkModulePath mkModulePathsmkModulePathFromQNamerunCompileModuleparseFayconfigDirectoryIncludePaths%nonPackageConfigDirectoryIncludePathsaddConfigDirectoryIncludeaddConfigDirectoryIncludesaddConfigDirectoryIncludePathsaddConfigPackageaddConfigPackagesshouldExportStrictWrapper compileWithPtr UndefinedNullffi compileExp compileDecl compileViaStrcompileToplevelModulecompileModuleFromContentscompileModuleFromAST compileFromTocompileFromToAndGenerateHtml compileFilecompileFileWithStatetoJsNameshowCompileErrorgetConfigRuntime getRuntime convertGADTparseDataOrTuple parseTuple parseObject makeSimple makeRecord parseDoubleparseInt parseNumber parseBool parseString parseChar parseText parseArray parseUnit$fIsStringModuleName$fIsStringQName$fIsStringNameqModNameunQual changeModuleunname unQualify changeModule' fayBuiltin primOpsMap findPrimOp resolvePrimOpcatchIOversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileName$fIsStringJsLit$fDefaultPrintState$fMonoidCompileWriter liftModuleT$fErrorCompileError$fMonadModuleCompileCPPStatethunk stmtsThunk uniqueNamestryResolveNameunsafeResolveNamelookupNewtypeConstlookupNewtypeDestqualify qualifyQName bindToplevelforce isConstant parseResultconfigoptimizePatConditionsthrowthrowExp isWildCardAlt isWildCardPatffiExpwithScopedTmpJsNamewithScopedTmpNamewarn printSrcLoc typeToRecs typeToFieldsgetGhcPackageDbFlag runTopCompileapplyCPP parseModeCPPElseCPPIfNoCPPorigName2QNamereplaceWithBuiltInsioWarnprintSrcSpanInfo printSrcSpan recToFieldsshouldBeDesugareddefaultExtensions$fDefaultCompileConfigresolvePackagesresolvePackagedoesSourceDirExistdescribePackagepackageVersion getShareGendesugar desugarModule desugarStmt'desugarTupleConDesugar unDesugar DesugarReaderreaderNameDepth runDesugar desugarDeclmmap desugarBinds desugarMatch desugarRhsdesugarGuardedRhs desugarExp desugarPatdesugarPatFielddesugarGuardedAlts desugarQOp desugarType desugarQNamedesugarQualStmt desugarAltdesugarFieldUpdatedesugarBracket desugarSplicedesugarGuardedAlt desugarStmt desugarName desugarVardesugarTupleSec startCompilecompileModuleFromFilecompileModuleFromName compileImport findImport initialPasspreprocessFileWithSource preprocessASTscanNewtypeDeclscompileNewtypeDeclscanRecordDecls scanTypeSigsOptStateOptimize FuncArity runOptimizer inlineMonadflattencollectoptimizeTopleveltcostripAndUncurrywalkAndStripForcesapplyToExpsInStmtsapplyToExpsInStmt collectFuncsexpArityuncurryBindingrenameUncurriedoptStmts optUncurry!getNonLocalExportsWithoutNewtypes isNewtype isNewtypeDest isNewtypeCons addModulePathaddedModulePathgetLocalExportsWithoutNewtypes findTypeSig compilePat compilePVarcompilePatFields compilePLit compilePAsPatcompileNewtypePat compilePApp compilePListcompileInfixPat printJSString printJSPrettyident printConsprintConsUnQual printConsName reservedWords encodeName normalizeNameindentednewlinewritemapping intercalateM+>$fPrintablePrinter $fPrintable[]$fPrintableJsName$fPrintableJsExp$fPrintableModulePath$fPrintableJsStmt$fPrintable[]0$fPrintableName$fPrintableSpecialCon$fPrintableModuleName$fPrintableQName$fPrintableJsLit compileFFI compileFFIExp warnDotUses emitFayToJstranscodingObjtranscodingObjForcedfunctionTypeArgsargTypebangType expandApp userDefinedjsToFayfayToJs translatetypeRep typeArity formatFFI explodeFields fayToJsHash jsToFayHash emitJsToFayargTypesgetIndextyvar compileVar compileLit compileApp compileApp' compileNegAppcompileInfixApp compileLetcompileLetDecl compileList compileIf compileCase compilePatAltcompileGuardedAlt compileGuards compileLambdacompileEnumFromcompileEnumFromTocompileEnumFromThencompileEnumFromThenTocompileRecConstrcompileRecUpdatedesugarListCompmakeList optEnumFromTooptEnumFromThenTomaxStrictASLen compileDeclscompilePatBindcompileUnguardedRhscompileDataDeclcompileFunCase compileRhsmkTyVars faySourceDirdefaultCompileReaderdefaultCompileState typecheckcompileFileWithSourcehasLanguagePragmascreateModulePathgenerateExportsgenerateStrictExportsanStdlibModulecompileToModule