注意:我可能不需要将 Scalar 添加到 Eq,尽管如果我能弄清楚如何做到这一点,它应该可以解决问题。
所以我正在尝试向ForceLayout模块添加一些功能。像这样向粒子添加质量:
data Particle v = Particle {
_pos :: Point v
, _vel :: v
, _force :: v
, _mass :: Scalar v
}
deriving (Eq, Show)
但标量不在 Eq 或 Show 中!所以这不会编译。不过,质量应该是与其他向量“兼容”的标量。我该如何调和呢?我对类型族的理解不足以分析这种情况。我试过了,但它们很难掌握。不确定是否需要或可能将标量添加到 Eq。