{
"$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?"
}