From d032a372ea5d5e2741c54895b2605ff7ef7ed350 Mon Sep 17 00:00:00 2001 From: simonpj Date: Wed, 9 Feb 2005 14:02:31 +0000 Subject: [PATCH] [project @ 2005-02-09 14:02:31 by simonpj] Add comment --- ghc/compiler/typecheck/TcSimplify.lhs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ghc/compiler/typecheck/TcSimplify.lhs b/ghc/compiler/typecheck/TcSimplify.lhs index cf22d42..4c0ca4b 100644 --- a/ghc/compiler/typecheck/TcSimplify.lhs +++ b/ghc/compiler/typecheck/TcSimplify.lhs @@ -1844,11 +1844,11 @@ We have to be careful here. If we are *given* d1:Ord a, and want to deduce (d2:C [a]) where class Ord a => C a where - instance Ord a => C [a] where ... + instance Ord [a] => C [a] where ... -Then we'll use the instance decl to deduce C [a] and then add the +Then we'll use the instance decl to deduce C [a] from Ord [a], and then add the superclasses of C [a] to avails. But we must not overwrite the binding -for d1:Ord a (which is given) with a superclass selection or we'll just +for Ord [a] (which is obtained from Ord a) with a superclass selection or we'll just build a loop! Here's another variant, immortalised in tcrun020 -- 1.7.10.4