
#13775: Type family expansion is too lazy, allows accepting of ill-typed terms -------------------------------------+------------------------------------- Reporter: fizruk | Owner: diatchki Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.0.2 checker) | Keywords: Resolution: | CustomTypeErrors Operating System: Unknown/Multiple | Architecture: Type of failure: GHC accepts | Unknown/Multiple invalid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by diatchki): I remember how the implementation works. My comment was about the fact that GHC is perfectly happy to treat "stuck" types as ordinary types without fully resolving them, which is why it can solve constraints such as `Show (Proxy (TypeError ...))`, or `Show (Proxy (F Int))`. A different design choice is to refuse to solve such constraints until GHC is sure that the type functions involved will produce a valid result, but that's not what we currently do. As a result, neither the `TypeError` nor the missing `F Int` instance are reported, and the `Show` constraint is happily solved, which is---perhaps---somewhat confusing. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13775#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler