
#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