S)E      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Infered Safe-Infered      experimentalgershomb@gmail.comNone6Things that can be marshalled into javascript values. 0 Instantiate for any necessary data structures. 5Compos and ops for generic traversal as defined over  the JMacro ADT. 1Union type to allow regular traversal by compos. #:Utility class to coerce the ADT into a regular structure. & Identifiers (Values 2 Expressions > Statements VIGiven an optional prefix, fills in all free variable names with a supply # of names generated by the prefix. W9Apply a transformation to a fully saturated syntax tree, C taking care to return any free variables back to their free state ? following the transformation. As the transformation preserves 8 free variables, it is hygienic. Cannot be used nested. XaTakes a fully saturated expression and transforms it to use unique variables that respect scope. Y4Render a syntax tree as a pretty-printable document 4 (simply showing the resultant doc produces a nice,  well formatted String). ZRender a syntax tree as a pretty-printable document, using a given prefix to all generated names. Use this with distinct prefixes to ensure distinct generated names between independent calls to render(Prefix)Js. [>Create a new anonymous function. The result is an expression.  Usage:  jLam $   x y -> {JExpr involving x and y} \5Introduce a new variable into scope for the duration > of the enclosed expression. The result is a block statement.  Usage:  jVar $   x y -> {JExpr involving x and y} ]HIntroduce a new variable with optional type into scope for the duration > of the enclosed expression. The result is a block statement.  Usage:  jVar $   x y -> {JExpr involving x and y} ^Create a for in statement.  Usage:  jForIn {expression} $ x -> {block involving x} _As with jForIn but creating a " for each in" statement.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghT !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghR"! #$%&'( 10/.-,+*)2 =<;:9876543>MLKJIHGFEDCBA@?NOPQRSTUVWXYZ[\]^_`abcdefgh Safe-Inferedijklmnopqrstuvwxyijklmnopqrstuvwxyijklmnqporstuvwxyijklmnopqrstuvwxy  experimentalgershomb@gmail.comNonez.QuasiQuoter for a block of JMacro statements. {%QuasiQuoter for a JMacro expression. z{|z{|z{| experimentalgershomb@gmail.com Safe-Infered}XThis provides a set of basic functional programming primitives, a few utility functions _ and, more importantly, a decent sample of idiomatic jmacro code. View the source for details. }}}}NoneK~F~F~@~ experimentalgershomb@gmail.com Safe-InferedeEither a success or failure (with code). Generally would be turned back into a proper HTTP response. A String containing a json representation of function arguments encoded as a list of parameters. Generally would be passed as part of an HTTP request. IProduce a pair of (ServerFunction, ClientFunction) from a function in IO id with a helpful type.   experimentalgershomb@gmail.com Safe-Inferedd  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPRSTUVWXYZ[\]^_`abcdefghz{|}Wz{|>MLKJIHGFEDCBA@?2=<;:9876543(10/.-,+*)&'NOP#$%"! RSTUWXYZa[\]b^_`QhcdefVg     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       jmacro-0.5.7 Language.Javascript.JMacro.TypesLanguage.Javascript.JMacroLanguage.Javascript.JMacro.Util"Language.Javascript.JMacro.Prelude$Language.Javascript.JMacro.TypeCheckLanguage.Javascript.JMacro.Rpc"Language.Javascript.JMacro.ParseTHLanguage.Javascript.JMacro.BaseLanguage.Javascript.JMacro.QQ JLocalType ConstraintSuperSubJTypeJTForallJTFree JTImpossibleJTRigidJTRecordJTMapJTListJTFuncJTStatJTBoolJTStringJTNumVarRef parseType runTypeParseranyTypeToStattoStatToJExprtoJExprtoJExprFromListJsToDocjsToDocComposcompos MultiCompMIdentMValMExprMStatJMacrotoMCfromMCIdentStrIJValUnsatValJFuncJHashJRegExJStrJIntJDoubleJListJVarJExprTypeExprAntiExpr UnsatExprApplExprNewExprIfExpr PPostExpr InfixExprIdxExprSelExprValExprJStat BreakStat ForeignStatAntiStat UnsatBlock AssignStat PPostStatApplStat BlockStatTryStat SwitchStat ForInStat WhileStatIfStat ReturnStatDeclStat IdentSupplyISrunIdentSupply expr2statcomposOp composOpM composOpM_ composOpFold jsSaturate withHygienescopifyrenderJsrenderPrefixJsjLamjVarjVarTyjForIn jForEachInjTryCatchFinallyjsvjForjhEmptyjhSinglejhAdd jhFromList jtFromListnullStat.<>=:$$$==!=<&&nullnewif'ifElsewhilereturn toJExprListjstrjmacrojmacroEparseJM jmPrelude JTypeCheck typecheckTMonadTCStateTCStc_envtc_varstc_stack tc_frozentc_varCt tc_contextStoreVal SVConstrainedSVTypeisLeft partitionOutzipWithOrChange zipWithOrIdM unionWithMintersectionWithM tcStateEmpty evalTMonad runTMonad withContext traversem_freeVarsWithNames prettyTypetyErr0tyErr1 tyErr2ext tyErr2Sub prettyEnvrunTypecheckRawrunTypecheckFull runTypecheck evalTypecheck typecheckMain addToStack newVarRefnewTyVar mapConstraint partitionCslookupConstraintsListinstantiateVarRef occursCheckcheckConstraints addConstraintcannonicalizeConstraintstryCloseFrozenVarswithLocalScope setFrozen frame2VarRefsaddEnv newVarDeclresolveTypeGen resolveTyperesolveTypeShallowintegrateLocalType lookupEnvfreeVarsinstantiateSchemeinstantiateRigidSchemecheckEscapedVars<:<<:>someUpperBoundsomeLowerBound=.=typecheckWithBlock CallWebRPC callWebRPC_ToWebRPC toWebRPC_Response BadResponse GoodResponseRequest WebRPCDescmkWebRPCasIO parseHSExp$fToJExprJSValue $fToStat[] $fToStatJExpr $fToStat[]0 $fToStatJStat $fNumJExpr$fToJExpr(,,,,,)$fToJExpr(,,,,)$fToJExpr(,,,) $fToJExpr(,,) $fToJExpr(,) $fToJExprChar$fToJExprInteger $fToJExprInt$fToJExprDouble $fToJExprMap $fToJExprJVal $fToJExprBool $fToJExpr()$fToJExprJExpr $fToJExpr[] $fJsToDoc(,)$fJsToDocJType $fJsToDoc[] $fJsToDoc[]0$fJsToDocIdent $fJsToDocJVal$fJsToDocJExpr$fJsToDocJStat $fToSat(->) $fToSat[] $fToSatJExpr $fToSatJStat $fToSat[]0 $fComposJType$fComposMultiComp $fJMacro[] $fJMacroJStat $fJMacroJExpr $fJMacroJVal $fJMacroIdent $fMonoidJStat$fShowIdentSupply$fOrdIdentSupply$fEqIdentSupply$fFunctorIdentSupply$fDataIdentSupply$fJTypeCheckJStat$fJTypeCheckJVal$fJTypeCheckJExpr$fApplicativeTMonad $fShowTCState$fCallWebRPC(->)(->)$fCallWebRPCIOJExpr$fToWebRPC(->) $fToWebRPCIO