プロジェクトでscalaz7を使用していますが、インポートで問題が発生することがあります。始める最も簡単な方法は
import scalaz._
import Scalaz._
ただし、これにより競合が発生する場合があります。私が今までやってきたことは、次の少し苦痛なプロセスです。
- 私の実際のコードと同じインポートを必要とする最小限の例を考え出す
- その例を別のプロジェクトにコピーする
-Xprint:typer
暗黙の解決後にコードがどのように見えるかを調べるオプションを使用してコンパイルします- 元のプロジェクトに必要な暗黙をインポートします。
これは機能しますが、合理化したいと思います。scalaz7にはもっときめ細かいインポートがあるようですが、それらがどのように編成されているかを完全には理解していません。たとえば、私は1つができると思います
import scalaz.std.option._
import scalaz.std.AllInstances._
import scalaz.std.AllFunctions._
import scalaz.syntax.monad._
import scalaz.syntax.all._
import scalaz.syntax.std.boolean._
import scalaz.syntax.std.all._
等々。
これらのサブインポートはどのように編成されていますか?
例として、検証を処理したいとします。たとえば、検証インプリシットを挿入して次のコンパイルを行うには、何が必要ですか?
3.fail[String]
ValidationNEL[A, B]
のインスタンスを作成するのはApplicative
どうですか?