Hello again 😅 Long time no see!
A slightly weird use case: this fails to derive ConstraintsB (but notably is fine with just FunctorB) because of a failure to deduce some Coercible instance.
import Barbies qualified as B
data family T x :: (Type -> Type) -> Type
data instance T () f = C { s :: f Bool }
deriving stock Generic
deriving anyclass (B.FunctorB, B.ConstraintsB)
Weirder still, the error suggests that GHC made no progress on Zip at all here, getting immediately stuck at the datatype metadata level:
...: error:
• Could not deduce: Coercible
(barbies-2.0.4.0:Data.Generics.GenericN.Zip
(Rep
(T (barbies-2.0.4.0:Data.Generics.GenericN.Param 1 ())
(barbies-2.0.4.0:Data.Generics.GenericN.Param 0 f)))
(G.D1
('G.MetaData "T" "Main" "main" 'False)
(G.C1
('G.MetaCons "C" 'G.PrefixI 'True)
(G.S1
('G.MetaSel
('Just "s")
'G.NoSourceUnpackedness
'G.NoSourceStrictness
'G.DecidedLazy)
(G.Rec0 (f Bool))))))
(G.Rec0 (f Bool))
arising from the 'deriving' clause of a data type declaration
from the context: B.AllB c (T ())
bound by the deriving clause for ‘B.ConstraintsB (T ())’
at ...
• When deriving the instance for (B.ConstraintsB (T ()))
|
68 | deriving anyclass (B.FunctorB, B.ConstraintsB)
| ^^^^^^^^^^^^^^
I don't understand enough of the Barbies internals to give a good guess as to why, so before I do any rummaging, do you have any idea? Otherwise, I'll see whether I can figure it out.
Thanks!
Tom
Hello again 😅 Long time no see!
A slightly weird use case: this fails to derive
ConstraintsB(but notably is fine with justFunctorB) because of a failure to deduce someCoercibleinstance.Weirder still, the error suggests that GHC made no progress on
Zipat all here, getting immediately stuck at the datatype metadata level:I don't understand enough of the Barbies internals to give a good guess as to why, so before I do any rummaging, do you have any idea? Otherwise, I'll see whether I can figure it out.
Thanks!
Tom