{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreig2atyi5eptqbgr6e37tydpxkq3gtqd6j6qyr7icr7zkrveq7v55a",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mosvnndujby2"
},
"path": "/t/error-ghc-91510-illegal-polymorphic-type/14304#post_2",
"publishedAt": "2026-06-21T17:16:27.000Z",
"site": "https://discourse.haskell.org",
"textContent": "If you extract it to a type synonym you get a more informative error message:\n\n\n type Foo :: (k -> k -> Type) -> (k -> Type) -> Constraint\n type Foo cat f = forall x. Objects cat (f x)\n\n\n\n T2.hs:28:1: error: [GHC-02550]\n • Quantified predicate must have a class or type variable head:\n forall (x :: k). Objects cat (f x)\n • In the quantified constraint ‘forall (x :: k). Objects cat (f x)’\n In the type synonym declaration for ‘Foo’\n |\n 28 | type Foo cat f = forall x. Objects cat (f x)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"title": "Error GHC-91510: illegal polymorphic type"
}