[project @ 2004-11-25 11:36:34 by simonpj]
authorsimonpj <unknown>
Thu, 25 Nov 2004 11:37:19 +0000 (11:37 +0000)
committersimonpj <unknown>
Thu, 25 Nov 2004 11:37:19 +0000 (11:37 +0000)
------------------------------------------
Keep-alive set and Template Haskell quotes
------------------------------------------

a) Template Haskell quotes should be able to mention top-leve
   things without resorting to lifting.  Example

module Foo( foo ) where
  f x = x
  foo = [| f 4 |]

   Here the reference to 'f' is ok; no need to 'lift' it.
   The relevant changes are in TcExpr.tcId

b) However, we must take care not to discard the binding for f,
   so we add it to the 'keep-alive' set for the module.  I've
   now made this into (another) mutable bucket, tcg_keep,
   in the TcGblEnv

c) That in turn led me to look at the handling of orphan rules;
   as a result I made IdCoreRule into its own data type, which
   has simle but non-local ramifications


No differences found