[project @ 2002-03-12 09:13:08 by simonpj]
authorsimonpj <unknown>
Tue, 12 Mar 2002 09:13:08 +0000 (09:13 +0000)
committersimonpj <unknown>
Tue, 12 Mar 2002 09:13:08 +0000 (09:13 +0000)
commit65f44e3892531fb10318809df1205112e7696e6a
treeb2f18fce17ea0660aa03b00ea6788541bd1b8c8e
parent49c84dec1a5612852fb0f484e7dd3be0c99636f4
[project @ 2002-03-12 09:13:08 by simonpj]
-----------
Fix mkSynTy
-----------

Fix a nasty and long-lived bug in mkSynTy which meant that in:

newtype A a = A a
type B = A
f :: B Double

the type (B Double) wasn't regarded properly as (A Double).  This bug
has lasted for a long time because the type inference engine is fairly
forgiving about missing the invariant that a TyConApp always looks
like one right at the top level.  In fact, it's so forgiving that I
don't know how to tickle this bug into showing up.  (It showed up in
5.02, becuase the context-simplification for 'deriving' is done by a
different engine as all the other context simplification.)

Still, the invariant should hold, and this fix makes it so.
ghc/compiler/types/Type.lhs