そのため、 Data.VectorSpaceを使用しており、 force-layoutを拡張しようとしています。
ここで、多形の「1」スカラーを作成します。つまり、スカラーにベクトルを掛けると、そのベクトルのタイプ(パラメーター)に関係なく、同じベクトルが生成されます。出来ますか?便利な回避策はありますか?
より具体的なコード例を次に示します(ここで使用したコードから継続しています)。
data Particle v = Particle { _pos :: Point v
, _vel :: v
, _force :: v
, _mass :: Scalar v
}
-- .. standalone Show and Eq omitted
initParticle :: AdditiveGroup v => Point v -> Particle v
initParticle p = Particle p zeroV zeroV unitScalar
unitScalar = undefined
-- Should always be true:
testInit :: Point (Double,Double) -> Bool
testInit p = ((_mass (initParticle p)) == 1::Double)
上記の「unitScalar」をどのように定義できますか?