∀ {α : Type u} {β : Type v} [inst : BEq α] [inst_1 : Hashable α] {m : Std.HashMap.Raw α β} [inst_2 : EquivBEq α]
  [LawfulHashable α] {k k' : α} {f : Option β → Option β},
  m.WF →
    (m.alter k f).getKey? k' =
      if (k == k') = true then if (f m[k]?).isSome = true then some k else none else m.getKey? k'