考虑以下
data Point=Point{x::Float,y::Float}
data Shape=Circle{centre::Point,radius::Float}
|Rectangle {uleft::Point,bRight::Point}
这里的 Shape 类型是 Circle 和 Rectangle 两种类型的联产品。我可能想在别处重用 Circle 和 Rectangle 类型。所以这样做会很有用:
data Point=Point{x::Float,y::Float}
data Circle=Circle{centre::Point,radius::Float}
data Rectangle=Rectangle {uleft::Point,bRight::Point}
data Shape =Circle | Rectangle
但是当我这样做时出现编译错误: Circle 被声明了两次。尝试这个的正确语法是什么,或者这不可能?