(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 ("(let ((x 2))\n") ("     x)\n"))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [22]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [19 27]
              )
            }
          spids: [18]
        )
      ]
      spids: [18]
    )
    (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 2"))} 
      {(DQ (${ VSub_Name value))} {(DQ ("Basic let"))}
    )
    (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 ("(let ((x (+ 1 3)))\n") ("     x)\n"))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [56]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [53 61]
              )
            }
          spids: [52]
        )
      ]
      spids: [52]
    )
    (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 4"))} 
      {(DQ (${ VSub_Name value))} {(DQ ("let with expression"))}
    )
    (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 ("(let ((x 2)\n") ("      (y x))\n") ("     y)\n"))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [90]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [87 96]
              )
            }
          spids: [86]
        )
      ]
      spids: [86]
    )
    (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ (1))} {(DQ ($ VSub_QMark "$?"))} 
      {(DQ ("let failing to read previous values"))}
    )
    (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 ("(let ((x 2))\n") ("     x\n") ("     (* 5 2))\n"))}
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [123]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [120 129]
              )
            }
          spids: [119]
        )
      ]
      spids: [119]
    )
    (C {(assert) (Lit_Other ":") (Lit_Other ":") (equals)} {(DQ ("Integer :: 10"))} 
      {(DQ (${ VSub_Name value))} {(DQ ("let returning last value"))}
    )
    (C {(assert) (Lit_Other ":") (Lit_Other ":") (report)})
  ]
)