的,我試圖讓下面的代碼編譯推導型多參數類型的類
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 (MyInt 3)
與ghc Main.hs -XMultiParamTypeClasses
。但是,編譯器無法推導出b
類型變量(在本例中爲MyString
)的類型。我怎樣才能將這些信息明確地告訴編譯器?