
I say "in principle" because although most `Generic` instances (and hence `Rep` instances) are derived, a devilish programmer //could// handwrite a `Rep` instance that violates injectivity. That could be checked if GHC ends up adding support for head-injectivity,
#12057: TypeFamilyDependencies on Data.Type.Bool's `Not` -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Iceland_jack Type: feature request | Status: new Priority: normal | Milestone: Component: libraries/base | Version: 8.0.1 Resolution: | Keywords: TypeFamilies, | Injective, newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D2268 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Iceland_jack): Replying to [comment:7 RyanGlScott]: there may be use cases for an injective `Rep`.
Out of curiosity, are there any other type families in `base` besides `Not` that can be injective? I can sift through `base` and see if there are others, posting them here.
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12057#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler