voidパッケージには、次のように定義されてVoid
と呼ばれる住めないタイプを、提供すると主張 -Data.Voidを定義するための不要なタイプのジャグリング(Hackageのパッケージ "void")?
newtype Void = Void Void
方法は、この定義には、シンプルなものを使用するよりも任意の良いですか?私の理解が正しい場合、両方のデータ型に下限値のみが含まれています。しかし後者ははるかに理解しやすいです。
EDIT:私は以下のダニエルの答えを理解しています。しかし、私はHaskell98との互換性を保ちながらこれを行うためのもっと簡単な方法を考えました。抽象データ型を使用して、コンストラクタをユーザーに公開することはできません。
module Data.Void (Void) where
data Void = Void
今Data.Voidモジュール内のコードのみがボイドを構築することができ、しかし、我々はそれがません知っているので、ボイドのデータ型が効果的に無人です。
私はここで何か不足していますか?
"Data.Voidモジュールのコードでは、1つのモジュールが多すぎるVoidを作成できます。 – PyRulez
さて、ええ、私は今、[Carlのコメント](http://stackoverflow.com/questions/9261490/unnecessary-type-juggling-to-define-data-void-package-void-on-hackage)を読んだ後で理解しています。 ?noredirect = 1#comment11678217_9261699):) –