(If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub __mal_core_included__]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('__mal_core_included', {[LIT_CHARS true]})]) (Com {[LIT_CHARS source]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /types.sh]} ) (Com {[LIT_CHARS source]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /reader.sh]} ) (Com {[LIT_CHARS source]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /printer.sh]} ) (FunctionDef throw [] (List (= scope= flags=0 words=[] bindings=[('__ERROR', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('r', {[SQ ]})]) ) ) (FunctionDef obj_type [] (List (Com {[LIT_CHARS _obj_type]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS _string]} {[DQ [VarSub r]]} ) ) ) (FunctionDef equal? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _equal] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} {[DQ [VarSub 2]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef nil? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _nil] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef true? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _true] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef false? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _false] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef symbol [] (Com {[LIT_CHARS _symbol]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} ) ) (FunctionDef symbol? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _symbol] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef keyword [] (Com {[LIT_CHARS _keyword]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} ) ) (FunctionDef keyword? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _keyword] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef number? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _number] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef num_plus [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _number]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_minus [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _number]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_multiply [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _number]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_divide [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_SLASH {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _number]} {[DQ [VarSub r]]} ) ) ) (FunctionDef _num_bool [] (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[DQ [LIT_CHARS 1]]}}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef num_gt [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_GREAT {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _num_bool]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_gte [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_GE {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _num_bool]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_lt [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _num_bool]} {[DQ [VarSub r]]} ) ) ) (FunctionDef num_lte [] (List (= scope= flags=0 words=[] bindings=[('r', {[ArithSub {A2 AS_OP_LE {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}} {A Atom NODE_ARITH_WORD {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]}}}]})]) (Com {[LIT_CHARS _num_bool]} {[DQ [VarSub r]]} ) ) ) (FunctionDef time_ms [] (List (= scope= flags=0 words=[] bindings=[('ms', {[ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s] [LIT_OTHER "%"] [LIT_CHARS 3N]})]})]) (Com {[LIT_CHARS _number]} {[DQ [VarSub ms]]} ) ) ) (FunctionDef string? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _string] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef pr_str [] (List (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For x [{[DQ [VarSub @]]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub x]]} {[LIT_CHARS yes]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (Com {[LIT_CHARS _string]} {[DQ [VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) ) ) (FunctionDef str [] (List (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For x [{[DQ [VarSub @]]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub x]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][VarSub r]]})]) ) ) (Com {[LIT_CHARS _string]} {[DQ [VarSub res]]} ) ) ) (FunctionDef prn [] (List (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For x [{[DQ [VarSub @]]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub x]]} {[LIT_CHARS yes]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) (FunctionDef println [] (List (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For x [{[DQ [VarSub @]]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub x]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\\\"] [LIT_CHARS n]} {[LIT_OTHER "$"] [LIT_CHARS "'"] [\ LIT_ESCAPED_CHAR "\\n"] [LIT_CHARS "'"]} do_all]]]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) (FunctionDef readline [] (AndOr OP_AND_IF (Com {[LIT_CHARS READLINE]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS _string]} {[DQ [VarSub r]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) ) (FunctionDef read_string [] (Com {[LIT_CHARS READ_STR]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} ) ) (FunctionDef slurp [] (List (= scope= flags=0 words=[{[LIT_CHARS lines]}] bindings=[]) (Com {[LIT_CHARS mapfile]} {[LIT_CHARS lines]} < (FilenameRedirectNode filename={[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} 0), > ) (= scope= flags=0 words=[] bindings=[('text', {[DQ [VarSub lines bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_STAR "*"}})]]})]) (= scope= flags=0 words=[] bindings=[('text', {[VarSub text transform_ops=[PatSub {[SQ ] [LIT_CHARS " "]} {[SQ ]} do_all]]})]) (Com {[LIT_CHARS _string]} {[DQ [VarSub text]]} ) ) ) (FunctionDef function? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _function] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef list? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _list] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef vector? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _vector] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef hash_map? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _hash_map] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef assoc [] (List (If (Pipeline! (Com {[LIT_CHARS _hash_map] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) ) (List (Com {[LIT_CHARS _error]} {[DQ [LIT_CHARS "assoc onto non-hash-map"]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS _copy_hash_map]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('name', {[DQ [VarSub r]]})]) (= scope= flags=0 words=[] bindings=[('obj', {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub name]]}})]})]) (= scope= flags=0 words=[{[LIT_CHARS -A]}, {[LIT_CHARS -g]}, {[VarSub obj]}] bindings=[]) (While (DBracket {B1 UNARY_STRING_n {[DQ [VarSub 1]]}}) (List (Com {[LIT_CHARS eval]} {[VarSub obj] [LIT_DBRACKET_LIKE "["] [\ LIT_ESCAPED_CHAR "\\\""] [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})] [\ LIT_ESCAPED_CHAR "\\\""] [LIT_DBRACKET_LIKE "]="] [\ LIT_ESCAPED_CHAR "\\\""] [VarSub 2] [\ LIT_ESCAPED_CHAR "\\\""]} ) (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS shift]} ) ) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub name]]})]) ) ) (FunctionDef dissoc [] (List (If (Pipeline! (Com {[LIT_CHARS _hash_map] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) ) (List (Com {[LIT_CHARS _error]} {[DQ [LIT_CHARS "dissoc from non-hash-map"]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS _copy_hash_map]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('name', {[DQ [VarSub r]]})]) (= scope= flags=0 words=[] bindings=[('obj', {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub name]]}})]})]) (= scope= flags=0 words=[{[LIT_CHARS -A]}, {[LIT_CHARS -g]}, {[VarSub obj]}] bindings=[]) (While (DBracket {B1 UNARY_STRING_n {[DQ [VarSub 1]]}}) (List (Com {[LIT_CHARS eval]} {[LIT_CHARS unset]} {[VarSub obj] [LIT_DBRACKET_LIKE "["] [\ LIT_ESCAPED_CHAR "\\\""] [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})] [\ LIT_ESCAPED_CHAR "\\\""] [LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS shift]} ) ) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub name]]})]) ) ) (FunctionDef _get [] (List (Com {[LIT_CHARS _obj_type]} {[DQ [VarSub 1]]} ) (= scope= flags=0 words=[] bindings=[('ot', {[DQ [VarSub r]]})]) (Case to_match={[DQ [VarSub ot]]}, pat_word_list=[[{[LIT_CHARS hash_map]}], [{[LIT_CHARS list]}, {[LIT_CHARS vector]}], [{[LIT_CHARS nil]}]] (List (= scope= flags=0 words=[] bindings=[('obj', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "r="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{"][VarSub obj][LIT_CHARS "["][\ LIT_ESCAPED_CHAR "\\\""][VarSub 2][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "]}"]] =} ) ) (Com {[LIT_CHARS _nth]} {[DQ [VarSub 1]]} {[DQ [VarSub 2]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) ) (FunctionDef get [] (List (Com {[LIT_CHARS _get]} {[DQ [VarSub 1]]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]]} ) (AndOr OP_OR_IF (DBracket {B1 UNARY_STRING_n {[DQ [VarSub r]]}}) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) ) (FunctionDef contains? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _contains] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef keys [] (List (= scope= flags=0 words=[] bindings=[('obj', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (= scope= flags=0 words=[] bindings=[('kstrs', {[SQ ]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS local]} {[LIT_VAR_LIKE "keys="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{!"][VarSub obj][LIT_CHARS "[@]}"]] =} ) (For k [{[VarSub keys]}]) (List (Com {[LIT_CHARS _string]} {[DQ [VarSub k]]} ) (= scope= flags=0 words=[] bindings=[('kstrs', {[DQ [VarSub kstrs][LIT_CHARS " "][VarSub r]]})]) ) ) (Com {[LIT_CHARS __new_obj_hash_code]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS list_][VarSub r]]})]) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub kstrs transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) ) ) (FunctionDef vals [] (List (= scope= flags=0 words=[] bindings=[('obj', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (= scope= flags=0 words=[] bindings=[('kvals', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('val', {[SQ ]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS local]} {[LIT_VAR_LIKE "keys="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{!"][VarSub obj][LIT_CHARS "[@]}"]] =} ) (For k [{[VarSub keys]}]) (List (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "val="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{"][VarSub obj][LIT_CHARS "["]] [\ LIT_ESCAPED_CHAR "\\$"] [LIT_LBRACE "{"] [LIT_CHARS k] [LIT_RBRACE "}"] [DQ [LIT_CHARS "]}"]] =} ) (= scope= flags=0 words=[] bindings=[('kvals', {[DQ [VarSub kvals][LIT_CHARS " "][VarSub val]]})]) ) ) (Com {[LIT_CHARS __new_obj_hash_code]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS list_][VarSub r]]})]) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub kvals transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) ) ) (FunctionDef sequential? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _sequential] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef cons [] (Com {[LIT_CHARS _list]} {[VarSub 1]} {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]} ) ) (FunctionDef concat [] (List (Com {[LIT_CHARS _list]} ) (= scope= flags=0 words=[] bindings=[('acc', {[DQ ]})]) (For item [{[DQ [VarSub @]]}]) (= scope= flags=0 words=[] bindings=[('acc', {[DQ [VarSub acc][LIT_CHARS " "][VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub item]]}})]]})]) ) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub acc transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]} ) ) ) (FunctionDef nth [] (List (Com {[LIT_CHARS _nth]} {[DQ [VarSub 1]]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 2]]}})]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub r]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS _error]} {[DQ [LIT_CHARS "nth: index out of bounds"]]} ) (Com {[LIT_CHARS return]} ) ) ) ) ) (FunctionDef empty? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _empty] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef count [] (List (Com {[LIT_CHARS _count]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS _number]} {[DQ [VarSub r]]} ) ) ) (FunctionDef conj [] (List (= scope= flags=0 words=[] bindings=[('obj', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('obj_data', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub obj]]}})]]})]) (Com {[LIT_CHARS __new_obj_like]} {[DQ [VarSub obj]]} ) (If (Com {[LIT_CHARS _list] [LIT_OTHER "?"]} {[DQ [VarSub obj]]} ) (List (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub obj_data test_op=VS_TEST_COLON_PLUS {[VarSub obj_data]}]]} ) (For elem [{[VarSub @]}]) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub elem][LIT_CHARS " "][VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub r]]}})]]} ) ) ) (ElseTrue) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub obj_data test_op=VS_TEST_COLON_PLUS {[VarSub obj_data] [LIT_CHARS " "]}][VarSub *]]} ) ) ) ) (FunctionDef apply [] (List (= scope= flags=0 words=[] bindings=[('f', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('items', {[DQ [VarSub @ transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} {A Atom NODE_ARITH_WORD {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub @ transform_ops=[(#len)]]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]}}]][LIT_CHARS " "][VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub # transform_ops=[(!ref)]]]}})]]})]) (Com {[LIT_CHARS eval]} {[VarSub f transform_ops=[VS_UNARY_DPERCENT {[LIT_CHARS "@*"]}]]} {[VarSub items]} ) ) ) (FunctionDef map [] (List (= scope= flags=0 words=[] bindings=[('f', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS _map]} {[DQ [VarSub f]]} {[DQ [VarSub @]]} ) ) ) (FunctionDef with_meta [] (List (= scope= flags=0 words=[] bindings=[('obj', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('meta_data', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS __new_obj_like]} {[DQ [VarSub obj]]} ) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub r]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub obj]]}})]]} ) (= scope= flags=0 words=[] bindings=[('meta_obj', {[DQ [LIT_CHARS meta_][VarSub r transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*_"]}]]]})]) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub meta_obj]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub meta_data]]} ) ) ) (FunctionDef meta [] (List (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [LIT_CHARS meta_][VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*_"]}]]]}})]]})]) (AndOr OP_OR_IF (DBracket {B1 UNARY_STRING_n {[DQ [VarSub r]]}}) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __nil]]})]) ) ) ) (FunctionDef atom? [] (AndOr OP_AND_IF (Com {[LIT_CHARS _atom] [LIT_OTHER "?"]} {[DQ [VarSub 1]]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __true]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub __false]]})]) ) ) ) (FunctionDef deref [] (= scope= flags=0 words=[] bindings=[('r', {[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]})]) ) (FunctionDef reset_BANG [] (List (= scope= flags=0 words=[] bindings=[('atm', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub atm]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub *]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub *]]})]) ) ) (FunctionDef swap_BANG [] (List (= scope= flags=0 words=[] bindings=[('atm', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('f', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (Com {[LIT_CHARS shift]} ) (Com {[VarSub f transform_ops=[VS_UNARY_DPERCENT {[LIT_CHARS "@*"]}]]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub atm]]}})]]} {[DQ [VarSub @]]} ) (Com {[LIT_CHARS ANON] [LIT_DBRACKET_LIKE "["] [DQ [VarSub atm]] [LIT_DBRACKET_LIKE "]="] [DQ [VarSub r]]} ) ) ) (= scope= flags=0 words=[{[LIT_CHARS -A]}] bindings=[('core_ns', {[Array {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS type] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS obj_type]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "[=]="] [LIT_CHARS equal] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS throw] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS throw]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS nil] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS nil] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS true] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS true] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS false] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS false] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS symbol] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS symbol]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS symbol] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS symbol] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS keyword] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS keyword]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS keyword] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS keyword] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS pr-str] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS pr_str]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS str] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS str]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS prn] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS prn]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS println] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS println]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS readline] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS readline]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS read-string] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS read_string]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS slurp] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS slurp]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["]} {REDIR_LESS "<"} {[LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_lt]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["]} {REDIR_LESS "<"} {[LIT_DBRACKET_LIKE "=]="] [LIT_CHARS num_lte]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["]} {REDIR_GREAT ">"} {[LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_gt]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["]} {REDIR_GREAT ">"} {[LIT_DBRACKET_LIKE "=]="] [LIT_CHARS num_gte]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_OTHER "+"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_plus]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS -] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_minus]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS __STAR__] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_multiply]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS /] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS num_divide]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS time-ms] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS time_ms]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS list] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _list]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS list] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS list] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS vector] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _vector]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS vector] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS vector] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS hash-map] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _hash_map]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS map] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS hash_map] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS assoc] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS assoc]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS dissoc] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS dissoc]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS get] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS get]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS contains] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS contains] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS keys] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS keys]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS vals] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS vals]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS sequential] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS sequential] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS cons] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS cons]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS concat] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS concat]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS nth] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS nth]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS first] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _first]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS rest] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _rest]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS empty] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS empty] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS count] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS count]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS conj] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS conj]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS apply] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS apply]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS map] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS map]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS with-meta] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS with_meta]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS meta] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS meta]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS atom] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS _atom]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS atom] [LIT_OTHER "?"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS atom] [LIT_OTHER "?"]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS deref] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS deref]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS reset] [LIT_OTHER "!"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS reset_BANG]} {OP_NEWLINE "\n"} {[LIT_DBRACKET_LIKE "["] [LIT_CHARS swap] [LIT_OTHER "!"] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS swap_BANG]}]})]) ) )