anchor.diff:      else info
   
   let private getAttachedMemberInfo com ctx r nonMangledNameConflicts
  -                (declaringEntityName: string option) (sign: FSharpAbstractSignature) attributes =
  -    let declaringEntityName = defaultArg declaringEntityName ""
  +                (declaringEntity: Fable.Entity option) (sign: FSharpAbstractSignature) attributes =
  +    let declaringEntityFields = HashSet<_>()
  +    let declaringEntityName =
  +        match declaringEntity with
  +        | Some x ->
  +            x.FSharpFields |> List.iter (fun x -> declaringEntityFields.Add(x.Name) |> ignore)
  +            x.FullName
  +        | None   -> ""
  +
       let isGetter = sign.Name.StartsWith("get_")
       let isSetter = not isGetter && sign.Name.StartsWith("set_")
       let indexedProp = (isGetter && countNonCurriedParamsForSignature sign > 0)
  
positive.code:     let bodyCtx, args = bindMemberArgs com ctx args
      let body = transformExpr com bodyCtx body |> run
      let entFullName = declaringEntity.FullName
      let name, info = getAttachedMemberInfo com ctx body.Range com.NonMangledAttachedMemberConflicts (Some entFullName) signature memb.Attributes
      com.AddAttachedMember(entFullName,
          { Name = name
            FullDisplayName = entFullName + "." + signature.Name
  
negative.code:                         if indexedProp then sign.Name, false, false
                          else Naming.removeGetSetPrefix sign.Name, isGetter, isSetter
                      // Setters can have same name as getters, assume there will always be a getter
                      if not isSetter &&
                          (nonMangledNameConflicts declaringEntityName name || declaringEntityFields.Contains(name)) then
                          sprintf "Member %s is duplicated, use Mangle attribute to prevent conflicts with interfaces" name
                          // TODO: Temporarily emitting a warning, because this errors in old libraries,
                          // like Fable.React.HookBindings
  