Aspekty praktyczne

Aby skonfigurować projekt używający bibliotek prezentowanych w tej książce, użyjemy aktualnej wersji Scali wraz z opcjami specyficznymi dla Programowania Funkcyjnego. Oto build.sbt:

  scalaVersion in ThisBuild := "2.12.6"
  scalacOptions in ThisBuild ++= Seq(
    "-language:_",
    "-Ypartial-unification",
    "-Xfatal-warnings"
  )
  
  libraryDependencies ++= Seq(
    "com.github.mpilquist" %% "simulacrum"     % "0.13.0",
    "org.scalaz"           %% "scalaz-core"    % "7.2.26"
  )
  
  addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.7")
  addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full)

Aby fragmenty kodu były krótkie, ominiemy sekcje importów i jeśli nie zaznaczono inaczej, to należy przyjąć, że wszystkie fragmenty zawierają:

  import scalaz._, Scalaz._
  import simulacrum._