anchor.diff:      sprintf "publish -o ../../../%s -c %s -v n"
           cliBuildDir (if isRelease then "Release" else "Debug")
       |> Util.run (baseDir </> "dotnet-fable") dotnetExePath
  -
  -    // // Put FSharp.Core.optdata/sigdata next to FSharp.Core.dll
  -    // FileUtils.cp "packages/FSharp.Core/lib/netstandard1.6/FSharp.Core.optdata" cliBuildDir
  -    // FileUtils.cp "packages/FSharp.Core/lib/netstandard1.6/FSharp.Core.sigdata" cliBuildDir
   
   let buildCoreJS () =
       Npm.install __SOURCE_DIRECTORY__ []
  
positive.code:         let asmInfoPath = projectDir </> "AssemblyInfo.fs"
          (Attribute.Version version)::extra
          |> CreateFSharpAssemblyInfo asmInfoPath
  
      type ComparisonResult = Smaller | Same | Bigger
  
      let foldi f init (xs: 'T seq) =
          let mutable i = -1
          (init, xs) ||> Seq.fold (fun state x ->
              i <- i + 1
              f i state x)
  
      let compareVersions (expected: string) (actual: string) =
          if actual = "*" // Wildcard for custom fable-core builds
          then Same
          else
              let expected = expected.Split('.', '-')
              let actual = actual.Split('.', '-')
              (Same, expected) ||> foldi (fun i comp expectedPart ->
                  match comp with
                  | Bigger -> Bigger
                  | Same when actual.Length <= i -> Smaller
                  | Same ->
                      let actualPart = actual.[i]
                      match Int32.TryParse(expectedPart), Int32.TryParse(actualPart) with
                      // TODO: Don't allow bigger for major version?
                      | (true, expectedPart), (true, actualPart) ->
                          if actualPart > expectedPart
                          then Bigger
                          elif actualPart = expectedPart
                          then Same
                          else Smaller
                      | _ ->
                          if actualPart = expectedPart
                          then Same
                          else Smaller
                  | Smaller -> Smaller)
  
  module Npm =
      let script workingDir script args =
  
negative.code: 
  // Targets
  let installDotnetSdk () =
      dotnetExePath <- DotNetCli.InstallDotNetSDK dotnetcliVersion
  
  let clean () =
      !! "src/dotnet/**/bin"
  