anchor.diff:  let setBuildParam name value = setProcessEnvironVar name value
   
   /// Retrieves the environment variable with the given name or returns the default if no value was set
  -let environVarOrDefault name defaultValue =
  +let environVarOrDefault name defaultValue = 
       let var = environVar name
       if String.IsNullOrEmpty var then defaultValue
       else var
   
   /// Retrieves the environment variable with the given name or fails if not found
  -let environVarOrFail name =
  +let environVarOrFail name = 
       let var = environVar name
       if String.IsNullOrEmpty var then failwith <| sprintf "Environment variable '%s' not found" name
       else var
   
   /// Retrieves the environment variable with the given name or returns the default value if no value was set
   let getEnvironmentVarAsBoolOrDefault varName defaultValue =
  -    try
  -        (environVar varName).ToUpper() = "TRUE"
  +    try  
  +        (environVar varName).ToUpper() = "TRUE" 
       with
       | _ ->  defaultValue
   
  
positive.code: let mutable monoArguments = ""
  
  /// Modifies the ProcessStartInfo according to the platform semantics
  let platformInfoAction (psi : ProcessStartInfo) =
      if isMono && psi.FileName.EndsWith ".exe" then
          psi.Arguments <- monoArguments + " \"" + psi.FileName + "\" " + psi.Arguments
          psi.FileName <- monoPath
  
  /// 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"
          else Some @"C:\Windows\Microsoft.NET\Framework"
      |> Option.get
  
negative.code: /// Base path for getting tools from windows SDKs
  let sdkBasePath = ProgramFilesX86 @@ "Microsoft SDKs\Windows"
  
  /// Helper function to help find framework or sdk tools from the 
  /// newest toolkit available
  let getNewestTool possibleToolPaths = 
         possibleToolPaths 
         |> Seq.sortBy (fun p -> p) 
         |> Array.ofSeq 
         |> Array.rev 
         |> Seq.ofArray 
         |> Seq.head
  
  /// Gets the local directory for the given target platform
  let getTargetPlatformDir platformVersion = 
      if Directory.Exists(TargetPlatformPrefix + "64") then (TargetPlatformPrefix + "64") @@ platformVersion
      else TargetPlatformPrefix @@ platformVersion
  
  