[GHC] #14846: Renamer hangs (because of -XInstanceSigs?)

GHC ghc-devs at haskell.org
Fri Feb 23 17:10:27 UTC 2018


#14846: Renamer hangs (because of -XInstanceSigs?)
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.5
      Resolution:                    |             Keywords:  InstanceSigs
                                     |  TypeInType
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 RyanGlScott):

 I can't reproduce this with either version of GHC you give:

 {{{
 $ /opt/ghc/8.2.2/bin/ghci Bug.hs
 GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/rgscott/.ghci
 [1 of 1] Compiling Main             ( Bug.hs, interpreted )

 Bug.hs:29:8: error:
     • Couldn't match type ‘ríki1’ with ‘Hom ríki’
       ‘ríki1’ is a rigid type variable bound by
         the type signature for:
           i :: forall k2 (cls1 :: k2 -> Constraint) (a :: Struct
                                                             cls1) (ríki1
 :: Struct cls1
 -> Struct cls1 -> *).
                StructI a =>
                ríki1 a a
         at Bug.hs:29:8-42
       Expected type: ríki1 a a
         Actual type: Hom ríki a a
     • When checking that instance signature for ‘i’
         is more general than its signature in the class
         Instance sig: forall (a :: Struct cls0). StructI a => Hom ríki a a
            Class sig: forall k (cls :: k -> Constraint) (a :: Struct
                                                                 cls) (ríki
 :: Struct cls
 -> Struct cls -> *).
                       StructI a =>
                       ríki a a
       In the instance declaration for ‘Category (Hom ríki)’
    |
 29 |   i :: forall a. StructI a => Hom ríki a a
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 Bug.hs:30:12: error:
     • Could not deduce: cls1 a1 arising from a use of ‘struct’
       from the context: Category ríki
         bound by the instance declaration at Bug.hs:28:10-65
       or from: StructI a
         bound by the type signature for:
                    i :: forall (a :: Struct cls0). StructI a => Hom ríki a
 a
         at Bug.hs:29:8-42
     • In the expression: struct :: AStruct (Structured a cls)
       In the expression: case struct :: AStruct (Structured a cls) of
       In an equation for ‘i’:
           i = case struct :: AStruct (Structured a cls) of
    |
 30 |   i = case struct :: AStruct (Structured a cls) of
    |            ^^^^^^
 }}}

 What am I missing?

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


More information about the ghc-tickets mailing list