[project @ 2002-11-21 11:31:34 by simonpj]
authorsimonpj <unknown>
Thu, 21 Nov 2002 11:31:34 +0000 (11:31 +0000)
committersimonpj <unknown>
Thu, 21 Nov 2002 11:31:34 +0000 (11:31 +0000)
commita06f5e7b2158b57e40ebf255eb9d0b74e9625762
tree2d740b36892e4de6abeb20cb7e04475cfdf3b155
parent49c120b93b0688863d46582eee6b20bfbed6c077
[project @ 2002-11-21 11:31:34 by simonpj]
--------------------------------
Compile instance declarations better
--------------------------------

This commit makes the type checker build better dictionaries
from instance declarations.  "Better" in the sense that if a
binding in the instance declaration mentions one of the other
methods of the same class, we use that method directly rather
than going via a (recursive) use of the dictionary.

This makes it easier to unravel recursive knots, and that
makes more inlining happen.  There's a long comment in
TcInstDcls.tcMethods

Makes the Monad instance for ST much more inlinable, and that
makes spectral/fibheaps go faster, among other things.
ghc/compiler/typecheck/TcInstDcls.lhs