(command.CommandList
  children: [
    (C {<.>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name BASH_SOURCE>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VOp1_Percent '%'>
              arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
            )
        ) <'/test.sh'>
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:value)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            here_begin: {<EOF>}
                            here_end_span_id: 29
                            stdin_parts: [<'((lambda () \n'> <'         10)\n'> <'  )\n'>]
                          )
                      )
                    ]
                    do_fork: T
                  )
              )
            }
          spids: [18]
        )
      ]
    )
    (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 10'>)} 
      {(DQ (${ Id.VSub_Name value))} {(DQ <'Basic lambda without parameters'>)}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:value)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            here_begin: {<EOF>}
                            here_end_span_id: 66
                            stdin_parts: [<'((lambda (x y) \n'> <'         (+ x y))\n'> <'  5 10)\n'>]
                          )
                      )
                    ]
                    do_fork: T
                  )
              )
            }
          spids: [55]
        )
      ]
    )
    (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 15'>)} 
      {(DQ (${ Id.VSub_Name value))} {(DQ <'Basic lambda with parameters'>)}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:value)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    words: [{<'../lishp.sh'>}]
                    redirects: [
                      (redir
                        op: <Id.Redir_DLess '<<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: 
                          (redir_param.HereDoc
                            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'>
                            ]
                          )
                      )
                    ]
                    do_fork: T
                  )
              )
            }
          spids: [92]
        )
      ]
    )
    (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 5'>)} 
      {(DQ (${ Id.VSub_Name value))} {(DQ <'Returning lambda with closure'>)}
    )
    (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <report>})
  ]
)