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