anchor.diff:  let isMacOS = Environment.OSVersion.Platform = PlatformID.MacOSX
   
   /// Determines if the current system is a Linux system
  -let isLinux =
  -    int System.Environment.OSVersion.Platform |> fun p ->
  -        (p = 4) || (p = 6) || (p = 128)
  +let isLinux = int System.Environment.OSVersion.Platform |> fun p -> (p = 4) || (p = 6) || (p = 128)
   
   /// Determines if the current system is a mono system
   /// Todo: Detect mono on windows
   let isMono = isLinux || isUnix || isMacOS
   
   /// Modifies the ProcessStartInfo according to the platform semantics
  -let platformInfoAction (psi:ProcessStartInfo) =
  -    if isMono && psi.FileName.EndsWith ".exe" then
  +let platformInfoAction (psi : ProcessStartInfo) = 
  +    if isMono && psi.FileName.EndsWith ".exe" then 
           psi.Arguments <- psi.FileName + " " + psi.Arguments
  -        psi.FileName <- "mono"  
  +        psi.FileName <- "mono"
   
   /// The path of the current target platform
   let mutable TargetPlatformPrefix = 
  -    let (<|>) a b = match a with None -> b | _ -> a
  -    environVarOrNone "FrameworkDir32"
  -    <|> 
  -        if (String.IsNullOrEmpty SystemRoot) then None
  -        else Some (SystemRoot @@ @"Microsoft.NET\Framework")
  -    <|> 
  -        if (isUnix) then Some "/usr/lib/mono"
  +    let (<|>) a b = 
  +        match a with
  +        | None -> b
  +        | _ -> a
  +    environVarOrNone "FrameworkDir32" <|> if (String.IsNullOrEmpty SystemRoot) then None
  +                                          else Some(SystemRoot @@ @"Microsoft.NET\Framework") 
  +    <|> if (isUnix) then Some "/usr/lib/mono"
           else Some @"C:\Windows\Microsoft.NET\Framework"
       |> Option.get
  -    
   
   /// Gets the local directory for the given target platform
   let getTargetPlatformDir platformVersion = 
  -    if Directory.Exists(TargetPlatformPrefix + "64") then 
  -        (TargetPlatformPrefix + "64") @@ platformVersion
  -    else 
  -        TargetPlatformPrefix @@ platformVersion
  +    if Directory.Exists(TargetPlatformPrefix + "64") then (TargetPlatformPrefix + "64") @@ platformVersion
  +    else TargetPlatformPrefix @@ platformVersion
   
   /// The path to the personal documents
   let documentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
  
positive.code: let directorySeparator = Path.DirectorySeparatorChar.ToString()
  
  /// Convert the given windows path to a path in the current system
  let convertWindowsToCurrentPath (windowsPath:string) = 
      if (windowsPath.Length > 2 && windowsPath.[1] = ':' && windowsPath.[2] = '\\') then
          windowsPath
      else
          windowsPath.Replace(@"\",directorySeparator)
  
  /// Contains the IO encoding which is given via build parameter "encoding" or the default encoding if no encoding was specified.
  let encoding =
      match getBuildParamOrDefault "encoding" "default" with
      | "default" -> Text.Encoding.Default
      | enc -> Text.Encoding.GetEncoding(enc)
  
negative.code: /// The path of Program Files (x86)
  /// It seems this covers all cases where PROCESSOR\_ARCHITECTURE may misreport and the case where the other variable 
  /// PROCESSOR\_ARCHITEW6432 can be null
  let ProgramFilesX86 = 
      let wow64 = (environVar "PROCESSOR_ARCHITEW6432")
      let globalArch = (environVar "PROCESSOR_ARCHITECTURE")
      match wow64, globalArch with
      | "AMD64", "AMD64" | null, "AMD64" | "x86", "AMD64" -> environVar "ProgramFiles(x86)"
      | _ -> environVar "ProgramFiles"
  
  /// The system root environment variable. Typically "C:\Windows"
  let SystemRoot = environVar "SystemRoot"
  