anchor.diff:  let bindToForm form handler =
     bindReq (bindForm form) handler logAndShow500
   
  -type Send = { JobId : string; Message : string; }
  -type Stop = { JobId : string; }
  -type Start = { JobId : string; }
  +type Send = { JobId : string; NumberOfRequests : string; }
   
   let send : Form<Send> = Form ([],[])
  -let stop : Form<Stop> = Form ([],[])
  -let start : Form<Start> = Form ([],[])
   
   let html jobId =
    sprintf """
  
positive.code: 
  let newManager () : actor<Manager> =
    actor.Start(fun self ->
      let rec loop status =
        async {
          let! msg = self.Receive ()
          match msg with
          | Manager.Do (count, command) ->
            match status with
            | Stopped ->
              printfn "Can't do work when the job is stopped"
              return! loop status
            | Running ->
              let workers = [ 1 .. count ] |> List.map (fun _ -> newWorker self)
              workers |> List.iter (fun worker -> worker.Post(Worker.Do(command)); worker.Post(Retire))
              return! loop status
          | Manager.Stop ->
            return! loop Stopped
          | Manager.Start ->
            return! loop Running
        }
      loop Stopped
    )
  
  let getManager managers jobId =
  
negative.code:   choose
      [
        path "/" >>= choose [ GET >>= (OK <| html (System.Guid.NewGuid().ToString())) ]
        path "/send" >>= choose [ POST >>= bindToForm send
                                             (fun msg ->
                                                metaManager.Post(Send(guid msg.JobId, int msg.NumberOfRequests))
                                                OK <| html msg.JobId) ]
      ]
  
  startWebServer defaultConfig webPart
  