(command.CommandList
  children: [
    (command.ShFunction
      name: _hash
      body: 
        (BraceGroup
          children: [
            (C {<echo>} 
              {($ Id.VSub_Dollar '$$') <.> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<date>} {<Id.Lit_Other '+'> (SQ <'%s.%N'>)})
                ) <.> ($ Id.VSub_DollarName '$RANDOM')
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: 'balls::server'
      body: 
        (BraceGroup
          children: [
            (C {<balls> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <load_app>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:http_sock)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$BALLS_TMP') <'/balls.http.'> ($ Id.VSub_Dollar '$$') 
                      <.sock>
                    }
                  spids: [45]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-p>} {($ Id.VSub_DollarName '$http_sock')} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<mkfifo>} {($ Id.VSub_DollarName '$http_sock')})
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<cat>} {($ Id.VSub_DollarName '$http_sock')})
                        (C {<nc>} {<-l>} {<-p>} {($ Id.VSub_DollarName '$BALLS_PORT')})
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (C {<http> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <parse_request>})
                                (command.Simple
                                  words: [{<balls> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <route>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName '$http_sock')}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: cleanup
      body: 
        (BraceGroup
          children: [
            (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$headers_sock'))} 
              {(DQ ($ Id.VSub_DollarName '$http_sock'))}
            )
          ]
        )
    )
    (C {<trap>} {(SQ <'cleanup; exit'>)} {<INT>})
    (command.ShFunction
      name: 'balls::load_app'
      body: 
        (BraceGroup
          children: [(C {<.>} {($ Id.VSub_DollarName '$BALLS_ACTIONS') <'/'> <Id.Lit_Star '*'> <.sh>})]
        )
    )
  ]
)