我正在寻找二维坐标矢量的简单表示。我的第一个想法是一个简单的(c, c)
元组,但这不适合我的需要。
这就是我想要的:
- Functor 和 Applicative 的实例
- 能够拥有具有相同语义的不同类型(例如
ScreenCoord
和GameCoord
)。 - 简单的数据构造函数(例如
ScreenCoord c c
) - 能够编写通用代码
Coord
。
我不确定如何做到这一点。我尝试过的所有事情要么需要复制instance
代码来获得不同的类型,要么它有很长的数据构造函数ScreenCoord (Coord c c)
,这似乎是不必要的。
这里的理想代表是什么?