
#10604: Make Generic1 kind polymorphic -------------------------------------+------------------------------------- Reporter: DerekElkins | Owner: ekmett Type: feature request | Status: new Priority: low | Milestone: Component: Core Libraries | Version: 7.10.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by DerekElkins): Replying to [comment:2 dreixel]:
Do you have any particular use for this?
I was making a data type parameterized by a data kind because it was built over another data type parameterized by a data kind. This blocked being able to use GHC Generics with the type. In this case, since I controlled the other data type, I just switched it to using empty data types of kind * rather than a data kind, so I'm not blocked by this. If that other data type had been from a library or if data kinds were critical, this wouldn't have been an option. The Tree type here https://github.com/derekelkins/ads/blob/master/Data/Authenticated/GenericExa... was where I ran into the problem when the Auth type was parameterized by a data kind. You can see here, https://github.com/derekelkins/ads/blob/master/Data/Authenticated/Generic.hs, that the Par1 constructor doesn't make sense in my context. In fact, with DataKinds I would not need that comment, because it would simply be illegal to make a type that used Par1. It would be a self-evident kind error rather than a less obvious missing instance error. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10604#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler