X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcInstDcls.lhs;h=468d9a9015bd6fe7fabadda234ebae7d7b889f27;hb=e4137764fddd9003f1d2a234de7b2fc076be335d;hp=3236b6715121085b17badc1fb0864336c60ca130;hpb=3ad8f84f6a75f240383e62a14472d14eb372dcd1;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcInstDcls.lhs b/compiler/typecheck/TcInstDcls.lhs index 3236b67..468d9a9 100644 --- a/compiler/typecheck/TcInstDcls.lhs +++ b/compiler/typecheck/TcInstDcls.lhs @@ -179,16 +179,19 @@ tcInstDecls1 tycl_decls inst_decls deriv_decls -- (3) Instances from generic class declarations ; generic_inst_info <- getGenericInstances clas_decls - -- (3) Compute instances from "deriving" clauses; - -- This stuff computes a context for the derived instance decl, so it - -- needs to know about all the instances possible; hence inst_env4 - tcDeriving tycl_decls `thenM` \ (deriv_inst_info, deriv_binds) -> - addInsts deriv_inst_info $ + -- Next, construct the instance environment so far, consisting + -- of + -- a) local instance decls + -- b) generic instances + -- c) local family instance decls + ; addInsts local_info $ do { + ; addInsts generic_inst_info $ do { + ; addFamInsts at_idx_tycon $ do { -- (4) Compute instances from "deriving" clauses; -- This stuff computes a context for the derived instance -- decl, so it needs to know about all the instances possible - ; (deriv_inst_info, deriv_binds) <- tcDeriving tycl_decls + ; (deriv_inst_info, deriv_binds) <- tcDeriving tycl_decls deriv_decls ; addInsts deriv_inst_info $ do { ; gbl_env <- getGblEnv