- tcDeriving prs this_mod inst_env2
- get_fixity tycl_decls `thenTc` \ (deriv_inst_info, deriv_binds) ->
- addInstInfos inst_env2 deriv_inst_info `thenNF_Tc` \ final_inst_env ->
-
- returnTc (final_inst_env,
- generic_inst_info ++ deriv_inst_info ++ local_inst_info,
- deriv_binds)
-
-initInstEnv :: PersistentCompilerState -> HomeSymbolTable -> NF_TcM InstEnv
--- Initialise the instance environment from the
--- persistent compiler state and the home symbol table
-initInstEnv pcs hst
- = let
- pkg_inst_env = pcs_insts pcs
- hst_dfuns = foldModuleEnv ((++) . md_insts) [] hst
- in
- addInstDFuns pkg_inst_env hst_dfuns
-
-addInstInfos :: InstEnv -> [InstInfo] -> NF_TcM InstEnv
-addInstInfos inst_env infos = addInstDFuns inst_env (map iDFunId infos)
+ tcDeriving tycl_decls `thenM` \ (deriv_inst_info, deriv_binds, fvs) ->
+ tcExtendLocalInstEnv deriv_inst_info $