This bug was making GHC loop when printing external core from test T7239.
Apparently this fixes the build with dblatex 0.3.4.
…Binds This fixes Trac #7503.
…ble kinds This fixes Trac #7368. The problem was that we were matching Bad w ~ f (Bad f) where (f :: * -> *). Thta leads to (w ~ Bad f), which is ill-kinded, but matchExpectedTyConApp was returning the (Bad f) as the argument type, and that was being used to instanatiate w in the data constructor type, which is very bad. The code also becomes simpler and easier to understand, which is an excellent thing.
This reverts commit 5ea4927.
commit f184d9c Author: Simon Marlow <email@example.com> Date: Mon Dec 10 12:00:54 2012 +0000 Fix a bug in the handling of nested orElse Exposed by the following snippet, courtesy of Bas van Dijk and Patrick Palka on firstname.lastname@example.org: import Control.Concurrent.STM main = do x <- atomically $ do t <- newTVar 1 writeTVar t 2 ((readTVar t >> retry) `orElse` return ()) `orElse` return () readTVar t print x
Without -O, we previously tried to make interface files smaller by not including the data constructors of data types. But there are a lot of exceptions, notably when Template Haskell is involved or, more recently, DataKinds. However Trac #7445 shows that even without TemplateHaskell, using the Data class and invoking Language.Haskell.TH.Quote.dataToExpQ is enough to require us to expose the data constructors. So I've given up on this "optimisation" -- it's probably not important anyway. Now I'm simply not attempting to trim off the data constructors. The gain in simplicity is worth the modest cost in interface file growth, which is limited to the bits reqd to describe those data constructors. Conflicts: compiler/main/TidyPgm.lhs
This reverts the change in Trac #7347, which prevented promotion of existential data constructors. Ones with constraints in their types, or kind polymorphism, still can't be promoted.
This patch fixes a quite egregious bug. runTcS was intialising the 'untouchables' to NoUntouchables, which is quite wrong for the invocation in TcSimplify.simplifyInfer. Result: missed skolem-escape check and seg-fault city. All this is done differently, and better, in HEAD, so this patch is needed only on the branch.
This is a kludge, and means that ghc/haddock won't be able to use more than 2G of RAM. But it'll make sure that ghci works in the short term while we work on a proper fix.
Fixes Trac #7451. See Note [Kind Constraint and kind *] in Kind.lhs. Conflicts: compiler/types/Kind.lhs compiler/types/Type.lhs