xj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Infered Safe-InferedAConvert a Haskell value to a Fay value. To read this in from JS, D use Fay.eval() which will evaluate the code in the context of Fay.  Safe-Infered$ !"#$%&'()*+,-./0123456789:;<=>$ !"#$%&'()*+,-./0123456789:;<=>! !"#$%&'()*+,-./0123456789:;<=> Safe-InferedRead all stuff from a process.   Safe-InferedNone?BThese are the data types that are serializable directly to native E JS data types. Strings, floating points and arrays. The others are: 7 actiosn 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. @ Unknown. HLiteral value type. NExpression type. dStatement type. m&The JavaScript FFI interfacing monad. n Error type. Print some value. 2Just a convenience class to generalize the parsing/ printing of  various types of syntax. 2To be used to force name sanitization eventually. *Convenience type for function parameters. Compile monad. State of the compiler. Configuration of the compiler. Default configuration. _?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\dlkjihgfeNcba`_^]\[ZYXWVUTSRQPOHMLKJIn~}|{zyxwvutsrqpom?GFEDCBA@?GFEDCBA@HMLKJINcba`_^]\[ZYXWVUTSRQPOdlkjihgfemn~}|{zyxwvutsrqpo Safe-Infered )Contains allowed foreign function types. Declare a foreign action. Functions are foreignable. JS values are foreignable. &Pointers to arbitrary objects are OK. Lists ! arrays are OK. Bools are OK. Characters are OK. All numbers in JS are double.  Unit is OK. The foreign value. Bottom.  NoneJust to satisfy GHC. Just to satisfy GHC. E  !"#$%&'()*+,-./0123456789:;<=>mEm    5 !"#$%&'()*+,./012346789:;<=>-  Safe-Infered %Encode a Haskell name to JavaScript. $Helpful for writing variable names. /Helpful for writing qualified symbols (Fay.*). Print an expression. Print a single statement. Print a list of statements. $Print (and properly encode) a name. Print module name.  0Print special constructors (tuples, list, etc.)  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.         Safe-InferedG3Compile something that compiles to something else. Run the compiler. ?Compile a Haskell source string to a JavaScript source string. ?Compile a Haskell source string to a JavaScript source string. Compile from a string. ?Compile a String of Fay and print it as beautified JavaScript. Compile Haskell module. Compile the given import. Compile Haskell declaration. Compile a declaration. "Compile a top-level pattern bind. Compile an FFI call. 7Format the FFI format string with the given arguments. -Serialize a value to native JS, if possible. :Get a JS-representation of a fundamental type for encoding/ decoding. "Get arg types of a function type. :Convert a Haskell type to an internal FFI representation. Get the arity of a type. )Compile a normal simple pattern binding. Compile a data declaration. !Extract the string from a qname.  Extra the string from an ident. DCompile a function which pattern matches (causing a case analysis). &Optimize functions in tail-call form. ?Flatten an application expression into function : arg : arg : [] &Expand a forced value into the value. Format a JS file using  js-beautify, or return the JS as-is if   js-beautify is unavailable &Compile a right-hand-side expression. Compile guards !Compile a pattern match binding. Compile Haskell expression. Compile simple application. 7Compile an infix application, optimizing the JS cases. Compile a list expression. Compile an if. Compile a lambda. Compile case expressions. Compile a do block. #Compile a statement of a do block. 8Compile the given pattern against the given expression. 8Compile the given pattern against the given expression. .Compile a literal value from a pattern match. $Compile as binding in pattern match 0Compile a record construction with named fields H | GHC will warn on uninitialized fields, they will be undefined in JS. <Equality test for two expressions, with some optimizations. )Is a JS expression a literal (constant)? Compile a pattern application. Compile a pattern list. 1Compile an infix pattern (e.g. cons and tuples.) Compile a guarded alt. Compile a let expression. Compile let declaration. Compile Haskell literal. Generate unique names. 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? 2A temporary name for testing conditions and such. Wrap an expression in a thunk. Wrap an expression in a thunk. Wrap an expression in a thunk.  Force an expression in a thunk.  Force an expression in a thunk. 8Resolve operators to only built-in (for now) functions. 0Make an identifier from the built-in HJ module. Make a top-level binding. Emit exported names. Parse result. Get a config option. MName of the to-be binding. The format string. Type signature. The format string.  Arguments.  The JS code. The function parameters. The function name. The body of the function. A new optimized function body.   JJM       ! "# $% &' &( &) * +,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw`xyz{|}~z                  !" fay-0.5.2.0Language.Fay.PreludeLanguage.Fay.ShowLanguage.Fay.TypesLanguage.Fay.FFI Language.Fay Paths_fayLanguage.Fay.StdlibSystem.Process.ExtraControl.Monad.IOLanguage.Fay.PrintbaseGHC.Num-ghc-prim GHC.Classes==>=GHC.ReadReadGHC.ShowShow GHC.TypesBoolCharDouble integer-gmpGHC.Integer.TypeIntegerGHC.BaseStringFalseTrueshow Text.ReadreadGHC.Real/ Data.MaybeNothingJustMaybe*+/=<=&&||<> showToFayOrderingEQLTGTsndfstfindanyfilternotnullmapnubelemsortcomparesortByinsertBywhenenumFromzipWithzipflipmaybe.++$concatfoldrfoldllookup intersperse prependToAll intercalateforM_mapM_FundamentalType UnknownTypeBoolType DoubleType StringTypeDateTypeListTypeJsType FunctionTypeJsLitJsBool JsFloatingJsIntJsStrJsCharJsExpJsInfixJsEqJsIndex JsInstanceOf JsThrowExpJsNewJsListJsUpdatePropExternJsGetPropExtern JsUpdatePropJsLookup JsGetPropJsParen JsSequenceJsNull JsTernaryIfJsAppJsFunJsRawExpJsNameJsStmt JsContinue JsSetPropJsUpdateJsWhileJsThrow JsEarlyReturnJsIfJsVarFay CompileErrorFfiFormatInvalidJavaScriptFfiFormatIncompleteArgFfiFormatNoSuchArgFfiFormatBadCharsFfiNeedsTypeSigRecursiveDoUnsupportedInvalidDoBlockLetUnsupportedUnsupportedModuleSyntax EmptyDoBlockUnsupportedGuardedAltsUnsupportedRhsUnsupportedPatternUnsupportedOperatorUnsupportedLetBindingUnsupportedLiteralUnsupportedExpressionUnsupportedWhereInMatchUnsupportedMatchSyntaxUnsupportedExportSpecUnsupportedDeclaration ParseError PrintableprintJS CompilesTo compileToJsParamCompile unCompile CompileState stateConfig stateExportsstateExportAllstateModuleName stateRecords CompileConfig configTCOconfigInlineForceconfigFlattenAppsconfigExportBuiltinsForeignJsPtrffi fromInteger fromRational>>>>=failreturncompile runCompile compileViaStr compileToAstcompileFromStr printCompileprintTestCompile compileModule compileImport compileDecls compileDeclcompilePatBind compileFFI formatFFI serializetypeRepfunctionTypeArgsargType typeAritycompileNormalPatBindcompileDataDeclqnameunnamecompileFunCaseoptimizeTailCallsflattenexpandprettyPrintFile compileRhs compileGuardscompileFunMatch compileExp compileAppcompileInfixApp compileListmakeList compileIf compileLambda compileCasecompileDoBlock compileStmt compilePatAlt compilePat compilePLit compilePAsPatcompileRecConstr equalExps isConstant compilePApp compilePListcompileInfixPatcompileGuardedAlt compileLetcompileLetDecl compileLit uniqueNamesoptimizePatConditionsthrowthrowExp isWildCardAlt isWildCardPattmpNamethunkmonad stmtsThunk unserializeforceforceInlinableresolveOpToVarhjIdent bindToplevel emitExport parseResultconfigversion getBinDir getLibDir getDataDir getLibexecDirgetDataFileNamereadAllFromProcessio$fDefaultCompileConfig$fExceptionCompileError$fErrorCompileError $fForeign(->) $fForeignFay$fForeignJsPtr $fForeign[] $fForeignBool $fForeignChar$fForeignDouble $fForeign() jsEncodeName$fIsStringQName$fIsStringModuleName$fPrintableJsExp$fPrintableJsStmt $fPrintable[]$fPrintableName$fPrintableModuleName$fPrintableSpecialCon$fPrintableQName$fPrintableJsLit$fCompilesToExpJsExp$fCompilesToDecl[]$fCompilesToModule[]