[GHC] #11028: Refactor ConDecl

GHC ghc-devs at haskell.org
Wed Nov 25 20:07:33 UTC 2015


#11028: Refactor ConDecl
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  alanz
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.10.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by alanz):

 Commit https://phabricator.haskell.org/rGHCff2978cac0cd fails with the
 res_ty not matching,

 When type checking

 {{{#!hs
 data MaybeO ex t where
   JustO    :: t -> MaybeO O t
   NothingO ::      MaybeO C t
 }}}

 This code generates.

 {{{
 libraries/hoopl/src/Compiler/Hoopl/Block.hs:66:3: error:
     • Data constructor ‘JustO’ returns type ‘t -> MaybeO O t’
         instead of an instance of its parent type ‘MaybeO ex t’
     • In the definition of data constructor ‘JustO’
       In the data type declaration for ‘MaybeO’
 }}}

 I am pretty sure the `res_ty'` variable in [1] should be `MaybeO O t` but
 it is not clear how this happens in the original code.


 [1]
 https://github.com/ghc/ghc/blob/ff2978cac0cd133c2434480e311bed6aea72c6f1/compiler/typecheck/TcTyClsDecls.hs#L1398

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


More information about the ghc-tickets mailing list