MultiParamTypeClasses
这是一个非常常见的扩展,允许具有多个类型参数的类型类。你可以将 MPTC 视为类型之间的关系。
{-# LANGUAGE MultiParamTypeClasses #-}
class Convertable a b where
convert::a -> b
instance Convertable Int Float where
convert i = fromIntegral i
参数的顺序很重要。
MPTC 有时可以用类型系列替换。