forall in constraint

Alan & Kim Zimmerman alan.zimm at
Mon Oct 23 15:06:57 UTC 2017

I am working on the Trees that Grow stuff, and hit a small problem

I have

type family XIB               x thing
type family XNewImplicitBndrs x thing

type ForallXImplicitBndrs (c :: * -> Constraint) (x :: *) (thing :: *) =
       ( c (XIB               x thing)
       , c (XNewImplicitBndrs x thing)

and I want to extend the DataId constraint

type DataId p =
  ( Data p

  , ForallXImplicitBndrs Data p thing

But the problem is I do not have `thing` at this point, and to get it in
the code will involve some hs-boot nastiness.

Is there any way to require "forall thing. Data thing" inside the DataId

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list