次のことを考慮してください
data Point=Point{x::Float,y::Float}
data Shape=Circle{centre::Point,radius::Float}
|Rectangle {uleft::Point,bRight::Point}
ここで、Shapeタイプは、CircleとRectangleの2つのタイプの余積です。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が2回宣言されています。これを試みるための正しい構文は何ですか、またはこれは不可能ですか?