(command.CommandList
  children: [
    (command.ShFunction
      name: die
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<echo>} {(DQ <'FATAL install error: '> ($ Id.VSub_At '$@'))}]
              redirects: [(redir.Redir op:<Id.Redir_GreatAnd '1>&'> fd:1 arg_word:{<2>})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.ShFunction
      name: main
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {<.>} {<_build/detected-config.sh>})]
                          negated: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<die>} {(DQ <"Can't find _build/detected-config.h.  Run './configure'">)})
                  ]
                  spids: [65 74]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'exec_filename='> <oil.ovm>})
            (C {<local>} 
              {<Id.Lit_VarLike 'dest='> ($ Id.VSub_DollarName '$PREFIX') </bin/> 
                ($ Id.VSub_DollarName '$exec_filename')
              }
            )
            (C {<echo>} {(DQ <'Installing to '> ($ Id.VSub_DollarName '$dest'))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (C {<install>} {<_bin/> ($ Id.VSub_DollarName '$exec_filename')} 
                              {($ Id.VSub_DollarName '$dest')}
                            )
                          ]
                          negated: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<die>} {(DQ <"Couldn't install oil binary">)})]
                  spids: [124 136]
                )
              ]
            )
            (C {<cd>} {($ Id.VSub_DollarName '$PREFIX') </bin>})
            (command.ForEach
              iter_name: link
              iter_words: [{<osh>} {<oshc>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {<ln>} {<-s>} {<-f>} {($ Id.VSub_DollarName '$exec_filename')} 
                                      {($ Id.VSub_DollarName '$link')}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<die>} 
                              {(DQ <"Couldn't create "> ($ Id.VSub_DollarName '$link') <' symlink'>)}
                            )
                          ]
                          spids: [170 185]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (C {<main>} {(DQ ($ Id.VSub_At '$@'))})
  ]
)