(command.CommandList
  children: [
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [
        {<.>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name BASH_SOURCE>
            var_name: BASH_SOURCE
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VOp1_Percent '%'>
                arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
              )
            right: <Id.Right_DollarBrace '}'>
          ) <'/test.sh'>
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'value='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'value='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <'../lishp.sh'>
                    more_env: []
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (Redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            here_begin: {<EOF>}
                            here_end_tok: <Id.Undefined_Tok ''>
                            stdin_parts: [<'(let* ((x 2))\n'> <'      x)\n'>]
                          )
                      )
                    ]
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <assert>
      more_env: []
      words: [
        {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>}
        {(DQ <'Integer :: 2'>)}
        {(DQ (${ Id.VSub_Name value))}
        {(DQ <'Basic let*'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'value='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'value='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <'../lishp.sh'>
                    more_env: []
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (Redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            here_begin: {<EOF>}
                            here_end_tok: <Id.Undefined_Tok ''>
                            stdin_parts: [<'(let* ((x 2)\n'> <'       (y x))\n'> <'      y)\n'>]
                          )
                      )
                    ]
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <assert>
      more_env: []
      words: [
        {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>}
        {(DQ <'Integer :: 2'>)}
        {(DQ (${ Id.VSub_Name value))}
        {(DQ <'let* reading previous values'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'value='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'value='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <'../lishp.sh'>
                    more_env: []
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (Redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            here_begin: {<EOF>}
                            here_end_tok: <Id.Undefined_Tok ''>
                            stdin_parts: [<'(let* ((x 2))\n'> <'      x\n'> <'      (* 5 x))\n'>]
                          )
                      )
                    ]
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <assert>
      more_env: []
      words: [
        {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>}
        {(DQ <'Integer :: 10'>)}
        {(DQ (${ Id.VSub_Name value))}
        {(DQ <'let returning last value'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <assert>
      more_env: []
      words: [{<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <report>}]
      redirects: []
      do_fork: T
    )
  ]
)