DeriveDataTypeable - deriving instance Data (Mu (Const ()))
{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-}
import qualified Data.Data
data Mu f = Mu (f (Mu f))
deriving instance Data.Data.Data (Mu (Const ()))
produces
• No instance for (Data (Const () (Mu (Const ()))))
arising from a use of ‘k’
• In the expression: (z Mu `k` a1)
In an equation for ‘gfoldl’: gfoldl k z (Mu a1) = (z Mu `k` a1)
When typechecking the code for ‘gfoldl’
in a derived instance for ‘Data (Mu (Const ()))’:
To see the code I am typechecking, use -ddump-deriv
In the instance declaration for ‘Data (Mu (Const ()))’
while other type constructors work, e.g.
deriving instance Data.Data.Data (Mu [])
deriving instance Data.Data.Data (Mu ((,) ()))
i am not sure if #10835 (closed) is related.