read someValue :: someDataTypeorは宣言に書かなければならないshow someValueので、すべての型に対して行うことはできません。間違い以外に、型をシリアライズ可能にしたくない場合はありますか? Show が Read から分離されているのはなぜですか? 間違い以外に、一部のデータを表示したいだけで読みたくない場合はありますか? そうでない場合、単一のデータ型を持たないのはなぜですか?deriving (Show, Read)dataSerializable
ちょうど今、Gloss ライブラリのKeyデータ型を使用していますが、これはわかりませんShow。Readコントロールの構成をファイルに入れてから読みたかったので、プレーヤーがコントロールを変更して独自の構成を持つことができるようにしたかったので残念です。Key、SpecialKey、MouseButton のラッパーを作成する必要がありましたが、これは大したことではありませんが役に立ちません。
data Key' = Char' Char | SpecialKey' SpecialKey | MouseButton' MouseButton
deriving (Eq, Ord, Show, Read)
convertKey x = case x of
Char' c -> Char c
SpecialKey' sk -> SpecialKey sk
MouseButton' mb -> MouseButton mb