[project @ 1999-05-28 08:07:52 by simonpj]
authorsimonpj <unknown>
Fri, 28 May 1999 08:07:54 +0000 (08:07 +0000)
committersimonpj <unknown>
Fri, 28 May 1999 08:07:54 +0000 (08:07 +0000)
commit00eefb90925f224c1e22963df2a00d70fe934d5f
treed56b0f0bf5e1e11827b3c3b19036f36b0a4ef7b0
parentbe97d35b91db37fed3f5a4ea1f6efc538e3daaaa
[project @ 1999-05-28 08:07:52 by simonpj]
Make the renamer so that the class ops on the LEFT HAND SIDE
of the bindings of an instance decl count as free variables
of that declaration.  E.g.

instance Foo [a] where
  op x  = ...
  bop y = ...

Here, 'op' and 'bop' are now counted as free variables of
the decl.

This is vital, because the class decl for Foo might be imported,
and look like this:

class Foo a where
  op  :: a -> S
  bop :: T -> a

and these might happen to be the only mentions of S and T
in the program.  Then we need to treat S and T as instance
gates for the purpose of hauling in further instance decls,
and the Right Way to do that is to announce that 'op' and
'bop' have been mentioned.

I also removed the (now obselete) rn_omit field in the
monad.
ghc/compiler/rename/Rename.lhs
ghc/compiler/rename/RnBinds.lhs
ghc/compiler/rename/RnMonad.lhs
ghc/compiler/rename/RnNames.lhs