anchor.diff:              then logs.[severity] <- formattedMsg::logs.[severity]
               else logs.Add(severity, [formattedMsg])
           member __.GetUniqueVar() =
  -#if FABLE_COMPILER
               id <- id + 1; "$var" + (string id)
  -#else
  -            // Actually this shouldn't be necessary as we've only
  -            // one compiler instance per file
  -            "$var" + (System.Threading.Interlocked.Increment(&id).ToString())
  -#endif
   
   #if !FABLE_COMPILER
   
  
positive.code:     | ".fsi" -> failwithf "Signature files cannot be compiled to JS: %s" fileName
      | _ -> failwithf "Not an F# source file: %s" fileName
  
  let compile (com: Compiler) (project: Project) (fileName: string) =
      if fileName.EndsWith(".fsproj")
      then
          if com.HasFSharpError
          then
              // If there are F# errors won't keep compiling because the project file
              // would remain errored forever, but add all project files as dependencies.
              let deps = Array.toList project.ProjectOptions.ProjectFileNames
              Babel.Program(fileName, SourceLocation.Empty, [], dependencies=deps)
          else
  
negative.code:             Fable2Babel.Compiler.createFacade fileName lastFile
          |> addLogs com |> toJson
      else
          let com = resolveFableCoreLocation com project
          FSharp2Fable.Compiler.transformFile com project project.CheckedProject fileName
          |> Fable2Babel.Compiler.transformFile com project
          |> addLogs com |> toJson
  
  type Command = string * (string -> unit)
  
  