[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.