(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: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 29 stdin_parts: [('((lambda () \n') (' 10)\n') (' )\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [19 30] ) } 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: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 66 stdin_parts: [('((lambda (x y) \n') (' (+ x y))\n') (' 5 10)\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [56 67] ) } spids: [55] ) ] spids: [55] ) (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: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 107 stdin_parts: [ ('(\n') (' (\n') (' (lambda (x) \n') (' (lambda (y) \n') (' (+ x y))\n') (' )\n') (' 2) 3)\n') ] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [93 108] ) } spids: [92] ) ] spids: [92] ) (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)}) ] )