{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihge5di44gpxqovgub62luz4paoso6lalkjnsurivqyljsvelxoge",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mo73lbbnjq42"
  },
  "path": "/t/the-hashtable-problem-a-litmus-test-for-external-impl-proposals/24396#post_11",
  "publishedAt": "2026-06-13T19:32:03.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "I think the best answer is instead to add a level of indirection, not unlike we have with the buildhasher already.\n\nIf I use a `CustomizedBinaryHeap<MyCustomStrategy, T>` (where `BinaryHeap<T> = CustomizedBinaryHeap<DefaultOrdStrategy, T>`), then you can put any trait impl you want on your _local_ `MyCustomStrategy` type. So even if the `T` is some external type, that's fine.\n\nThat way the instances carry around the necessarily \"impls\" without needing all these extra features for adding new ways to specify things.",
  "title": "The Hashtable Problem: A Litmus Test for External Impl Proposals"
}