anchor.diff:  *)
   
   /// Sets the platform for a Build Configuration
  -///     x86,  x64, or AnyCPU. 
  +///     x86,  x64, or AnyCPU.
   /// The default is AnyCPU.
  -type PlatformType = 
  +type PlatformType =
       | X86 |  X64 | AnyCPU
  -    
  +
       override self.ToString () = self |> function
  -        | X86     -> "x86" 
  +        | X86     -> "x86"
           | X64     -> "x64"
           | AnyCPU  -> "AnyCPU"
   
       static member Parse text = text |> function
  -        | "x86"     -> X86     
  -        | "x64"     -> X64     
  -        | "AnyCPU"  -> AnyCPU  
  +        | "x86"     -> X86
  +        | "x64"     -> X64
  +        | "AnyCPU"  -> AnyCPU
           | _         -> failwithf "Could not parse '%s' into a `PlatformType`" text
   
       static member TryParse text = text |> function
  -        | "x86"     -> Some X86     
  -        | "x64"     -> Some X64     
  -        | "AnyCPU"  -> Some AnyCPU  
  +        | "x86"     -> Some X86
  +        | "x64"     -> Some X64
  +        | "AnyCPU"  -> Some AnyCPU
           | _         -> None
   
   
   [<RequireQualifiedAccess>]
   type BuildAction =
       /// Represents the source files for the compiler.
  -    | Compile 
  +    | Compile
       /// Represents files that are not compiled into the project, but may be embedded or published together with it.
  -    | Content 
  +    | Content
       /// Represents an assembly (managed) reference in the project.
  -    | Reference 
  +    | Reference
       /// Represents files that should have no role in the build process
       | None
       | Resource
  
positive.code:         | EmbeddedResource -> "EmbeddedResource"
  
      static member Parse text = text |> function
          | "Compile"          -> Compile          
          | "Content"          -> Content          
          | "Reference"        -> Reference        
          | "None"             -> None             
          | "Resource"         -> Resource         
          | "EmbeddedResource" -> EmbeddedResource 
          | _                  -> failwithf "Could not parse '%s' into a `BuildAction`" text
  
      static member TryParse text = text |> function
          | "Compile"          -> Some Compile          
          | "Content"          -> Some Content          
          | "Reference"        -> Some Reference        
          | "None"             -> Some None             
          | "Resource"         -> Some Resource         
          | "EmbeddedResource" -> Some EmbeddedResource 
          | _                  -> Option.None
  
  
  // Under "Compile" in https://msdn.microsoft.com/en-us/library/bb629388.aspx
  type CopyToOutputDirectory =
      | Never | Always | PreserveNewest
         
      override self.ToString () = self |> function
          | Never          -> "Never"
          | Always         -> "Always"
  
negative.code:         Condition   : string option
          OnBuild     : BuildAction
          Link        : string option
          Copy        : CopyToOutputDirectory option
      }
  
      static member fromXElem (xelem:XElement) =
          let buildtype =  xelem.Name.LocalName
          if not ^ isSrcFile buildtype then
              failwithf "XElement provided was not `Compile|Content|None|Resource|EmbeddedResource` was `%s` instead" buildtype
          else
          {   Include   = XElem.getAttribute  "Include" xelem |> XAttr.value
              OnBuild   = BuildAction.Parse buildtype
              Link      = XElem.tryGetElement "Link" xelem    |> Option.map XElem.value
              Condition = XElem.tryGetElement "Condition" xelem    |> Option.map XElem.value
              Copy      =
                  XElem.tryGetElement "CopyToOutputDirectory" xelem
                  |> Option.bind (XElem.value >> CopyToOutputDirectory.TryParse)
          }
  
      member self.ToXElem () =
          XElem.create (string self.OnBuild) []
          |> XElem.setAttribute "Include" self.Include
          |> mapOpt self.Condition ^ XElem.setAttribute "Condition"
          |> mapOpt self.Link      ^ XElem.addElem "Link"
          |> mapOpt self.Copy ^ fun copy node ->
              match copy with
              | Never          -> node
              | Always         -> XElem.addElem "CopyToOutputDirectory" (string Always) node
              | PreserveNewest -> XElem.addElem "CopyToOutputDirectory" (string PreserveNewest) node
  