How is deriving coded in ghc. For example the "Typeable" class, when in the compilation sequence is this expanded? Which modules do this, and which functions? Keean.