#13674: Poor error message which masks occurs-check failure -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.0.1 checker) | Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Simon Peyton Jones <simonpj@…>): In [changeset:"c2eea089e7978416c6882a5456117db27b8f45ba/ghc" c2eea08/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="c2eea089e7978416c6882a5456117db27b8f45ba" Make isInsolubleOccursCheck more aggressive Consider type family F a :: * -> * Then (a ~ F Int a) is an insoluble occurs check, and can be reported as such. Previous to this patch, TcType.isInsolubleOccursCheck was treating any type-family application (including an over-saturated one) as unconditionally not-insoluble. This really only affects error messages, and then only slightly. I tripped over this when investigating Trac #13674. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13674#comment:11> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler