(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)})
  ]
)