以下に示すように、型と型クラスを定義してエクスポートするモジュールがあります。問題は、クラスのインスタンスがまだないため、このモジュールでクラスの関数を使用できないように見えることです。
これは GHC のエラーです:
この問題を回避する方法はありますか? ありがとう。
module AABB (
AABB
,Boundable(..)
,aabb
,consume
) where
type AABB = (Vec3,Vec3)
class Boundable a where
aabb ∷ a → AABB
consume ∷ (Boundable a) ⇒ AABB → a → AABB
consume (v0,v1) x = (minV v0 v2, maxV v1 v3)
where (v2,v3) = aabb x
maxV ∷ Vec3 → Vec3 → Vec3
maxV (Vec3 x0 y0 z0) (Vec3 x1 y1 z1) = Vec3 (max x0 x1) (max y0 y1) (max z0 z1)
minV ∷ Vec3 → Vec3 → Vec3
minV (Vec3 x0 y0 z0) (Vec3 x1 y1 z1) = Vec3 (min x0 x1) (min y0 y1) (min z0 z1)