(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: 16777215
                            body: {(DQ ('((lambda () \n') ('         10)\n') ('  )\n'))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: T
                            spids: [22]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [19 29]
              )
            }
          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: 16777215
                            body: {(DQ ('((lambda (x y) \n') ('         (+ x y))\n') ('  5 10)\n'))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: T
                            spids: [58]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [55 65]
              )
            }
          spids: [54]
        )
      ]
      spids: [54]
    )
    (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: 16777215
                            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: T
                            spids: [94]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [91 105]
              )
            }
          spids: [90]
        )
      ]
      spids: [90]
    )
    (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)})
  ]
)