我有一个模块,定义和导出类型和类型类,如下所示.问题是我似乎无法在此模块中使用该类的函数,因为还没有该类的实例.
这是GHC错误:"aabb'的类型签名缺少附带的绑定"
有没有解决这个问题的方法?谢谢.
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)
Run Code Online (Sandbox Code Playgroud)
你需要缩进aabb.
class Boundable a where
aabb ? a ? AABB
Run Code Online (Sandbox Code Playgroud)
或者使用大括号:
class Boundable a where {
aabb ? a ? AABB
}
Run Code Online (Sandbox Code Playgroud)