(CommandList children: [ (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [6 11] ) (/test.sh) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("((lambda () \n") (" 10)\n") (" )\n"))} do_expansion: True here_end: EOF was_filled: True spids: [22] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [19 28] ) } spids: [18] ) ] spids: [18] ) (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 10"))} {(DQ (${ VSub_Name value))} {(DQ ("Basic lambda without parameters"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("((lambda (x y) \n") (" (+ x y))\n") (" 5 10)\n"))} do_expansion: True here_end: EOF was_filled: True spids: [57] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [54 63] ) } spids: [53] ) ] spids: [53] ) (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 15"))} {(DQ (${ VSub_Name value))} {(DQ ("Basic lambda with parameters"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("(\n") (" (\n") (" (lambda (x) \n") (" (lambda (y) \n") (" (+ x y))\n") (" )\n") (" 2) 3)\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [92] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [89 102] ) } spids: [88] ) ] spids: [88] ) (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 5"))} {(DQ (${ VSub_Name value))} {(DQ ("Returning lambda with closure"))} ) (C {(assert) (Lit_Other ":") (Lit_Other ":") (report)}) ] )