[".begin",["define-macro","syntax-rules",["lambda",["form","env"],["macro-match","form","env",[[".quasiquote",["syntax-rules",[".sliceunquote","patterns"]]],[".list",[".quote",".syntactic-closure"],[".quasiquote",["lambda",["form","env"],["begin",["local",["dirty","s"],[".list",[".quote",".syntactic-closure"],"s","env"]],["macro-match","form","env",[".sliceunquote",[[".","patterns",[".quote","map"]],"formOf"]]]]]],"env"]],["otherwise",["throw",["new","FormInvalidError","form",[".quote","Invalid Macro Difinition"]]]]]]],["define-macro","the-form-is-invalid",["syntax-rules",[[".quasiquote",["the-form-is-invalid"]],["dirty",[".quasiquote",["throw",["new","FormInvalidError","form",[".quote","Form Invalid"]]]]]],[[".quasiquote",["the-form-is-invalid",[".unquote","reason"]]],["dirty",[".quasiquote",["throw",["new","FormInvalidError","form",[".unquote","reason"]]]]]]]],["define-macro","set-operator-info",["syntax-rules",[[".quasiquote",["set-operator-info",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]],[".unquote",[".list",[".quote",".quote"],"associvity"]]]],["begin",[[".",[".","env",[".quote","operatorInfo"]],[".quote","put"]],["formOf","operator"],[".xhash",[[".quote","priority"],["formOf","priority"]],[[".quote","associvity"],["formOf","associvity"]]]],["return","nothing"]]],[[".quasiquote",["set-operator-info",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]]]],["begin",[[".",[".","env",[".quote","operatorInfo"]],[".quote","put"]],["formOf","operator"],[".xhash",[[".quote","priority"],["formOf","priority"]],[[".quote","associvity"],[".quote","never"]]]],["return","nothing"]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","define-operator",["syntax-rules",[[".quasiquote",["define-operator",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]],[".unquote",[".list",[".quote",".quote"],"associvity"]],[".unquote","body"]]],["dirty",[".quasiquote",["begin",["set-operator-info",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",[".list",[".quote",".quote"],["formOf","priority"]]],[".unquote",[".list",[".quote",".quote"],["formOf","associvity"]]]],["define-macro",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",["formOf","body"]]]]]]],[[".quasiquote",["define-operator",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]],[".unquote","body"]]],["dirty",[".quasiquote",["begin",["set-operator-info",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",[".list",[".quote",".quote"],["formOf","priority"]]]],["define-macro",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",["formOf","body"]]]]]]],[[".quasiquote",["define-operator","infix",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]],[".unquote",[".list",[".quote",".quote"],"associvity"]],[".unquote","body"]]],["dirty",[".quasiquote",["begin",["set-operator-info",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",[".list",[".quote",".quote"],["formOf","priority"]]],[".unquote",[".list",[".quote",".quote"],["formOf","associvity"]]]],["define-macro",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",["formOf","body"]]]]]]],[[".quasiquote",["define-operator","infix",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote",[".list",[".quote",".quote"],"priority"]],[".unquote","body"]]],["dirty",[".quasiquote",["begin",["set-operator-info",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",[".list",[".quote",".quote"],["formOf","priority"]]]],["define-macro",[".unquote",[".list",[".quote",".quote"],["formOf","operator"]]],[".unquote",["formOf","body"]]]]]]],[[".quasiquote",["define-operator","prefix",[".unquote",[".list",[".quote",".quote"],"operator"]],[".unquote","body"]]],["dirty",[".quasiquote",["begin",["define-macro",[".unquote",[".list",[".quote",".quote"],[".operatorPiece",[".quote",".prefix."],"+",["formOf","operator"]]]],[".unquote",["formOf","body"]]]]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","its",["syntax-rules",[[".quasiquote",["its",[".unquote","property"]]],["return",[".quasiquote",["let",["t",[".unquote","property"]],["lambda",["x"],[".","x","t"]]]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","call-its",["syntax-rules",[[".quasiquote",["call-its",[".unquote","property"]]],["return",[".quasiquote",["let",["t",[".unquote","property"]],["lambda",["x"],[[".","x","t"]]]]]]],[[".quasiquote",["call-its",[".unquote","property"],[".sliceunquote","args"]]],["return",[".quasiquote",["let",["t",[".unquote","property"]],["a",[".list",[".sliceunquote","args"]]],["lambda",["x"],[[".",[".","x","t"],[".quote","apply"]],"x","a"]]]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","do",["syntax-rules",[[".quasiquote",["do",[".sliceunquote","stmts"]]],["begin",["local","pairs",[".list"]],["local","body",[[".","stmts",[".quote","map"]],"formOf"]],["if",[".operatorPiece",[".","stmts",[".quote","length"]],">=",[".quote",1]],["begin",["local","lastStatement",["formOf",[".","stmts",[".operatorPiece",[".","stmts",[".quote","length"]],"-",[".quote",1]]]]],["if",[".operatorPiece",[".","lastStatement",[".quote",0]],"==",[".quote","where"]],["begin",["set","pairs",[[".","lastStatement",[".quote","slice"]],[".quote",1]]],[[".","body",[".quote","pop"]]]]]]],[[".","pairs",[".quote","push"]],[".quasiquote",["begin",[".sliceunquote","body"]]]],["dirty",[".quasiquote",["letrec",[".sliceunquote","pairs"]]]]]]]],["define-macro","getAllKeys",["begin",["local","exoticAST",[".xhash",[[".quote","type"],[".quote","FunctionExpression"]],[[".quote","id"],"null"],[[".quote","params"],[".list",[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","o"]]]]],[[".quote","defaults"],[".list"]],[[".quote","body"],[".xhash",[[".quote","type"],[".quote","BlockStatement"]],[[".quote","body"],[".list",[".xhash",[[".quote","type"],[".quote","VariableDeclaration"]],[[".quote","declarations"],[".list",[".xhash",[[".quote","type"],[".quote","VariableDeclarator"]],[[".quote","id"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","a"]]]],[[".quote","init"],[".xhash",[[".quote","type"],[".quote","ArrayExpression"]],[[".quote","elements"],[".list"]]]]]]],[[".quote","kind"],[".quote","var"]]],[".xhash",[[".quote","type"],[".quote","ForInStatement"]],[[".quote","left"],[".xhash",[[".quote","type"],[".quote","VariableDeclaration"]],[[".quote","declarations"],[".list",[".xhash",[[".quote","type"],[".quote","VariableDeclarator"]],[[".quote","id"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","k"]]]],[[".quote","init"],"null"]]]],[[".quote","kind"],[".quote","var"]]]],[[".quote","right"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","o"]]]],[[".quote","body"],[".xhash",[[".quote","type"],[".quote","BlockStatement"]],[[".quote","body"],[".list",[".xhash",[[".quote","type"],[".quote","ExpressionStatement"]],[[".quote","expression"],[".xhash",[[".quote","type"],[".quote","CallExpression"]],[[".quote","callee"],[".xhash",[[".quote","type"],[".quote","MemberExpression"]],[[".quote","computed"],"false"],[[".quote","object"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","a"]]]],[[".quote","property"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","push"]]]]]],[[".quote","arguments"],[".list",[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","k"]]]]]]]]]]]],[[".quote","each"],"false"]],[".xhash",[[".quote","type"],[".quote","ReturnStatement"]],[[".quote","argument"],[".xhash",[[".quote","type"],[".quote","Identifier"]],[[".quote","name"],[".quote","a"]]]]]]]]],[[".quote","rest"],"null"],[[".quote","generator"],"false"],[[".quote","expression"],"false"]]],["local","t",[[".","definingEnv",[".quote","newt"]]]],["local","ijp",[".list",[".quote",".begin"]]],["set",[".","coinit",[".quote","injectForm"]],[".quasiquote",["begin",[".unquote",[".list",[".quote",".preserve"],"ijp"]]]]],["define",["used"],["begin",["if",["not",[".","ijp",[".quote",1]]],["set",[".","ijp",[".quote",1]],["ex",[".quasiquote",["set",[".unquote","t"],[".unquote",[".list",[".quote",".preserve"],[".list",[".quote",".exotic"],"exoticAST"]]]]],"definingEnv"]]]]],["local","f",["syntax-rules",[[".quasiquote",["getAllKeys"]],[".quasiquote",[".list"]]],[[".quasiquote",["getAllKeys",[".unquote","obj"]]],["begin",["used"],[".quasiquote",[[".unquote","t"],[".unquote","obj"]]]]],[[".quasiquote",["getAllKeys",[".unquote","obj"],[".sliceunquote","unused"]]],["begin",["used"],[".quasiquote",[[".unquote","t"],[".unquote","obj"]]]]],["otherwise",["the-form-is-invalid"]]]],["set",[[".","f",[".quote","invokeAsAtom"]]],["begin",["used"],"t"]],["return","f"]]],["define-macro","items-of",["begin",["local","ijp",[".list",[".quote",".begin"],"nothing","nothing","nothing","nothing"]],["set",[".","coinit",[".quote","injectForm"]],[".quasiquote",["begin",[".unquote",[".list",[".quote",".preserve"],"ijp"]]]]],["local","t1",[[".","definingEnv",[".quote","newt"]]]],["define",["use","id"],["match","id",[[".quote","items-of"],["if",["not",[".","ijp",[".quote",1]]],["set",[".","ijp",[".quote",1]],["ex",[".quasiquote",["set",[".unquote","t1"],["lambda",["t"],["begin",["local","n",[".","t",[".quote","length"]]],["for",["local","i",[".quote",0]],[".operatorPiece","i","<","n"],[".operatorPiece","i","=","i","+",[".quote",1]],["yield",[".","t","i"]]]]]]],"definingEnv"]]]]]],["return",["syntax-rules",[[".quasiquote",["items-of",[".unquote","obj"]]],["begin",["use",[".quote","items-of"]],[".quasiquote",[[".unquote","t1"],[".unquote","obj"]]]]],["otherwise",["throw",["new","FormInvalidError","form",[".quote","Invalid form about [items-of]"]]]]]]]],["define-macro","pairs-of",["begin",["local","ijp",[".list",[".quote",".begin"],"nothing","nothing","nothing","nothing"]],["local","t-eigen",[[".","definingEnv",[".quote","newt"]]]],["local","t-all",[[".","definingEnv",[".quote","newt"]]]],["set",[".","coinit",[".quote","injectForm"]],[".quasiquote",["begin",[".unquote",[".list",[".quote",".preserve"],"ijp"]]]]],["define",["use","id"],["match","id",[[".quote","pairs-of-eigen"],["begin",["if",["not",[".","ijp",[".quote",1]]],["set",[".","ijp",[".quote",1]],["ex",[".quasiquote",["set",[".unquote","t-eigen"],["lambda",["t"],["begin",["if",[".operatorPiece","t","<@","Array"],["then",["local","n",[".","t",[".quote","length"]]],["for",["local","i",[".quote",0]],[".operatorPiece","i","<","n"],[".operatorPiece","i","=","i","+",[".quote",1]],["yield",[".list","i",[".","t","i"]]]]],["else",["local","a",[[".","Object",[".quote","keys"]],"t"]],["local","n",[".","a",[".quote","length"]]],["for",["local","i",[".quote",0]],[".operatorPiece","i","<","n"],[".operatorPiece","i","=","i","+",[".quote",1]],["yield",[".list",[".","a","i"],[".","t",[".","a","i"]]]]]]]]]]],"definingEnv"]]],["return","t-eigen"]]],[[".quote","pairs-of-all"],["begin",["if",["not",[".","ijp",[".quote",2]]],["set",[".","ijp",[".quote",2]],["ex",[".quasiquote",["set",[".unquote","t-all"],["lambda",["t"],["begin",["local","a",["getAllKeys","t"]],["local","n",[".","a",[".quote","length"]]],["for",["local","i",[".quote",0]],[".operatorPiece","i","<","n"],[".operatorPiece","i","=","i","+",[".quote",1]],["yield",[".list",[".","a","i"],[".","t",[".","a","i"]]]]]]]]],"definingEnv"]]],["return","t-all"]]]]],["return",["syntax-rules",[[".quasiquote",["pairs-of",[".unquote","obj"]]],["begin",[".quasiquote",[[".unquote",["use",[".quote","pairs-of-eigen"]]],[".unquote","obj"]]]]],[[".quasiquote",["pairs-of","all",[".unquote","obj"]]],["begin",[".quasiquote",[[".unquote",["use",[".quote","pairs-of-all"]]],[".unquote","obj"]]]]],["otherwise",["throw",["new","FormInvalidError","form",[".quote","Invalid form about [pairs-of]"]]]]]]]],["define-macro","range",["begin",["local","ijp",[".list",[".quote",".begin"],"nothing","nothing","nothing","nothing"]],["set",[".","coinit",[".quote","injectForm"]],[".quasiquote",["begin",[".unquote",[".list",[".quote",".preserve"],"ijp"]]]]],["local","t1",[[".","definingEnv",[".quote","newt"]]]],["local","t2",[[".","definingEnv",[".quote","newt"]]]],["local","t3",[[".","definingEnv",[".quote","newt"]]]],["local","t4",[[".","definingEnv",[".quote","newt"]]]],["define",["use","id"],["match","id",[[".quote","upto"],["if",["not",[".","ijp",[".quote",1]]],["set",[".","ijp",[".quote",1]],["ex",[".quasiquote",["set",[".unquote","t1"],["lambda",["lo","hi"],["begin",["for",["local","j","lo"],[".operatorPiece","j","<","hi"],[".operatorPiece","j","=","j","+",[".quote",1]],["yield","j"]]]]]],"definingEnv"]]]],[[".quote","uptill"],["if",["not",[".","ijp",[".quote",2]]],["set",[".","ijp",[".quote",2]],["ex",[".quasiquote",["set",[".unquote","t2"],["lambda",["lo","hi"],["begin",["for",["local","j","lo"],[".operatorPiece","j","<=","hi"],[".operatorPiece","j","=","j","+",[".quote",1]],["yield","j"]]]]]],"definingEnv"]]]],[[".quote","downto"],["if",["not",[".","ijp",[".quote",3]]],["set",[".","ijp",[".quote",3]],["ex",[".quasiquote",["set",[".unquote","t3"],["lambda",["lo","hi"],["begin",["for",["local","j","lo"],[".operatorPiece","j",">","hi"],[".operatorPiece","j","=","j","-",[".quote",1]],["yield","j"]]]]]],"definingEnv"]]]],[[".quote","downtill"],["if",["not",[".","ijp",[".quote",4]]],["set",[".","ijp",[".quote",4]],["ex",[".quasiquote",["set",[".unquote","t4"],["lambda",["lo","hi"],["begin",["for",["local","j","lo"],[".operatorPiece","j",">=","hi"],[".operatorPiece","j","=","j","-",[".quote",1]],["yield","j"]]]]]],"definingEnv"]]]]]],["return",["syntax-rules",[[".quasiquote",["range",[".unquote","low"],[".unquote","high"]]],["begin",["use",[".quote","upto"]],[".quasiquote",[[".unquote","t1"],[".unquote","low"],[".unquote","high"]]]]],[[".quasiquote",["range",[".unquote","low"],"till",[".unquote","high"]]],["begin",["use",[".quote","uptill"]],[".quasiquote",[[".unquote","t2"],[".unquote","low"],[".unquote","high"]]]]],[[".quasiquote",["range",[".unquote","low"],"downto",[".unquote","high"]]],["begin",["use",[".quote","downto"]],[".quasiquote",[[".unquote","t3"],[".unquote","low"],[".unquote","high"]]]]],[[".quasiquote",["range",[".unquote","low"],"downtill",[".unquote","high"]]],["begin",["use",[".quote","downtill"]],[".quasiquote",[[".unquote","t4"],[".unquote","low"],[".unquote","high"]]]]],["otherwise",["throw",["new","FormInvalidError","form",[".quote","Invalid form about [range]"]]]]]]]],["define-macro","foreach",["syntax-rules",[[".quasiquote",["foreach",["let",[".unquote","varid"]],[".unquote","body"]]],["throw",["new","FormInvalidError","form",[".quote","Invalid form about [foreach]"]]]],[[".quasiquote",["foreach",["let",[".unquote","varid"],[".unquote","enumRange"]],[".unquote","body"]]],["begin",["local","t",[[".","env",[".quote","newt"]]]],["return",[".list",[".quote",".syntactic-closure"],[".quasiquote",["foreach",[".unquote","t"],[".unquote",["formOf","enumRange"]],["let",[[".unquote",["formOf","varid"]],[".unquote","t"]],[".unquote",["formOf","body"]]]]],"env"]]]],[[".quasiquote",["foreach",[[".unquote","varid"],[".unquote","enumRange"]],[".unquote","body"]]],[".list",[".quote",".syntactic-closure"],[".quasiquote",["foreach",[".unquote",["formOf","varid"]],[".unquote",["formOf","enumRange"]],[".unquote",["formOf","body"]]]],"env"]],[[".quasiquote",["foreach",[".unquote","varid"],["range",[".unquote","low"],[".unquote","high"]],[".unquote","body"]]],[".operatorPiece",[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","range"]],"===",[[".",[".","definingEnv",[".quote","macros"]],[".quote","get"]],[".quote","range"]]],["begin",["local","lo",[[".","env",[".quote","newt"]]]],["local","hi",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","lo"],[".unquote","low"]],["local",[".unquote","hi"],[".unquote","high"]],["for",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".unquote","lo"]]],"env"]],[".operatorPiece",[".unquote",["formOf","varid"]],"<",[".unquote","hi"]],[".operatorPiece",[".unquote",["formOf","varid"]],"=",[".unquote",["formOf","varid"]],"+",[".quote",1]],["begin",[".unquote","body"]]]]]]]],[[".quasiquote",["foreach",[".unquote","varid"],["range",[".unquote","low"],"till",[".unquote","high"]],[".unquote","body"]]],[".operatorPiece",[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","range"]],"===",[[".",[".","definingEnv",[".quote","macros"]],[".quote","get"]],[".quote","range"]]],["begin",["local","lo",[[".","env",[".quote","newt"]]]],["local","hi",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","lo"],[".unquote","low"]],["local",[".unquote","hi"],[".unquote","high"]],["for",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".unquote","lo"]]],"env"]],[".operatorPiece",[".unquote",["formOf","varid"]],"<=",[".unquote","hi"]],[".operatorPiece",[".unquote",["formOf","varid"]],"=",[".unquote",["formOf","varid"]],"+",[".quote",1]],["begin",[".unquote","body"]]]]]]]],[[".quasiquote",["foreach",[".unquote","varid"],["range",[".unquote","low"],"downto",[".unquote","high"]],[".unquote","body"]]],[".operatorPiece",[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","range"]],"===",[[".",[".","definingEnv",[".quote","macros"]],[".quote","get"]],[".quote","range"]]],["begin",["local","lo",[[".","env",[".quote","newt"]]]],["local","hi",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","lo"],[".unquote","low"]],["local",[".unquote","hi"],[".unquote","high"]],["for",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".unquote","lo"]]],"env"]],[".operatorPiece",[".unquote",["formOf","varid"]],">",[".unquote","hi"]],[".operatorPiece",[".unquote",["formOf","varid"]],"=",[".unquote",["formOf","varid"]],"-",[".quote",1]],["begin",[".unquote","body"]]]]]]]],[[".quasiquote",["foreach",[".unquote","varid"],["range",[".unquote","low"],"downtill",[".unquote","high"]],[".unquote","body"]]],[".operatorPiece",[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","range"]],"===",[[".",[".","definingEnv",[".quote","macros"]],[".quote","get"]],[".quote","range"]]],["begin",["local","lo",[[".","env",[".quote","newt"]]]],["local","hi",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","lo"],[".unquote","low"]],["local",[".unquote","hi"],[".unquote","high"]],["for",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".unquote","lo"]]],"env"]],[".operatorPiece",[".unquote",["formOf","varid"]],">=",[".unquote","hi"]],[".operatorPiece",[".unquote",["formOf","varid"]],"=",[".unquote",["formOf","varid"]],"-",[".quote",1]],["begin",[".unquote","body"]]]]]]]],[[".quasiquote",["foreach",[".unquote","varid"],["items-of",[".unquote","enumList"]],[".unquote","body"]]],[".operatorPiece",[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","items-of"]],"===",[[".",[".","definingEnv",[".quote","macros"]],[".quote","get"]],[".quote","items-of"]]],["begin",["local","tR",[[".","env",[".quote","newt"]]]],["local","tN",[[".","env",[".quote","newt"]]]],["local","t",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","tR"],[".unquote","enumList"]],["local",[".unquote","tN"],[".",[".unquote","tR"],[".quote","length"]]],["local",[".unquote","t"],[".quote",0]],["while",[".operatorPiece",[".unquote","t"],"<",[".unquote","tN"]],["begin",["begin",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".",[".unquote","tR"],[".unquote","t"]]]],"env"]]],["begin",[".unquote","body"]],[".operatorPiece",[".unquote","t"],"=",[".unquote","t"],"+",[".quote",1]]]]]]]]],[[".quasiquote",["foreach",[".unquote","varid"],[".unquote","enumRange"],[".unquote","body"]]],["begin",["local","tR",[[".","env",[".quote","newt"]]]],["local","t",[[".","env",[".quote","newt"]]]],["return",[".quasiquote",["begin",["local",[".unquote","tR"],[[".",[".unquote","enumRange"],[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Symbol"]]],[".quote","iterator"]]]]],["local",[".unquote","t"],"nothing"],["while",[".prefix.!",[".",["set",[".unquote","t"],[[".",[".unquote","tR"],[".quote","next"]]]],[".quote","done"]]],["begin",["begin",[".unquote",[".list",[".quote",".syntactic-closure"],[".quasiquote",["local",[".unquote",["formOf","varid"]],[".",[".unquote","t"],[".quote","value"]]]],"env"]]],["begin",[".unquote","body"]]]]]]]]],["otherwise",["the-form-is-invalid",[".quote","Invalid [foreach] Construction."]]]]],["define-macro","extern",["syntax-rules",[[".quasiquote",["extern",[".unquote","_id"]]],["atom","_id"],["let",["id",["formOf","_id"]],["begin",[[".","externEnv",[".quote","declare"]],"id"],["return",["dirty",[".quasiquote",["local",[".unquote","id"],[".unquote",[[".","externEnv",[".quote","use"]],"id"]]]]]]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","import",["syntax-rules",[[".quasiquote",["import",[".unquote",[".list",[".quote",".quote"],"module"]],"as",[".unquote","name"]]],["dirty",[".quasiquote",["local",[".unquote",["formOf","name"]],[".unquote",[".list",[".quote",".import"],["formOf","module"]]]]]]],[[".quasiquote",["import","as",[".unquote","name"],"from",[".unquote",[".list",[".quote",".quote"],"module"]]]],["dirty",[".quasiquote",["local",[".unquote",["formOf","name"]],[".unquote",[".list",[".quote",".import"],["formOf","module"]]]]]]],[[".quasiquote",["import",[".unquote","slot"],"from",[".unquote",[".list",[".quote",".quote"],"module"]]]],["atom","slot"],["dirty",[".quasiquote",["local",[".unquote",["formOf","slot"]],[".",[".unquote",[".list",[".quote",".import"],["formOf","module"]]],[".quote","default"]]]]]],[[".quasiquote",["import",[".unquote","patterns"],"from",[".unquote",[".list",[".quote",".quote"],"module"]]]],["dirty",[".quasiquote",["local",["object",[".sliceunquote",["formOf","patterns"]]],[".unquote",[".list",[".quote",".import"],["formOf","module"]]]]]]],[[".quasiquote",["import",[".unquote",[".list",[".quote",".quote"],"module"]]]],["dirty",[".list",[".quote",".import"],["formOf","module"]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","export",["syntax-rules",[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","slot"],[".unquote","val"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","slot"]],[".unquote",["formOf","val"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[[".unquote","slot"],[".sliceunquote","pars"]],[".unquote","body"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",[".quasiquote",["local",[[".unquote",["formOf","slot"]],[".sliceunquote",[[".","pars",[".quote","map"]],"formOf"]]],[".unquote",["formOf","body"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","modifer"],[".unquote","slot"],[".unquote","val"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","modifier"]],[".unquote",["formOf","slot"]],[".unquote",["formOf","val"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","modifer"],[[".unquote","slot"],[".sliceunquote","pars"]],[".unquote","body"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","modifer"]],[[".unquote",["formOf","slot"]],[".sliceunquote",[[".","pars",[".quote","map"]],"formOf"]]],[".unquote",["formOf","body"]]]]]]]]],[[".quasiquote",["export",[".unquote","content"],"as",[".unquote","slot"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",["formOf","content"]]]]]],[[".quasiquote",["export","as",[".unquote","slot"],[".unquote","content"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote",["dirty",["formOf","content"]]]]]],[[".quasiquote",["export",[".unquote","slot"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote",".export"],["formOf","slot"]]],[".unquote","slot"]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","namespace",["syntax-rules",[[".quasiquote",["namespace",[".sliceunquote","body"]]],["begin",["return",[".quasiquote",["do",["define-macro","export",["syntax-rules",[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","slot"],[".unquote","val"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","slot"]],[".unquote",["formOf","val"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[[".unquote","slot"],[".sliceunquote","pars"]],[".unquote","body"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",[".quasiquote",["local",[[".unquote",["formOf","slot"]],[".sliceunquote",[[".","pars",[".quote","map"]],"formOf"]]],[".unquote",["formOf","body"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","modifer"],[".unquote","slot"],[".unquote","val"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","modifier"]],[".unquote",["formOf","slot"]],[".unquote",["formOf","val"]]]]]]]]],[[".quasiquote",["export",[[".unquote",[".operatorPiece",[".quasiquote","define"],"||",[".quasiquote","local"]]],[".unquote","modifer"],[[".unquote","slot"],[".sliceunquote","pars"]],[".unquote","body"]]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",[".quasiquote",["local",[".unquote",["formOf","modifer"]],[[".unquote",["formOf","slot"]],[".sliceunquote",[[".","pars",[".quote","map"]],"formOf"]]],[".unquote",["formOf","body"]]]]]]]]],[[".quasiquote",["export",[".unquote","content"],"as",[".unquote","slot"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",["formOf","content"]]]]]],[[".quasiquote",["export","as",[".unquote","slot"],[".unquote","content"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote",["dirty",["formOf","content"]]]]]],[[".quasiquote",["export",[".unquote","slot"]]],["atom","slot"],[".quasiquote",["set",[".unquote",[".list",[".quote","."],[".quote","exports"],[".list",[".quote",".quote"],["formOf","slot"]]]],[".unquote","slot"]]]],["otherwise",["the-form-is-invalid"]]]],["local","exports",[".xhash"]],["begin",[".sliceunquote",[[".","body",[".quote","map"]],"formOf"]]],["begin","exports"]]]]]]]],["define-macro","class",["syntax-rules",[[".quasiquote",["class",[".unquote","typename"],[".sliceunquote","_classBodyLines"]]],["atom","typename"],["begin",["local","bodylines",[[".","_classBodyLines",[".quote","map"]],"formOf"]],["local","Inherits","null"],["local","terms",[".list"]],["local","accessorAssignments",[".xhash"]],["define",["wrapPublicMethodBody","name","body"],[".quasiquote",["begin",["define-macro","super",["syntax-rules",[[".quasiquote",["super",[".sliceunquote","args"]]],[".quasiquote",[[".",[".",[".","Super",[".quote","prototype"]],[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]],[".quote","call"]],[".unquote",["dirty",[".quasiquote","this"]]],[".sliceunquote","args"]]]]]],[".prefix.*",[".unquote","body"]]]]],["define",["wrapPublicAccrssorBody","name","body"],[".quasiquote",["begin",["define-macro","super",["syntax-rules",[[".quasiquote",["super"]],["let",["t",[[".","env",[".quote","newt"]]]],[".quasiquote",["begin",["set","t",[".","Super",[".quote","prototype"]]],["while",[".operatorPiece","t","&&",[".prefix.!",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getOwnPropertyDescriptor"]],"t",[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]]]],["set","t",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getPrototypeOf"]],"t"]]],[[".",[".",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getOwnPropertyDescriptor"]],"t",[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]],[".quote","get"]],[".quote","call"]],[".unquote",["dirty",[".quasiquote","this"]]]]]]]],[[".quasiquote",["super",[".unquote","value"]]],["let",["t",[[".","env",[".quote","newt"]]]],[".quasiquote",["begin",["set","t",[".","Super",[".quote","prototype"]]],["while",[".operatorPiece","t","&&",[".prefix.!",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getOwnPropertyDescriptor"]],"t",[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]]]],["set","t",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getPrototypeOf"]],"t"]]],[[".",[".",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","getOwnPropertyDescriptor"]],"t",[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]],[".quote","set"]],[".quote","call"]],[".unquote",["dirty",[".quasiquote","this"]]],[".unquote","value"]]]]]]]],[".prefix.*",[".unquote","body"]]]]],["define",["wrapProtectedMethodBody","name","body"],[".quasiquote",["begin",["define-macro","super",["syntax-rules",[[".quasiquote",["super",[".sliceunquote","args"]]],[".quasiquote",[[".",[".",[".","Super",[".quote","prototype"]],[".",[".","Super",[".quote","protectedTerms"]],[".unquote",[".list",[".quote",".quote"],"name"],[".quote",2]]]],[".quote","call"]],[".unquote",["dirty",[".quasiquote","this"]]],[".sliceunquote","args"]]]]]],[".prefix.*",[".unquote","body"]]]]],["define",["ConstructorTerm","params","body"],["lambda",[".quasiquote",["set","Constructor",["function",[".unquote","params"],["begin",["define-macro","super",["syntax-rules",[[".quasiquote",["super",[".sliceunquote","args"]]],[".quasiquote",[[".","Super",[".quote","call"]],[".unquote",["dirty",[".quasiquote","this"]]],[".sliceunquote","args"]]]]]],[".prefix.*",[".unquote","body"]],["return","nothing"]]]]]]],["define",["PublicTerm","name","val"],["lambda",[],[".quasiquote",["set",[".",[".","Type",[".quote","prototype"]],[".unquote",[".list",[".quote",".quote"],"name"]]],[".unquote","val"]]]]],["define",["PublicAccessorTerm","kind","name","val"],["begin",["local","r",["lambda",[],[".quasiquote","nothing"]]],["if",["not",[".","accessorAssignments","name"]],["then",["local","f",[".xhash",[[".quote","get"],["if",[".","externEnv",[".quote","strict"]],[".quasiquote",["lambda",[],["throw",["+",[".quote","The property "],[".unquote",[".list",[".quote",".quote"],"name"]],[".quote"," is write-only."]]]]],[".quasiquote","nothing"]]],[[".quote","set"],["if",[".","externEnv",[".quote","strict"]],[".quasiquote",["lambda",[],["throw",["+",[".quote","The property "],[".unquote",[".list",[".quote",".quote"],"name"]],[".quote"," is read-only."]]]]],[".quasiquote","nothing"]]]]],["set",[".","accessorAssignments","name"],"f"],["set","r",["lambda",[],[".quasiquote",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","defineProperty"]],[".","Type",[".quote","prototype"]],[".unquote",[".list",[".quote",".quote"],"name"]],[".xhash",[[".quote","get"],[".unquote",[".",[".","accessorAssignments","name"],[".quote","get"]]]],[[".quote","set"],[".unquote",[".",[".","accessorAssignments","name"],[".quote","set"]]]]]]]]]]],["set",[".",[".","accessorAssignments","name"],"kind"],"val"],["return","r"]]],["define",["PrivateTerm","name","val"],["lambda",[],[".quasiquote",["begin",["local",[".unquote",[".operatorPiece",[".quote","__private_"],"+","name"]],["Symbol"]],["set",[".",[".","Type",[".quote","prototype"]],[".unquote",[".operatorPiece",[".quote","__private_"],"+","name"]]],[".unquote","val"]]]]]],["define",["ProtectedTerm","name","val"],["lambda",[],[".quasiquote",["begin",["if",["not",[".","protectedTerms",[".unquote",[".list",[".quote",".quote"],"name"]]]],["set",[".","protectedTerms",[".unquote",[".list",[".quote",".quote"],"name"]]],["Symbol"]]],["set",[".",[".","Type",[".quote","prototype"]],[".","protectedTerms",[".unquote",[".list",[".quote",".quote"],"name"]]]],[".unquote","val"]]]]]],["define",["StaticTerm","name","val"],["lambda",[],[".quasiquote",["set",[".","Type",[".unquote",[".list",[".quote",".quote"],"name"]]],[".unquote","val"]]]]],["define",["handleTerm","term"],["match","term",[[".quasiquote",["inherits",[".unquote","Super"],[".sliceunquote","indentedLines"]]],["begin",["set","Inherits","Super"],[[".","indentedLines",[".quote","forEach"]],"handleTerm"]]],[[".quasiquote",["define","public",["new",[".sliceunquote","params"]],[".unquote","body"]]],[[".","terms",[".quote","push"]],["ConstructorTerm","params","body"]]],[[".quasiquote",["define","public","get",[".unquote","name"],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["PublicAccessorTerm",[".quote","get"],"name",[".quasiquote",["lambda",[],[".unquote",["wrapPublicAccrssorBody","name","body"]]]]]]],[[".quasiquote",["define","public","get",[".unquote","name"]]],["atom","name"],["handleTerm",[".quasiquote",["define","public","get",[".unquote","name"],["private",[".unquote","name"]]]]]],[[".quasiquote",["define","public","set",[".unquote","name"],[".unquote","value"],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["PublicAccessorTerm",[".quote","set"],"name",[".quasiquote",["lambda",[[".unquote","value"]],[".unquote",["wrapPublicAccrssorBody","name","body"]]]]]]],[[".quasiquote",["define","public","set",[".unquote","name"]]],["atom","name"],["handleTerm",[".quasiquote",["define","public","set",[".unquote","name"],"value",["set",["private",[".unquote","name"]],"value"]]]]],[[".quasiquote",["define","public",[".unquote","modifer"],"get",[".unquote","name"],[".unquote","body"]]],["atom","name"],["begin",["if",["not",[".","accessorAssignments","name"]],["set",[".","accessorAssignments","name"],[".xhash",[[".quote","get"],[".quasiquote","nothing"]],[[".quote","set"],[".quasiquote","nothing"]]]]],["set",[".",[".","accessorAssignments","name"],[".quote","get"]],[".quasiquote",[[".unquote","modifer"],["lambda",[],[".unquote",["wrapPublicAccrssorBody","name","body"]]]]]]]],[[".quasiquote",["define","public",[".unquote","modifer"],"get",[".unquote","name"]]],["atom","name"],["handleTerm",[".quasiquote",["define","public",[".unquote","modifer"],"get",[".unquote","name"],["private",[".unquote","name"]]]]]],[[".quasiquote",["define","public",[".unquote","modifer"],"set",[".unquote","name"],[".unquote","value"],[".unquote","body"]]],["atom","name"],["begin",["if",["not",[".","accessorAssignments","name"]],["set",[".","accessorAssignments","name"],[".xhash",[[".quote","get"],[".quasiquote","nothing"]],[[".quote","set"],[".quasiquote","nothing"]]]]],["set",[".",[".","accessorAssignments","name"],[".quote","set"]],[".quasiquote",[[".unquote","modifer"],["lambda",[[".unquote","value"]],[".unquote",["wrapPublicAccrssorBody","name","body"]]]]]]]],[[".quasiquote",["define","public",[".unquote","modifer"],"set",[".unquote","name"]]],["atom","name"],["handleTerm",[".quasiquote",["define","public",[".unquote","modifer"],"set",[".unquote","name"],"value",["set",["private",[".unquote","name"]],"value"]]]]],[[".quasiquote",["define","public",[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],["begin",[[".","terms",[".quote","push"]],["PublicTerm","name",[".quasiquote",["lambda",[".unquote","params"],[".unquote",["wrapPublicMethodBody","name","body"]]]]]]]],[[".quasiquote",["define","public",[".unquote","modifer"],[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],["begin",[[".","terms",[".quote","push"]],["PublicTerm","name",[".quasiquote",[[".unquote","modifer"],["lambda",[".unquote","params"],[".unquote",["wrapPublicMethodBody","name","body"]]]]]]]]],[[".quasiquote",["define","public",[".unquote","name"],[".unquote","val"]]],["atom","name"],["begin",[[".","terms",[".quote","push"]],["PublicTerm","name","val"]]]],[[".quasiquote",["define","private",[".unquote","name"]]],["atom","name"],[[".","terms",[".quote","push"]],["PrivateTerm","name",[".quasiquote","nothing"]]]],[[".quasiquote",["define","private",[".unquote","name"],[".unquote","val"]]],["atom","name"],[[".","terms",[".quote","push"]],["PrivateTerm","name","val"]]],[[".quasiquote",["define","private",[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["PrivateTerm","name",[".quasiquote",["function",[".unquote","params"],[".unquote","body"]]]]]],[[".quasiquote",["define","private",[".unquote","modifer"],[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["PrivateTerm","name",[".quasiquote",[[".unquote","modifer"],["function",[".unquote","params"],[".unquote","body"]]]]]]],[[".quasiquote",["define","protected",[".unquote","name"]]],["atom","name"],[[".","terms",[".quote","push"]],["ProtectedTerm","name",[".quasiquote","nothing"]]]],[[".quasiquote",["define","protected",[".unquote","name"],[".unquote","val"]]],["atom","name"],[[".","terms",[".quote","push"]],["ProtectedTerm","name","val"]]],[[".quasiquote",["define","protected",[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["ProtectedTerm","name",[".quasiquote",["function",[".unquote","params"],[".unquote",["wrapProtectedMethodBody","name","body"]]]]]]],[[".quasiquote",["define","protected",[".unquote","modifer"],[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["ProtectedTerm","name",[".quasiquote",[[".unquote","modifer"],["function",[".unquote","params"],[".unquote",["wrapProtectedMethodBody","name","body"]]]]]]]],[[".quasiquote",["define","static",[".unquote","name"]]],["atom","name"],[[".","terms",[".quote","push"]],["StaticTerm","name",[".quasiquote","nothing"]]]],[[".quasiquote",["define","static",[".unquote","name"],[".unquote","val"]]],["atom","name"],[[".","terms",[".quote","push"]],["StaticTerm","name","val"]]],[[".quasiquote",["define","static",[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["StaticTerm","name",[".quasiquote",["function",[".unquote","params"],[".unquote","body"]]]]]],[[".quasiquote",["define","static",[".unquote","modifer"],[[".unquote","name"],[".sliceunquote","params"]],[".unquote","body"]]],["atom","name"],[[".","terms",[".quote","push"]],["StaticTerm","name",[".quasiquote",[[".unquote","modifer"],["function",[".unquote","params"],[".unquote","body"]]]]]]],[[".quasiquote",["public",[".sliceunquote","whatever"]]],["handleTerm",[".quasiquote",["define","public",[".sliceunquote","whatever"]]]]],[[".quasiquote",["private",[".sliceunquote","whatever"]]],["handleTerm",[".quasiquote",["define","private",[".sliceunquote","whatever"]]]]],[[".quasiquote",["protected",[".sliceunquote","whatever"]]],["handleTerm",[".quasiquote",["define","protected",[".sliceunquote","whatever"]]]]],[[".quasiquote",["static",[".sliceunquote","whatever"]]],["handleTerm",[".quasiquote",["define","static",[".sliceunquote","whatever"]]]]],[[".quasiquote",["apply",[".unquote","mdf"]]],[[".","terms",[".quote","push"]],["lambda",[],[".quasiquote",[[".",[".unquote","mdf"],[".quote","call"]],[".","Type",[".quote","prototype"]],"Type","Super"]]]]],["otherwise",["the-form-is-invalid"]]]],["foreach",["bl","bodylines"],["handleTerm","bl"]],["return",["dirty",[".quasiquote",["begin",["define",[".unquote","typename"],[["function",["Super"],["begin",["local","Constructor",["lambda"]],["local","Type",["function",[],["begin",[[".","Constructor",[".quote","apply"]],"this","arguments"],["return","nothing"]]]],[".prefix.*",[".unquote",["if","Inherits",[".quasiquote",["set",[".","Type",[".quote","prototype"]],[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","create"]],[".","Super",[".quote","prototype"]]]]],[".quasiquote","nothing"]]]],["extern","Symbol"],[[".",["lambda",[],["begin",["define-macro","public",["begin",["local","f",["syntax-rules",[[".quasiquote",["public",[".unquote","name"]]],["atom","name"],["dirty",[".quasiquote",[".","this",[".unquote",[".list",[".quote",".quote"],["formOf","name"]]]]]]]]],["set",[".","coinit",[".quote","initFn"]],["lambda",["m"],["begin",["set",[".","m",[".quote","toPattern"]],["lambda",["form","env","w"],["match","form",[[".quasiquote",["public",[".unquote","name"]]],["atom","name"],["object",["whether",["lambda",["t"],[".quasiquote","true"]]],["assign",["lambda",["t"],["ex",[".quasiquote",["set",[".","this",[".unquote",[".list",[".quote",".quote"],"name"]]],[".unquote","t"]]],"env"]]]]]]]]]]],[".prefix.*","f"]]],["define-macro","private",["begin",["local","f",["syntax-rules",[[".quasiquote",["private",[".unquote","name"]]],["atom","name"],["dirty",[".quasiquote",[".","this",[".unquote",[[".","definingEnv",[".quote","use"]],[".operatorPiece",[".quote","__private_"],"+",["formOf","name"]]]]]]]]]],["set",[".","coinit",[".quote","initFn"]],["lambda",["m"],["begin",["set",[".","m",[".quote","toPattern"]],["lambda",["form","env","w"],["match","form",[[".quasiquote",["private",[".unquote","name"]]],["atom","name"],["object",["whether",["lambda",["t"],[".quasiquote","true"]]],["assign",["lambda",["t"],["ex",[".quasiquote",["set",[".","this",[".unquote",[[".","definingEnv",[".quote","use"]],[".operatorPiece",[".quote","__private_"],"+","name"]]]],[".unquote","t"]]],"env"]]]]]]]]]]],[".prefix.*","f"]]],["define-macro","protected",["begin",["local","f",["syntax-rules",[[".quasiquote",["protected",[".unquote","name"]]],["atom","name"],["dirty",[".quasiquote",[".","this",[".",[".unquote",[[".","definingEnv",[".quote","use"]],[".quote","protectedTerms"]]],[".unquote",[".list",[".quote",".quote"],["formOf","name"]]]]]]]]]],["set",[".","coinit",[".quote","initFn"]],["lambda",["m"],["begin",["set",[".","m",[".quote","toPattern"]],["lambda",["form","env","w"],["match","form",[[".quasiquote",["protected",[".unquote","name"]]],["atom","name"],["object",["whether",["lambda",["t"],[".quasiquote","true"]]],["assign",["lambda",["t"],["ex",[".quasiquote",["set",[".","this",[".",[".unquote",[[".","definingEnv",[".quote","use"]],[".quote","protectedTerms"]]],[".unquote",[".list",[".quote",".quote"],"name"]]]],[".unquote","t"]]],"env"]]]]]]]]]]],[".prefix.*","f"]]],["set",[".","Type",[".quote","protectedTerms"]],["local","protectedTerms",[[".",[".unquote",[[".","externEnv",[".quote","use"]],[".quote","Object"]]],[".quote","create"]],[".operatorPiece",[".","Super",[".quote","protectedTerms"]],"||","null"]]]],["begin",[".sliceunquote",[[".","terms",[".quote","map"]],[".operatorPiece",["t"],"->",["t"]]]]],["return","nothing"]]],[".quote","call"]],[".","Type",[".quote","prototype"]]],["return","Type"]]],[".unquote",["if","Inherits","Inherits",[[".","externEnv",[".quote","use"]],[".quote","Object"]]]]]]]]]]]],[[".quasiquote",["class",[[".unquote","typename"],[".sliceunquote","_params"]],[".sliceunquote","_terms"]]],["begin",["local","params",[[".","_params",[".quote","map"]],"formOf"]],["local","terms",[[".","_terms",[".quote","map"]],"formOf"]],["local","arity",[".list",[".quote",".quote"],[".","params",[".quote","length"]]]],["return",["dirty",[".quasiquote",["define",[".unquote","typename"],[["function",[],["begin",["extern","Map"],["local","cache",["new","Map"]],["define",["GenericType",[".sliceunquote","params"]],["begin",["local","pivot","cache"],["for",["local","j",[".quote",0]],[".operatorPiece","j","<",[".unquote","arity"]],["inc","j"],["begin",["if",[[".","pivot",[".quote","has"]],[".","arguments","j"]],["then",["set","pivot",[[".","pivot",[".quote","get"]],[".","arguments","j"]]]],["else",["if",[".operatorPiece","j","<",[".unquote","arity"],"-",[".quote",1]],["then",["local","m",["new","Map"]]],["else",["local","m",[[".",["lambda",[[".sliceunquote","params"]],["class","_r",[".sliceunquote","terms"]]],[".quote","apply"]],"null","arguments"]]]],[[".","pivot",[".quote","set"]],[".","arguments","j"],"m"],["set","pivot","m"]]]]],["return","pivot"]]],["return","GenericType"]]]]]]]]]],["otherwise",["the-form-is-invalid"]]]],["define-macro","$$include",["syntax-rules",[[".list",[".quote","$$include"],[".list",[".quote",".quote"],"file"]],["begin",["local","f0",[".",[[[".",[".","env",[".quote","macros"]],[".quote","get"]],[".quote","input-path"]]],[".quote",1]]],["local","lr",["loadSourceRelative","f0",["formOf","file"]]],["local","ast",["parseSoruce",[".","lr",[".quote","source"]],[".xhash",[[".quote","within"],[".xhash",[[".quote","file"],[".","lr",[".quote","absolutePath"]]],[[".quote","input"],[".","lr",[".quote","source"]]]]]]]],["return",[".list",[".quote",".syntactic-closure"],"ast","env"]]]],["otherwise",["the-form-is-invalid"]]]]]