Hi Fredrik,

Temaran wrote:
> 
> data Dar = Dar String String
>   deriving (Show, Eq)
> 
> class Bar a where
> foo :: a -> Int
> 
> instance Bar Dar where
> foo(Dar n c) = length c
> 
> but it keeps generating the same error;
> 
> ERROR "./Bar.hs":16 - Inferred type is not general enough
> *** Expression    : foo
> *** Expected type : a -> Int
> *** Inferred type : Dar -> Int
> 

You're missing indentation. Instead of declaring foo as a member of the
typeclass, your code says it's a top-level function fully-polymorphic in the
first parameter. That's why defining it later as foo (Dar ...) gives the
error message it does.

-- 
View this message in context: 
http://www.nabble.com/Essentials-about-type-classes--tp25393728p25405022.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to