[GHC] #16299: :info pretty-prints data types with non-Type return kinds oddly

GHC ghc-devs at haskell.org
Sun Feb 10 15:09:32 UTC 2019


#16299: :info pretty-prints data types with non-Type return kinds oddly
-------------------------------------+-------------------------------------
           Reporter:  RyanGlScott    |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.6.3
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Consider this GHCi session:

 {{{
 $ ghci -XUnboxedTuples
 GHCi, version 8.6.3: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/ryanglscott/.ghci
 λ> :i (##)
 data (##) :: TYPE ('GHC.Types.TupleRep '[]) = (##)
         -- Defined in ‘GHC.Prim’
 }}}

 Notice that we're printing `data (##) :: TYPE ('GHC.Types.TupleRep '[]) =
 (##)`. Yuck! Granted, you can't define an unboxed tuple like this anyway,
 but the presence of that kind signature (which definitely doesn't belong
 in a Haskell98-style data declaration) makes things worse.

 In case if you're wondering if this is an unboxed tuple–specific problem,
 it's not. This issue also creeps up in the
 [https://phabricator.haskell.org/D4777 WIP implementation] of unlifted
 newtypes:

 {{{
 λ> newtype T = MkT Int#
 λ> :i T
 newtype T :: TYPE 'IntRep = MkT Int#
         -- Defined at <interactive>:5:1
 }}}

 However, as this ticket demonstrates, this problem has existed well before
 the unlifted newtypes patch, and more importantly, this can be fixed
 independently of that patch.

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


More information about the ghc-tickets mailing list