oc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferedRead all stuff from a process.  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-InferedNone =Literal value type. CExpression type. UStatement type. ^&The JavaScript FFI interfacing monad. _ Error type. rPrint some value. t2Just a convenience class to generalize the parsing/ printing of  various types of syntax. v2To be used to force name sanitization eventually. w*Convenience type for function parameters. xCompile monad. {State of the compiler. Configuration of the compiler. Default configuration. K=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~H=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~HU]\[ZYXWVCTSRQPONMLKJIHGFED=BA@?>wv_qponmlkjihgfedcba`xyzturs^{|}~=BA@?>CTSRQPONMLKJIHGFEDU]\[ZYXWV^_qponmlkjihgfedcba`rstuvwxyz{|}~ Safe-Infered )Contains allowed foreign function types. Declare a foreign action. Declare a foreign function. Declare a foreign action. Declare a foreign function. 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 function name. JS return type. Bottom. The foreign function name. JS return type. Bottom. The foreign function name. JS return type. Bottom. The foreign function name. JS return type. Bottom. NoneJust to satisfy GHC. Just to satisfy GHC. C  !"#$%&'()*+,-./0123456789:;<^C^    4 !"#$%&'()*+,-./012356789:;<  Safe-Infered %Encode a Haskell name to JavaScript. $Helpful for writing variable names. 0Helpful 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-InferedBBThese 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. 3Compile 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 Haskell module. Compile the given import. Compile Haskell declaration. Compile a declaration. "Compile a top-level pattern bind. )Compile a normal simple pattern binding. Compile a foreign function. Compile a foreign method. Compile an FFI call. -Serialize a value to native JS, if possible. "Get arg types of a function type. Get the arity of a type. 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. &Compile a right-hand-side expression. !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. <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. MThe function parameters. The function name. The body of the function. A new optimized function body. JJF            !" #$ %& %' %( ) * + , - . / 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgThijklmnopqrstuvwxyz{|}~j      fay-0.1.2.0Language.Fay.PreludeLanguage.Fay.ShowLanguage.Fay.TypesLanguage.Fay.FFI Language.FaySystem.Process.ExtraLanguage.Fay.StdlibControl.Monad.IOLanguage.Fay.PrintbaseGHC.Num-ghc-prim GHC.Classes==>=GHC.ReadReadGHC.ShowShow GHC.TypesBoolCharDouble integer-gmpGHC.Integer.TypeIntegerGHC.BaseStringFalseTrueshow Text.ReadreadGHC.Real/ Data.MaybeNothingJustMaybe*+/=<=&&||<> showToFayOrderingEQLTGTsndfstfindanyfilternotnullmapnubelemsortcomparesortByinsertByenumFromzipWithzipflipmaybe.++$concatfoldrfoldllookup intersperse prependToAll intercalateforM_JsLitJsBool JsFloatingJsIntJsStrJsCharJsExpJsInfixJsEqJsIndex JsInstanceOf JsThrowExpJsNewJsList JsGetPropJsParen JsSequenceJsNull JsTernaryIfJsAppJsFun JsRawNameJsNameJsStmt JsContinue JsSetPropJsUpdateJsWhileJsThrow JsEarlyReturnJsIfJsVarFay CompileErrorFfiNeedsTypeSigRecursiveDoUnsupportedInvalidDoBlockLetUnsupportedUnsupportedModuleSyntax EmptyDoBlockUnsupportedGuardedAltsUnsupportedRhsUnsupportedPatternUnsupportedOperatorUnsupportedLetBindingUnsupportedLiteralUnsupportedExpressionUnsupportedWhereInMatchUnsupportedMatchSyntaxUnsupportedExportSpecUnsupportedDeclaration ParseError PrintableprintJS CompilesTo compileToJsParamCompile unCompile CompileState stateConfig stateExportsstateExportAllstateModuleName CompileConfig configTCOconfigInlineForceForeignJsPtr foreignFay foreignPureforeignMethodFay foreignMethod fromInteger fromRational>>>>=failreturnArgType UnknownTypeBoolTypeListType DoubleType StringTypeJsType FunctionTypecompile runCompile compileViaStr compileToAstcompileFromStr compileModule compileImport compileDecls compileDeclcompilePatBindcompileNormalPatBindcompileFFIFunccompileFFIMethod compileFFI serializefunctionTypeArgs typeAritycompileDataDeclqnameunnamecompileFunCaseoptimizeTailCallsflattenexpand compileRhscompileFunMatch compileExp compileAppcompileInfixApp compileList compileIf compileLambda compileCasecompileDoBlock compileStmt compilePatAlt compilePat compilePLit equalExps isConstant compilePApp compilePListcompileInfixPatcompileGuardedAlt compileLetcompileLetDecl compileLit uniqueNamesoptimizePatConditionsthrowthrowExp isWildCardAlt isWildCardPattmpNamethunkmonad stmtsThunk unserializeforceforceInlinableresolveOpToVarhjIdent bindToplevel emitExport parseResultconfigreadAllFromProcessio$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[]