概括
他们说 Elm 不支持类型类。 它们的实际意思是它不支持隐式值。 可以将类型类定义为记录,并将其实例提供为显式值。 Elm 有问题,类型类可以解决这些问题。 这个包旨在做到这一点。
动机
当涉及到泛型操作时,Elm 在其设计上有一个粗略的优势:编译器提供了几个函数,可以神奇地泛化数字、可比较和可附加类型(有关详细信息,请参阅)。
这带来了几个后果:
您只有一组有限的预定义通用 API,它们只是数字、附加和比较操作:
您不能向自定义类型添加对此类 API 的支持;
您不能定义新的通用 API,例如:散列函数、自定义字符串转换、二进制编解码器、用于模糊测试(又名属性测试)的任意值生成器。
因为Set要求它的元素是可比较的,所以它限制你使用Int 、 Float 、 Char 、 String和这些值的列表/元组。 你不能在那里有自定义类型。 这不仅仅是Set 。
通常,您可以