anchor.diff:          Id : string
           Name: string
           Remove : InstallUninstall
  -        Start : InstallUninstall option
  +        Start : InstallUninstall
           Stop : InstallUninstall
           Wait : YesOrNo
       }
  
positive.code:     | Install
      | Uninstall
      | Both
      override w.ToString() = 
          match w with
          | Install -> "install"
          | Uninstall -> "uninstall"
          | Both -> "both"
  
  /// These are used in many methods for generating WiX nodes, regard them as booleans
  type YesOrNo = 
  
negative.code:             {
                  yield ("Id", w.Id)
                  yield ("Name", w.Name)
                  match w.Remove with
                  | Never -> ()
                  | _ -> yield ("Remove", w.Remove.ToString())
                  match w.Start with
                  | Never -> ()
                  | _ -> yield ("Start", w.Start.ToString())
                  match w.Stop with
                  | Never -> ()
                  | _ -> yield ("Stop", w.Stop.ToString())
                  yield ("Wait", w.Wait.ToString())
              }
      override w.ToString() = 
  