[GHC] #15740: Type family with higher-rank result is too accepting

GHC ghc-devs at haskell.org
Thu Oct 11 21:10:29 UTC 2018


#15740: Type family with higher-rank result is too accepting
-------------------------------------+-------------------------------------
           Reporter:  goldfire       |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.6.1
           Keywords:  TypeFamilies,  |  Operating System:  Unknown/Multiple
  TypeInType                         |
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 GHC accepts this garbage:

 {{{
 type family F2 :: forall k. k -> Type
 data SBool :: Bool -> Type
 data Nat
 data SNat :: Nat -> Type
 type instance F2 = SBool
 type instance F2 = SNat
 }}}

 The family `F2` should have an arity of 0, meaning that only one instance
 is possible -- and the RHS of that instance must have kind `forall k. k ->
 Type`. In other words, even accepting only one of the instances above is
 hogwash.

 This is from comment:15:ticket:11719, but you don't have to read that to
 understand this.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15740>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list