From: simonpj Date: Tue, 18 Jun 2002 14:00:07 +0000 (+0000) Subject: [project @ 2002-06-18 14:00:07 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~1951 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d8a9b534050f62f65d9db0d69aad9733f687ef8b;p=ghc-hetmet.git [project @ 2002-06-18 14:00:07 by simonpj] Comments only --- 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)