Skip to content

taylorleese/scalaz7-upgrade-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 

Repository files navigation

Scalaz 7 Upgrade Notes

Dependencies

  • Dependencies are more compartmentalized
"org.scalaz" %% "scalaz-core" % scalazVersion
"org.scalaz" %% "scalaz-concurrent" % scalazVersion
"org.scalaz" %% "scalaz-iteratee" % scalazVersion
"org.scalaz" %% "scalaz-effect" % scalazVersion
"org.scalaz" %% "scalaz-iterv" % scalazVersion
"org.scalaz" %% "scalaz-typelevel" % scalazVersion
"org.scalaz" %% "scalaz-xml" % scalazVersion

Package Structure

  • Generic (note: valid but it's better to restrict imports to prevent conflicts with other libraries)
import scalaz._
import Scalaz._
  • Syntax imports provide implicits to work with type classes and functions

  • Syntax imports (note: there is also scalaz.syntax.all._)

import scalaz.syntax.xyz._ // e.g. import scalaz.syntax.applicative._
import scalaz.syntax.std.xyz._ // e.g. import scalaz.syntax.std.list._

Validation and \/

Zero

// Example from Newman
type RawBody = Array[Byte]
implicit val RawBodyMonoid: Monoid[RawBody] = Monoid.instance(_ ++ _, Array[Byte]())

MA

IO

  • scalaz.effects => scalaz.effect
  • Included in the effect dependency
"org.scalaz" %% "scalaz-effect" % scalazVersion

lift-json-scalaz

"net.liftweb" %% "lift-json-scalaz7" % liftVersion

Upgrade Examples

About

Scalaz 7 Upgrade Notes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published