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