anchor.diff:  open Suave.Http.Successful
   open Suave.Web
   open Suave.Http
  +open Suave.Types
   open Suave.Http.Applicatives
   open Suave.Model.Binding
   open Suave.Http.ServerErrors
  
positive.code:     JobId = guid sendFormData.JobId
      NumberOfRequests = int sendFormData.NumberOfRequests
      MaxWorkers = int sendFormData.MaxWorkers
    }
  
  let send : Form<SendFormData> = Form ([],[])
  
  let html jobId =
   sprintf """
  <html>
  <body>
  
  <form method="POST" action="/send">
    Number of requests:
    <input type="text" name="NumberOfRequests">
    <br/>
    Max number of concurrent requests:
    <input type="text" name="MaxWorkers">
    <input type="hidden" name="JobId" value="%s">
    <input type="submit" value="Send">
  </form>
  
  </body>
  </html>
    """ jobId
  
  //actor stuff
  type actor<'t> = MailboxProcessor<'t>
  
negative.code:     let rec loop (managers : (Guid * actor<Manager>) list) =
        async {
          let! msg = self.Receive ()
          match msg with
          | Send sendData ->
            let manager, managers = getManager managers sendData.JobId
            manager.Post(Initialize(sendData, Process sendData.Uri))
            return! loop managers
        }
      loop [])
  