
Hello all, Ghc complainend about Could not deduce (Arbitrary a1) arising from a use of ‘arbitrary’ Could not deduce (Eq a1) arising from a use of ‘arbitrary’ in the following code .. data CList a = CList [Change a] deriving Show instance (Arbitrary c, Eq c) => Arbitrary (CList c) where arbitrary = do ts <- orderedList :: Gen[Time] vs <- listOf arbitrary :: Arbitrary c => Gen [c] return $ CList $ zipWith (\t v -> Chg t v) (nub ts) vs instance (Arbitrary a, Eq a) => Arbitrary (Temporal a) where arbitrary = do d <- arbitrary (CList cs) <- arbitrary :: (Arbitrary a, Eq a) => Gen (CList a) -- <=== return (Temporal d cs) ..if I leave out the class constraints in the line maked with "<===". Why is that so, i.e. why isn't the constraint four lines up (in the instance declaration) sufficient?