From d8a9b534050f62f65d9db0d69aad9733f687ef8b Mon Sep 17 00:00:00 2001 From: simonpj Date: Tue, 18 Jun 2002 14:00:07 +0000 Subject: [PATCH] [project @ 2002-06-18 14:00:07 by simonpj] Comments only --- ghc/compiler/typecheck/TcInstDcls.lhs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ghc/compiler/typecheck/TcInstDcls.lhs b/ghc/compiler/typecheck/TcInstDcls.lhs index 79ac540..76b87ce 100644 --- a/ghc/compiler/typecheck/TcInstDcls.lhs +++ b/ghc/compiler/typecheck/TcInstDcls.lhs @@ -648,6 +648,8 @@ tcInstDecl2 (InstInfo { iDFunId = dfun_id, iBinds = monobinds, iPrags = uprags } main_bind `AndMonoBinds` prag_binds `AndMonoBinds` sc_binds_outer) \end{code} +Superclass loops +~~~~~~~~~~~~~~~~ We have to be very, very careful when generating superclasses, lest we accidentally build a loop. Here's an example: @@ -699,6 +701,7 @@ tcSuperClasses inst_tyvars' dfun_arg_dicts sc_dicts -- We must simplify this all the way down -- lest we build superclass loops + -- See notes about superclass loops above tcSimplifyTop sc_lie `thenTc` \ sc_binds2 -> returnTc (zonked_inst_tyvars, sc_binds1, sc_binds2) -- 1.7.10.4