Bind
は、型定義パターンに従います。これらは、型定義された操作をサポートするさまざまな型に対して複数の実装を持つ傾向があります。その実装はtypeclassインスタンスと呼ばれていました。 Scala標準ライブラリクラスのScalaz typeclassインスタンスのほとんどは、scalaz.std
パッケージにあります。例:
Bind[List]
:listInstances
scalach/std/List.scalaで定義されている暗黙的な値はscalaz.std.ListInstaces
です。これはscalaz.std.list
オブジェクト(同じファイル内)またはscalaz.Scalaz
オブジェクト(scalaz/Scalaz.scala)を介してインポートすることができ、どちらもListInstances
特性を拡張します。
Bind[Option]
:optionInstances
sclaaz.std.OptionInstances
の暗黙の値は、scalaz/std/Option.scalaで定義されています。これはscalaz.std.option
オブジェクト(同じファイル内)またはscalaz.Scalaz
オブジェクト(scalaz/Scalaz.scala)を介してインポートすることができ、いずれもOptionInstances
特性を拡張します。
また、1つ以上の対応する特性を実装する暗黙的な値または変換を作成することによって、独自のタイプのScalaz型クラスインスタンスを作成することもできます。目に見えるようにするには、あなたの文脈にimplicitsをインポートする必要があります。