]Q      !"#$%&'()*+,-./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. pPrint some value. r2Just a convenience class to generalize the parsing/ printing of  various types of syntax. t2To be used to force name sanitization eventually. u*Convenience type for function parameters. v Convenience/ doc type. A=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz>=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz>U\[ZYXWVCTSRQPONMLKJIHGFED=BA@?>ut^onmlkjihgfedcba`_vrspq]wxyz=BA@?>CTSRQPONMLKJIHGFEDU\[ZYXWV]^onmlkjihgfedcba`_pqrstuvwxyz 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-Infered&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. 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 Haskell module. Compile the given import. Compile Haskell declaration. 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. DCompile a function which pattern matches (causing a case analysis). &Optimize functions in tail-call form. &Compile a right-hand-side expression. !Compile a pattern match binding. Compile Haskell expression. 8Compile the given pattern against the given expression. 8Compile the given pattern against the given expression. 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. Parse result. LThe function parameters. The function name. The body of the function. A new optimized function body. IIE            !" #$ %& %' %( ) * + , - . / 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgThijklmnopqrstuvwxyz{|}~j  fay-0.1.1.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 JsContinueJsUpdateJsWhileJsThrow JsEarlyReturnJsIfJsVarFay CompileErrorFfiNeedsTypeSigRecursiveDoUnsupportedInvalidDoBlockLetUnsupportedUnsupportedModuleSyntax EmptyDoBlockUnsupportedGuardedAltsUnsupportedRhsUnsupportedPatternUnsupportedOperatorUnsupportedLetBindingUnsupportedLiteralUnsupportedExpressionUnsupportedWhereInMatchUnsupportedMatchSyntaxUnsupportedDeclaration ParseError PrintableprintJS CompilesTo compileToJsParamCompileConfig configTCOconfigInlineForceForeignJsPtr foreignFay foreignPureforeignMethodFay foreignMethod fromInteger fromRational>>>>=failreturnArgType UnknownTypeBoolTypeListType DoubleType StringTypeJsType FunctionTypecompile runCompile compileViaStr compileToAstcompileFromStr compileModule compileImport compileDecls compileDeclcompilePatBindcompileNormalPatBindcompileFFIFunccompileFFIMethod compileFFI serializefunctionTypeArgs typeAritycompileDataDeclqnameunnamecompileFunCaseoptimizeTailCallsflattenexpand compileRhscompileFunMatch compileExp compileApp optimizeAppcompileInfixApp compileList compileIf compileLambda compileCasecompileDoBlock compileStmt compilePatAlt compilePat compilePLit equalExps isConstant compilePApp compilePListcompileInfixPatcompileGuardedAlt compileLetcompileLetDecl compileLit uniqueNamesthenmoptimizePatConditionsthrowthrowExp isWildCardAlt isWildCardPattmpNamethunkmonad stmtsThunk unserializeforceforceInlinableresolveOpToVarhjIdent parseResultreadAllFromProcessio$fExceptionCompileError$fErrorCompileError$fDefaultConfig $fForeign(->) $fForeignFay$fForeignJsPtr $fForeign[] $fForeignBool $fForeignChar$fForeignDouble $fForeign() jsEncodeName$fIsStringQName$fIsStringModuleName$fPrintableJsExp$fPrintableJsStmt $fPrintable[]$fPrintableName$fPrintableModuleName$fPrintableSpecialCon$fPrintableQName$fPrintableJsLit$fCompilesToExpJsExp$fCompilesToDecl[]$fCompilesToModule[]