[Haskell-cafe] Deduce problem.

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Thu Nov 17 04:48:55 CET 2011


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?
-- 
竹密岂妨流水过
山高哪阻野云飞



More information about the Haskell-Cafe mailing list