You've declared "from" as forall b. Test -> [b], but you're trying to implement it as Test -> H.
On 17 Nov 2011, at 07:48, Magicloud Magiclouds wrote: > Hi, > Consider I have declarations like this: > class (ClassA a) => ClassC a where > from :: (ClassB b) => a -> [b] > to :: (ClassB c) => a -> [c] > > data H = ... > > instance ClassB H where > ... > > data Test = Test { m :: H } > instance ClassA Test where > ... > instance ClassC Test where > from = m > to = m > > Well, I got "could not deduce" error here at "from = m" and "to = > m". `c' is a rigid type variable bound by the type signature for to :: > ClassB c => Test -> [c]. > Referring to some similar questions on internet, I should remove the > (ClassB c) thing. Is this the only solution? > -- > 竹密岂妨流水过 > 山高哪阻野云飞 > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe