SomeType が次のように定義されている場合:
data SomeType = X {myBool :: Bool}
| Y {myString :: String}
| Z {myString :: String}
そして、次のように、彼のタイプに依存する任意の X を更新します。
changeST :: SomeType -> SomeType
changeST (X b) = (X True)
changeST (Y s) = (Y "newString")
changeST (Z s) = (Z "newString")
3 行目と 4 行目はまったく同じことを行い、指定された型の文字列を更新します。これらの 2 行を 1 行に置き換える方法はありますか。タイプを変数に割り当てることによって?