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