私はHaskellの新人で、現在Real World Haskellを見ています。本書では、型コンストラクタは型シグネチャでのみ使用され、値コンストラクタは実際のコードで使用されると説明しています。また、両方の名前が互いに独立していることを示す宣言の例を示します。最初の場所に2つのコンストラクタが必要なのはなぜですか?そのうちの1つだけが実際のコードで使用されていますか?実際のコードで型コンストラ
私のデータ型は、常に、少なくとも2つのパラメータを持つことになりますし、最後の2つのパラメータはそれぞれ、「Q」と「M」は常にあります。エラー Could not deduce (bBase ~ D2 t0) (LINE 1)
で {-# LANGUAGE TypeFamilies, FlexibleContexts, UndecidableInstances, TypeOperators, D
例えば trait F[T] { type Out }
object F {
type Aux[T, out] = F[T] { type Out = out }
}
def glhf[t, out](implicit f: F.Aux[t, out]): out = ???
私は、これは、抽出のいずれかの種類(さえ複雑なクロス暗黙の型変数)のための魔法のように動作し、暗黙
を経由して整数値を制限する:右側には有効なデータコンストラクタである必要がありますので、私はのようなものを使用しなければならないでしょう data Bit = 0 | 1 しかし(?) data Bit = Zero | One 私は私の難問を解決する最善の方法は何実際の値0と1を使用したいので、これは特に良いではないでしょうか? GHCiの中で、例えば instance Num Bool whe