[GHC] #9834: GHC panic when used with deferred type errors

GHC ghc-devs at haskell.org
Tue Nov 25 16:26:58 UTC 2014


#9834: GHC panic when used with deferred type errors
-------------------------------------+-------------------------------------
              Reporter:              |            Owner:
  Iceland_jack                       |           Status:  new
                  Type:  bug         |        Milestone:
              Priority:  normal      |          Version:  7.8.2
             Component:  Compiler    |         Keywords:
  (Type checker)                     |     Architecture:  Unknown/Multiple
            Resolution:              |       Difficulty:  Unknown
      Operating System:  Linux       |       Blocked By:
       Type of failure:  GHCi crash  |  Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Works fine in HEAD. Can someone try the 7.8.4 branch?

 Here are the HEAD error messages.  I have not looked at them, but there is
 no crash.
 {{{
 T9834.hs:24:10: Warning:
     Couldn't match type ‘p’ with ‘(->) (p a0)’
       ‘p’ is a rigid type variable bound by
           the class declaration for ‘ApplicativeFix’ at T9834.hs:22:39
     Expected type: (forall (q :: * -> *).
                     Applicative q =>
                     Comp p q a -> Comp p q a)
                    -> p a
       Actual type: (forall (q :: * -> *).
                     Applicative q =>
                     Nat (Comp p q) (Comp p q))
                    -> p a0 -> p a0
     Relevant bindings include
       afix :: (forall (q :: * -> *).
                Applicative q =>
                Comp p q a -> Comp p q a)
               -> p a
         (bound at T9834.hs:24:3)
     In the expression: wrapIdComp
     In an equation for ‘afix’: afix = wrapIdComp

 T9834.hs:24:10: Warning:
     Couldn't match type ‘a’ with ‘p a0’
       ‘a’ is a rigid type variable bound by
           the type signature for
             afix :: (forall (q :: * -> *).
                      Applicative q =>
                      Comp p q a -> Comp p q a)
                     -> p a
           at T9834.hs:23:11
     Expected type: (forall (q :: * -> *).
                     Applicative q =>
                     Comp p q a -> Comp p q a)
                    -> p a
       Actual type: (forall (q :: * -> *).
                     Applicative q =>
                     Nat (Comp p q) (Comp p q))
                    -> p a0 -> p a0
     Relevant bindings include
       afix :: (forall (q :: * -> *).
                Applicative q =>
                Comp p q a -> Comp p q a)
               -> p a
         (bound at T9834.hs:24:3)
     In the expression: wrapIdComp
     In an equation for ‘afix’: afix = wrapIdComp

 T9834.hs:24:10: Warning:
     Couldn't match type ‘a’ with ‘a1’
       ‘a’ is a rigid type variable bound by
           the type signature for
             afix :: (forall (q :: * -> *).
                      Applicative q =>
                      Comp p q a -> Comp p q a)
                     -> p a
           at T9834.hs:23:11
       ‘a1’ is a rigid type variable bound by
            a type expected by the context:
              Applicative q => Comp p q a1 -> Comp p q a1
            at T9834.hs:24:10
     Expected type: Comp p q a1 -> Comp p q a1
       Actual type: Comp p q a -> Comp p q a
     Relevant bindings include
       afix :: (forall (q :: * -> *).
                Applicative q =>
                Comp p q a -> Comp p q a)
               -> p a
         (bound at T9834.hs:24:3)
     In the expression: wrapIdComp
     In an equation for ‘afix’: afix = wrapIdComp
 }}}

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


More information about the ghc-tickets mailing list