y k      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  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 ELiteral value type. KExpression type. `Statement type. i&The JavaScript FFI interfacing monad. j 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. V?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~S?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~S`hgfedcbaK_^]\[ZYXWVUTSRQPONMLEJIHGFj|{zyxwvutsrqponmlk}~i?DCBA@?DCBA@EJIHGFK_^]\[ZYXWVUTSRQPONML`hgfedcbaij|{zyxwvutsrqponmlk}~ Safe-Infered)Contains allowed foreign function types. Declare a foreign action. Declare a foreign function. Declare a foreign function. Declare a foreign function. Declare a foreign function. Declare a foreign action. Declare a foreign function. 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 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. 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 property.  The object.  The value. Bottom. NoneJust to satisfy GHC. Just to satisfy GHC. K  !"#$%&'()*+,-./0123456789:;<=>?@ABCDiKi?DCBA@    5 !"#$%&'()*+,./012346789:;<=>-  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-InferedCBThese 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 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. PThe function parameters. The function name. The body of the function. A new optimized function body.  MMI             !" #$ %& %' %( ) * + , - . / 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr\stuvwxyz{|}~u                fay-0.3.1.1Language.Fay.PreludeLanguage.Fay.ShowLanguage.Fay.TypesLanguage.Fay.FFI Language.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_ FayReturnTypeFayNoneFayBool FayStringFayListFayArrayJsLitJsBool JsFloatingJsIntJsStrJsCharJsExpJsInfixJsEqJsIndex JsInstanceOf JsThrowExpJsNewJsListJsUpdatePropExternJsGetPropExtern JsUpdateProp JsGetPropJsParen JsSequenceJsNull JsTernaryIfJsAppJsFun JsRawNameJsNameJsStmt JsContinue JsSetPropJsUpdateJsWhileJsThrow JsEarlyReturnJsIfJsVarFay CompileErrorFfiNeedsTypeSigRecursiveDoUnsupportedInvalidDoBlockLetUnsupportedUnsupportedModuleSyntax EmptyDoBlockUnsupportedGuardedAltsUnsupportedRhsUnsupportedPatternUnsupportedOperatorUnsupportedLetBindingUnsupportedLiteralUnsupportedExpressionUnsupportedWhereInMatchUnsupportedMatchSyntaxUnsupportedExportSpecUnsupportedDeclaration ParseError PrintableprintJS CompilesTo compileToJsParamCompile unCompile CompileState stateConfig stateExportsstateExportAllstateModuleName CompileConfig configTCOconfigInlineForceconfigFlattenAppsconfigExportBuiltinsForeignJsPtr foreignFay foreignPure foreignValue foreignPropforeignPropFayforeignMethodFay foreignMethodforeignSetProp fromInteger fromRational>>>>=failreturnArgType UnknownTypeBoolTypeListType DoubleType StringTypeJsType FunctionTypecompile runCompile compileViaStr compileToAstcompileFromStr printCompile compileModule compileImport compileDecls compileDeclcompilePatBindcompileNormalPatBindcompileFFIFunccompileFFIMethodcompileFFISetProp compileFFI serializefunctionTypeArgs typeAritycompileDataDeclqnameunnamecompileFunCaseoptimizeTailCallsflattenexpandprettyPrintFile 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[]