[GHC] #16059: checkValidType is defeated by a type synonym

GHC ghc-devs at haskell.org
Tue Dec 18 16:40:24 UTC 2018


#16059: checkValidType is defeated by a type synonym
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Compiler (Type    |              Version:  8.7
  checker)                           |
      Resolution:                    |             Keywords:
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 goldfire):

 The problem in this code

 {{{#!hs
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE RankNTypes #-}
 module Bug where

 type Foo b = Eq b => b

 f :: forall b (a :: Foo b). Int
 f = 42
 }}}

 is the ''definition'' of `Foo`, not the usage of it. As comment:3
 illustrates and comment:4 elaborates, we don't really want to check the
 expansion of a type synonym in this way. (Hold off on considering
 `LiberalTypeSynonyms` for now.) Even with the rather transparent
 interpretation of type synonyms in GHC, I think they should offer ''some''
 level of abstraction (in contrast to the position in comment:4): it seems
 that allowing type synonyms at least to hide what extensions are enabled
 is sensible.

 What about `LiberalTypeSynonyms`? I don't know. But let's see if we can
 agree on conservative synonyms first, and then we'll move to liberal ones.

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


More information about the ghc-tickets mailing list