[Haskell-cafe] Deduce problem.

MigMit miguelimo38 at yandex.ru
Thu Nov 17 05:34:24 CET 2011


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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe




More information about the Haskell-Cafe mailing list