MultiParamTypeClasses

这是一个非常常见的扩展,允许具有多个类型参数的类型类。你可以将 MPTC 视为类型之间的关系。

{-# LANGUAGE MultiParamTypeClasses #-}

class Convertable a b where
    convert::a -> b

instance Convertable Int Float where
    convert i = fromIntegral i

参数的顺序很重要。

MPTC 有时可以用类型系列替换。