
I’m lost. Could you give me a bit more context? I’m deeply suspicious about that ForallXImplicitBndrs thing with strange higher kinded parameters. Smells all wrong to me. Simon From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Alan & Kim Zimmerman Sent: 23 October 2017 16:07 To: ghc-devs@haskell.org Subject: forall in constraint 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 constraint? Alan