data D1 where MkD1 :: (forall (p :: k -> *) (a :: k). p a -> Int) -> D1 -- Defined at :3:1 data D2 where MkD2 :: (forall (p :: k -> *) (a :: k). p a -> Int) -> D2 -- Defined at :4:1