(command.CommandList
  children: [
    (command.ShFunction
      name: read_tree_must_succeed
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (C {<git>} {<read-tree>} {<-n>} {(DQ ($ Id.VSub_At '$@'))})
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_cmp>} {<pre-dry-run>} {<post-dry-run>})
                (C {<git>} {<read-tree>} {(DQ ($ Id.VSub_At '$@'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: read_tree_must_fail
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_must_fail>} {<git>} {<read-tree>} {<-n>} {(DQ ($ Id.VSub_At '$@'))})
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_cmp>} {<pre-dry-run>} {<post-dry-run>})
                (C {<test_must_fail>} {<git>} {<read-tree>} {(DQ ($ Id.VSub_At '$@'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: read_tree_u_must_succeed
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  words: [{<git>} {<diff-files>} {<-p>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run-wt>}
                    )
                  ]
                  do_fork: T
                )
                (C {<git>} {<read-tree>} {<-n>} {(DQ ($ Id.VSub_At '$@'))})
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  words: [{<git>} {<diff-files>} {<-p>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run-wt>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_cmp>} {<pre-dry-run>} {<post-dry-run>})
                (C {<test_cmp>} {<pre-dry-run-wt>} {<post-dry-run-wt>})
                (C {<git>} {<read-tree>} {(DQ ($ Id.VSub_At '$@'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: read_tree_u_must_fail
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  words: [{<git>} {<diff-files>} {<-p>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<pre-dry-run-wt>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_must_fail>} {<git>} {<read-tree>} {<-n>} {(DQ ($ Id.VSub_At '$@'))})
                (command.Simple
                  words: [{<git>} {<ls-files>} {<-s>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  words: [{<git>} {<diff-files>} {<-p>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<post-dry-run-wt>}
                    )
                  ]
                  do_fork: T
                )
                (C {<test_cmp>} {<pre-dry-run>} {<post-dry-run>})
                (C {<test_cmp>} {<pre-dry-run-wt>} {<post-dry-run-wt>})
                (C {<test_must_fail>} {<git>} {<read-tree>} {(DQ ($ Id.VSub_At '$@'))})
              ]
            )
          ]
        )
    )
  ]
)