anchor.diff:              member _.Write(str) =
                   async {
                       do! stream.WriteAsync(str) |> Async.AwaitTask
  +                    if cliArgs.SourceMaps then
  +                        let mapPath = targetPath + ".map"
  +                        do! stream.WriteLineAsync($"//# sourceMappingURL={IO.Path.GetFileName(mapPath)}") |> Async.AwaitTask
                       do! stream.FlushAsync() |> Async.AwaitTask
                   }
               member _.EscapeJsStringLiteral(str) =
  
positive.code:         member _.SourceMap =
              mapGenerator.Force().toJSON()
  
          member _.WriteToFileIfChangedAsync(): Async<bool> = async {
              if memoryStream.Length = 0 then
                  return false
              elif not(IO.File.Exists(targetPath)) then
                  return! WriteStreamToFileAsync(memoryStream, targetPath)
              else
                  let fileInfo = new IO.FileInfo(targetPath)
                  if fileInfo.Length <> memoryStream.Length then
                      return! WriteStreamToFileAsync(memoryStream, targetPath)
                  else
                      match! IsMemoryStreamEqualToFileAsync() with
                      | false -> return! WriteStreamToFileAsync(memoryStream, targetPath)
                      | true -> return false
            }
  
      let compileFile (com: CompilerImpl) (cliArgs: CliArgs) pathResolver isSilent = async {
  
negative.code:             use fileStream = new IO.StreamWriter(filePath)
              do! stream.CopyToAsync(fileStream.BaseStream) |> Async.AwaitTask
              do! fileStream.FlushAsync() |> Async.AwaitTask
  
              if cliArgs.SourceMaps then
                  let mapPath = filePath + ".map"
                  use fs = IO.File.Open(mapPath, IO.FileMode.Create)
                  let sourceMap = mapGenerator.Force().toJSON()
                  do! sourceMap.SerializeAsync(fs) |> Async.AwaitTask
          }
  
          let IsMemoryStreamEqualToFileAsync() = async {
  