anchor.diff:  
       let makeIdentFrom (com: IFableCompiler) (ctx: Context) (fsRef: FSharpMemberOrFunctionOrValue): Fable.Ident =
           let sanitizedName = (fsRef.CompiledName, Naming.NoMemberPart)
  -                            ||> Naming.sanitizeIdent (fun x -> ctx.VarNames.Contains(x) || com.IsUsedVarName(x))
  -        ctx.VarNames.Add sanitizedName |> ignore
  +                            ||> Naming.sanitizeIdent com.IsUsedVarName
           // Track all used var names in the file so they're not used for imports
  +        // Also, in some situations variable names in different scopes can conflict
  +        // so just try to give a unique name to each identifier per file for safety
           com.AddUsedVarName sanitizedName
           { Name = sanitizedName
             Type = makeType com ctx.GenericArgs fsRef.FullType
  
positive.code: type Context =
      { Scope: (FSharpMemberOrFunctionOrValue * Fable.Expr) list
        ScopeInlineValues: (FSharpMemberOrFunctionOrValue * FSharpExpr) list
        /// Some expressions that create scope in F# don't do it in JS (like let bindings)
        /// so we need a mutable registry to prevent duplicated var names.
        VarNames: HashSet<string>
        GenericArgs: Map<string, Fable.Type>
        EnclosingMember: FSharpMemberOrFunctionOrValue option
        EnclosingEntity: FSharpEntity option
  
negative.code:     static member Create(enclosingEntity) =
          { Scope = []
            ScopeInlineValues = []
            GenericArgs = Map.empty
            EnclosingMember = None
            EnclosingEntity = enclosingEntity
  