anchor.diff:  let DotnetCliInstall setParams =
       let param = DotNetCliInstallOptions.Default |> setParams  
   
  +    let scriptName = sprintf "dotnet_install_%s.ps1" <| md5 (Encoding.ASCII.GetBytes(param.InstallerBranch))
  +    let tempInstallerScript = Path.GetTempPath() @@ scriptName
  +
       let installScript = 
           match param.AlwaysDownload || not(File.Exists(tempInstallerScript)) with
  -            | true -> downloadInstaller tempInstallerScript
  +            | true -> downloadInstaller tempInstallerScript param.InstallerBranch
               | false -> tempInstallerScript
   
       // set custom install directory
  
positive.code: open FSharp.Data.JsonExtensions
  open System
  open System.IO
  
  /// Dotnet cli installer script
  let private dotnetCliInstaller = "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.ps1"
  
  /// Dotnet cli default install directory (set to default localappdata dotnet dir). Update this to redirect all tool commands to different location. 
  let mutable DefaultDotnetCliDir = environVar "LocalAppData" @@ "Microsoft" @@ "dotnet"
  
negative.code: type DotnetCliChannel =
      /// Possibly unstable, frequently changing, may contain new finished and unfinished features
      | Future
      /// Most stable releases
      | Production
      /// Custom channel
      | Channel of string
      
  /// dotnet cli install options
  type DotNetCliInstallOptions =
      {   
          /// Always download install script (otherwise install script is cached in temporary folder)
          AlwaysDownload: bool;
          /// Download installer from this github branch
          InstallerBranch: string;
          /// Distribution channel
          Channel: DotnetCliChannel;
          /// DotnetCli version
  