[GHC] #7730: :info and polykinds

GHC ghc-devs at haskell.org
Tue May 6 13:34:53 UTC 2014


#7730: :info and polykinds
--------------------------------------------+------------------------------
        Reporter:  monoidal                 |            Owner:  archblob
            Type:  bug                      |           Status:  new
        Priority:  normal                   |        Milestone:  7.10.1
       Component:  Compiler (Type checker)  |          Version:  7.6.2
      Resolution:                           |         Keywords:
Operating System:  Unknown/Multiple         |     Architecture:
 Type of failure:  None/Unknown             |  Unknown/Multiple
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:  #8776
--------------------------------------------+------------------------------

Comment (by archblob):

 I have implemented what we have discussed in comment 28 as

 {{{
 data IfaceType = .... | IfaceTyConApp IfaceTyCon [IfaceTcArg] | ...
 data IfaceTcArg
   = ITC_Type IfaceType
   | ITC_Kind IfaceKind
 }}}
 because as I understood it all we want are tags, so I have found this
 easier to work with than ad hoc lists, please correct me if I am wrong.

 I also saw that you have changed the way we print foralls, so I will
 implement that approach in this case too.

 We will also have to add extra information to one of
 {{{IfaceClosedSynFamilyTyCon}}} or {{{IfaceSyn}}} constructors in order to
 print closed type families the way we do now, but this should not be a
 problem.

 I have run the tests and the implementation works except when printing
 qualified names, for example:
 {{{ data Int = GHC.Types.I# GHC.Prim.Int# }}} prints like {{{data Int = I#
 GHC.Prim.Int#}}} this is T8469, and we have more of the same for ghci051
 with
 {{{
 -data Ghci1.T = A | ...         -- Defined at <interactive>:3:10
 -data Ghci4.T = B | ...         -- Defined at <interactive>:6:12
 +data T = A | ...       -- Defined at <interactive>:3:10
 +data T = B | ...       -- Defined at <interactive>:6:12
 }}}
 I will look into this after I sorted out all the other stuff, but in the
 mean time any suggestions would be nice.

 I wrote this as a progress update, and if everything goes well i'll have
 the patch ready in a couple of days.

 Andrei

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


More information about the ghc-tickets mailing list