次のようにいくつかのデータ型を宣言します。
データ TX_OR_TY = TX | タイ データ TX = X Int データ TY = Y Float
ここで、データ型を返す関数をいくつか書きます。
関数TX :: TX 関数TX = X 3 関数TY::TY 機能 = Y 5 ordFuncTX :: TX -> Int -> Bool ordFuncTX (X a) b = (a > b) funcTX_TY :: TX_OR_TY funcTX_TY = if (ordFuncTX funcTX 4) then funcTX else funcTY
関数 funcTX_TY は、TX の値を 4 と比較して TX_OR_TY の型を返します。大きい場合は TX を返し、小さい場合は TY を返します。しかし、コンパイル時に、予想されるタイプTX_OR_TYとTXを一致させることができなかったことが通知されます。どうすれば修正できますか?