{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidh5ltipkmpnzxmtg5c3fck3xyq7eg7fs7zku5askrnmg4zkdwmhi",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mlsigtxoamh2"
  },
  "path": "/t/is-it-okay-to-use-the-cabal-solver-to-conditionally-define-dependencies-and-instances-like-this/14103#post_4",
  "publishedAt": "2026-05-14T08:06:31.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "clinton:\n\n> The problem is, yes, this is an orphan instance, so wherever one wants to use the instance you’ll have to explicitly import the module it comes from which is a bit annoying.\n\nThat’s how you’d import plain functions, so I don’t see an issue.\n\nUltimately a proper solution here would be a new Cabal(/GHC?) feature, somehow giving `alice` the right to pull `alice-bob-instance` if `bob` is also present. This is not the kind of information you can encode into a manifest by yourself.\n\n* * *\n\nAlso do consider that not everything needs to be an instance. They should be unambiguous, and the QuickCheck discussion above is over a type class that is, well, `Arbitrary`.",
  "title": "Is it okay to use the cabal solver to conditionally define dependencies and instances like this?"
}