From: simonpj Date: Wed, 9 Feb 2005 14:02:31 +0000 (+0000) Subject: [project @ 2005-02-09 14:02:31 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~1096 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d032a372ea5d5e2741c54895b2605ff7ef7ed350 [project @ 2005-02-09 14:02:31 by simonpj] Add comment --- 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