# `Reach.Check.Changed.DisplacedFact`
[🔗](https://github.com/elixir-vibe/reach/blob/v2.8.4/lib/reach/check/changed/displaced_fact.ex#L1)

A persistent evidence fact that moved instead of being resolved.

# `family`

```elixir
@type family() :: :dual_key_contract | :default_drift | :exact_clone
```

# `t`

```elixir
@type t() :: %Reach.Check.Changed.DisplacedFact{
  confidence: :high | :medium,
  family: family(),
  fingerprint: String.t(),
  key: String.t() | nil,
  message: String.t(),
  new_locations: [map()],
  occurrences_after: pos_integer(),
  occurrences_before: pos_integer(),
  old_locations: [map()],
  status: :displaced,
  suggestion: String.t()
}
```

# `new`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
