[Haskell-cafe] Type synonym involing quantified constraint?
Richard Eisenberg
lists at richarde.dev
Tue Aug 31 18:09:17 UTC 2021
This looks like a bug, which I've now filed: https://gitlab.haskell.org/ghc/ghc/-/issues/20318
The workaround is to enable ImpredicativeTypes. Sadly, ImpredicativeTypes is really a bug in GHC 8.10, fixed to work properly in GHC 9.2. So if I were doing this, I would define the offending synonym in a module all by itself so that the scope of ImpredicativeTypes is as small as possible.
Richard
> On Aug 31, 2021, at 11:45 AM, Michael Sperber <sperber at deinprogramm.de> wrote:
>
>
> I'm working on Conal's ConCat code, and keep putting quantified
> constraints like this in instance constraints:
>
> (okk ~ Ok k, forall x y. (okk x, okk y) => okk (Prod k x y))
>
> (The okk ~ Ok k is necessary because Ok is an associated type.)
>
> Is there any way to define a type synonym for this? Like
>
> type OkProd k = (okk ~ Ok k, forall x y. (okk x, okk y) => okk (Prod k x y))
>
> ghc (8.10.4) complains about an impredicative type.
>
> Help would be much appreciated!
>
> --
> Regards,
> Mike
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
More information about the Haskell-Cafe
mailing list