On Tue, 30 Mar 2004, S. Alexander Jacobson wrote: > Following the declaration of "instance Monad []" > in the prelude, and puzzling over the absence of > its equivalent from Data.Set, I naively typed: > > instance Monad Set where > m >>= k = concatSets (mapSet k m) > return x = unitSet x > fail s = emptySet > > concatSets sets = foldl union emptySet (setToList sets) > instance (Eq b,Ord b) => Ord (Set b) where > compare set1 set2 = compare (setToList set1) (setToList set2) > > and got the following error: > > Could not deduce (Ord b) from the context (Monad Set) > arising from use of `concatSets' at dbMeta3.hs:242 > Probable fix: > Add (Ord b) to the class or instance method `>>=' > In the definition of `>>=': >>= m k = concatSets (mapSet k m) > In the definition for method `>>=' > In the instance declaration for `Monad Set'
Surprisingly this is exact the same problem I posed in my mail "Context for type parameters of type constructors" just before. I wanted to create the class VectorSpace which is the analogon to Monad in your example. I'm excited if the answers to your question will help me. :-) _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
