
15 Jul
2010
15 Jul
'10
5:59 a.m.
Hi, I'm trying to get the following code to compile: ======= Main.hs ========== import IO data MyInt = MyInt Int data MyString = MyString String deriving Show class Show b => MyClass a b where fn :: a -> b instance MyClass MyInt MyString where fn (MyInt i) = MyString (show i) myprint :: (MyClass a b) => a -> IO () myprint a = putStrLn $ show (fn a) main = myprint 3 ======= Main.hs ========== with |ghc Main.hs -XMultiParamTypeClasses|. However, the compiler cannot deduce the type of the |b| type variable (which in this case is |MyString|). How can I explicitly tell this information to the compiler? Many thanks, Alex.