(If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub __mal_printer_included__]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('__mal_printer_included', {[LIT_CHARS true]})]) (Com {[LIT_CHARS source]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /types.sh]} ) (FunctionDef _pr_str [] (List (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS _obj_type]} {[DQ [VarSub 1]]} ) (= scope= flags=0 words=[] bindings=[('ot', {[DQ [VarSub r]]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub ot]]}}) (List (Com {[LIT_CHARS _error]} {[DQ [LIT_CHARS "_pr_str failed on '"][VarSub 1][LIT_CHARS "'"]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS "<"][VarSub 1][LIT_CHARS ">"]]})]) ) (ElseTrue) (Com {[LIT_CHARS eval]} {[VarSub ot] [LIT_CHARS _pr_str]} {[DQ [VarSub 1]]} {[DQ [VarSub print_readably]]} ) ) ) ) (FunctionDef nil_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS nil]]})]) ) (FunctionDef true_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS true]]})]) ) (FunctionDef false_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS false]]})]) ) (FunctionDef number_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) ) (FunctionDef symbol_pr_str [] (List (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub r transform_ops=[PatSub {[LIT_CHARS __STAR__]} {[LIT_CHARS "*"]} do_all]]]})]) ) ) (FunctionDef keyword_pr_str [] (Com {[LIT_CHARS string_pr_str]} {[DQ [VarSub 1]]} ) ) (FunctionDef _raw_string_pr_str [] (List (= scope= flags=0 words=[] bindings=[('s', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub s transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}]]]} {[DQ [VarSub __keyw]]}}) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS ":"][VarSub s transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]]]})]) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub s transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}]]]} {[DQ [VarSub __keyw]]}}) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS ":"][VarSub s transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} None]]]})]) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub print_readably]]} {[LIT_DBRACKET_LIKE "=="]} {[DQ [LIT_CHARS yes]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('s', {[DQ [VarSub s transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\\\"]} {[\ LIT_ESCAPED_CHAR "\\\\"] [\ LIT_ESCAPED_CHAR "\\\\"]} do_all]]]})]) (= scope= flags=0 words=[] bindings=[('s', {[DQ [VarSub s transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\\""]} {[\ LIT_ESCAPED_CHAR "\\\\"] [\ LIT_ESCAPED_CHAR "\\\""]} do_all]]]})]) (= scope= flags=0 words=[] bindings=[('r', {[DQ [\ LIT_ESCAPED_CHAR "\\\""][VarSub s transform_ops=[PatSub {[LIT_OTHER "$"] [LIT_CHARS "'"] [\ LIT_ESCAPED_CHAR "\\n"] [LIT_CHARS "'"]} {[\ LIT_ESCAPED_CHAR "\\\\"] [LIT_CHARS n]} do_all]][\ LIT_ESCAPED_CHAR "\\\""]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub s]]})]) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub r transform_ops=[PatSub {[LIT_CHARS __STAR__]} {[LIT_OTHER "$"] [LIT_CHARS "'*'"]} do_all]]]})]) ) ) (FunctionDef string_pr_str [] (Com {[LIT_CHARS _raw_string_pr_str]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} {[DQ [VarSub 2]]} ) ) (FunctionDef function_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) ) (FunctionDef bash_pr_str [] (= scope= flags=0 words=[] bindings=[('r', {[DQ [ComSub (= scope= flags=0 words=[{[LIT_CHARS -f]}, {[LIT_CHARS -p]}, {[VarSub 1]}] bindings=[])]]})]) ) (FunctionDef hash_map_pr_str [] (List (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('val', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('hm', {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS local]} {[LIT_VAR_LIKE "keys="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{!"][VarSub hm][LIT_CHARS "[@]}"]] =} ) (For key [{[VarSub keys]}]) (List (Com {[LIT_CHARS _raw_string_pr_str]} {[DQ [VarSub key]]} {[DQ [VarSub print_readably]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "val="] [DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{"][VarSub hm][LIT_CHARS "["][\ LIT_ESCAPED_CHAR "\\\""][VarSub key][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "]}"]] =} ) (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub val]]} {[DQ [VarSub print_readably]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS "{"][VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]][LIT_CHARS "}"]]})]) ) ) (FunctionDef vector_pr_str [] (List (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For elem [{[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub elem]]} {[DQ [VarSub print_readably]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS "["][VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]][LIT_CHARS "]"]]})]) ) ) (FunctionDef list_pr_str [] (List (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('res', {[DQ ]})]) (For elem [{[VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]}]) (List (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub elem]]} {[DQ [VarSub print_readably]]} ) (= scope= flags=0 words=[] bindings=[('res', {[DQ [VarSub res][LIT_CHARS " "][VarSub r]]})]) ) ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS "("][VarSub res transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}} None]][LIT_CHARS ")"]]})]) ) ) (FunctionDef atom_pr_str [] (List (= scope= flags=0 words=[] bindings=[('print_readably', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS _pr_str]} {[DQ [VarSub ANON bracket_op=(Index {A Atom NODE_ARITH_WORD {[DQ [VarSub 1]]}})]]} {[DQ [VarSub print_readably]]} ) (= scope= flags=0 words=[] bindings=[('r', {[DQ [LIT_CHARS "(atom "][VarSub r][LIT_CHARS ")"]]})]) ) ) ) )