Dick, Scalaz introduces very useful typeclasses and abstractions (like Functors, Monads, Traverse etc) that let developer write universal and composable code.
See following blog entries for more details: (from Debasish Ghosh - Akka committer, author DSL in Action) http://debasishg.blogspot.com/2010/11/exploring-scalaz.html (from Eric Torrebore - creator of Specs/Specs2 framework): http://etorreborre.blogspot.com/2011/06/essence-of-iterator-pattern.html As far as I remember David Pollak used Scalaz for Lift's json library implementation. Here is the project page: http://code.google.com/p/scalaz/ Vladimir 2011/10/20 Richard Hirsch <[email protected]> > @Vladimir - what does Scalaz do? > > On Thu, Oct 20, 2011 at 5:59 PM, Vladimir Ivanov <[email protected]> > wrote: > > Oops, > > > > Thanks for the fix Ethan! > > > > Vladimir > > > > 2011/10/20 Apache Jenkins Server <[email protected]> > > > >> See < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/745/changes > >> > > >> > >> Changes: > >> > >> [lester] Extracted Scalaz version number to val > >> > >> [lester] Introduced Scalaz library > >> > >> ------------------------------------------ > >> <===[JENKINS REMOTING CAPACITY]===>channel started > >> Executing Maven: -B -f < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/pom.xml> > >> clean install > >> [INFO] Scanning for projects... > >> [INFO] > >> ------------------------------------------------------------------------ > >> [INFO] Building Apache Enterprise Social Messaging Environment (ESME) > >> [INFO] task-segment: [clean, install] > >> [INFO] > >> ------------------------------------------------------------------------ > >> [INFO] artifact org.apache.rat:apache-rat-plugin: checking for updates > from > >> scala-tools.org > >> [INFO] artifact org.mortbay.jetty:maven-jetty-plugin: checking for > updates > >> from scala-tools.org > >> [INFO] artifact net.sf.alchim:yuicompressor-maven-plugin: checking for > >> updates from scala-tools.org > >> [INFO] artifact org.apache.maven.plugins:maven-eclipse-plugin: checking > for > >> updates from scala-tools.org > >> [INFO] snapshot > org.apache.maven.plugins:maven-eclipse-plugin:2.9-SNAPSHOT: > >> checking for updates from scala-tools.org > >> [INFO] [clean:clean {execution: default-clean}] > >> [INFO] Deleting directory < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/target> > >> [INFO] [resources:resources {execution: default-resources}] > >> [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy > >> filtered resources, i.e. build is platform dependent! > >> [INFO] Copying 13 resources > >> [INFO] [yuicompressor:compress {execution: default}] > >> [INFO] nb warnings: 0, nb errors: 0 > >> Downloading: > >> > http://repo2.maven.org/maven2//org/scalaz/scalaz-core_2.9.1/6.0.3/scalaz-core_2.9.1-6.0.3.pom > >> [INFO] Unable to find resource 'org.scalaz:scalaz-core_2.9.1:pom:6.0.3' > in > >> repository Base (http://repo2.maven.org/maven2/) > >> Downloading: > >> > http://scala-tools.org/repo-releases/org/scalaz/scalaz-core_2.9.1/6.0.3/scalaz-core_2.9.1-6.0.3.pom > >> 1K downloaded (scalaz-core_2.9.1-6.0.3.pom) > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-server/7.3.1.v20110307/jetty-server-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-project/7.3.1.v20110307/jetty-project-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-continuation/7.3.1.v20110307/jetty-continuation-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-http/7.3.1.v20110307/jetty-http-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-io/7.3.1.v20110307/jetty-io-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-util/7.3.1.v20110307/jetty-util-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-servlet/7.3.1.v20110307/jetty-servlet-7.3.1.v20110307.pom > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-security/7.3.1.v20110307/jetty-security-7.3.1.v20110307.pom > >> > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from Base > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > >> scala-tools.org > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > >> scala-tools.org.snapshots > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > >> compass-project.org > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > >> com.twitter > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > Apache > >> Repo > >> [INFO] artifact org.mortbay.jetty:jetty: checking for updates from > central > >> Downloading: > >> > http://repo2.maven.org/maven2//org/scalaz/scalaz-core_2.9.1/6.0.3/scalaz-core_2.9.1-6.0.3.jar > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-server/7.3.1.v20110307/jetty-server-7.3.1.v20110307.jar > >> [INFO] Unable to find resource 'org.scalaz:scalaz-core_2.9.1:jar:6.0.3' > in > >> repository Base (http://repo2.maven.org/maven2/) > >> Downloading: > >> > http://scala-tools.org/repo-releases/org/scalaz/scalaz-core_2.9.1/6.0.3/scalaz-core_2.9.1-6.0.3.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-continuation/7.3.1.v20110307/jetty-continuation-7.3.1.v20110307.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-http/7.3.1.v20110307/jetty-http-7.3.1.v20110307.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-io/7.3.1.v20110307/jetty-io-7.3.1.v20110307.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-util/7.3.1.v20110307/jetty-util-7.3.1.v20110307.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-servlet/7.3.1.v20110307/jetty-servlet-7.3.1.v20110307.jar > >> > >> Downloading: > >> > http://repo2.maven.org/maven2//org/eclipse/jetty/jetty-security/7.3.1.v20110307/jetty-security-7.3.1.v20110307.jar > >> > >> 4251K downloaded (scalaz-core_2.9.1-6.0.3.jar) > >> [INFO] [compiler:compile {execution: default-compile}] > >> [INFO] Nothing to compile - all classes are up to date > >> [INFO] [scala:compile {execution: default}] > >> [INFO] suggestion: remove the scalaVersion from pom.xml > >> [ERROR] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala > >> > > >> [ERROR] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/../scala > >> > > >> [INFO] Compiling 66 source files to < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/target/classes > >> > > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:92: > >> error: reference to Logger is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] object UserAuth extends UserAuth with > >> LongKeyedMetaMapper[UserAuth] with Logger { > >> [WARNING] > >> ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:111: > >> error: reference to Logger is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] trait AuthModule extends Logger { > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:93: > >> error: reference to Index is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import mapper._ > >> [WARNING] override def dbIndexes = Index(authType, authKey) :: > >> super.dbIndexes > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:106: > >> error: reference to Empty is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] private var defAuth: Box[AuthModule] = Empty > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:113: > >> error: reference to Empty is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] def signupPresentation: Box[NodeSeq] = Empty > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:131: > >> error: reference to Empty is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] case _ => Empty > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:302: > >> error: not found: value debug > >> [WARNING] debug("LDAP server host: %s".format(ldapSrvHost)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:304: > >> error: not found: value debug > >> [WARNING] debug("LDAP server port: %s".format(ldapSrvPort)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:306: > >> error: not found: value debug > >> [WARNING] debug("LDAP server base: %s".format(ldapSrvBase)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:308: > >> error: not found: value debug > >> [WARNING] debug("LDAP server username: %s".format(ldapSrvUsrName)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:310: > >> error: not found: value debug > >> [WARNING] debug("LDAP server password: %s".format(ldapSrvPwd)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:312: > >> error: not found: value debug > >> [WARNING] debug("LDAP server authentication type: > >> %s".format(ldapSrvAuthType)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:314: > >> error: not found: value debug > >> [WARNING] debug("LDAP server referral: %s".format(ldapSrvReferral)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:316: > >> error: not found: value debug > >> [WARNING] debug("LDAP server initial context factory class: > >> %s".format(ldapSrvCtxFactory)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:337: > >> error: not found: value debug > >> [WARNING] debug("Attribute name: '%s', has following > >> values:".format(attribute.getID())) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:340: > >> error: not found: value debug > >> [WARNING] debug("Attribute value: > >> '%s'".format(attribute.get(i))) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:352: > >> error: not found: value debug > >> [WARNING] debug("LDAP base: %s".format(base)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:362: > >> error: not found: value debug > >> [WARNING] debug("Name with prefix: '%s'".format(nameWithPrefix)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:355: > >> error: not found: value debug > >> [WARNING] debug("Distinguished name: %s".format(dn)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:377: > >> error: reference to Empty is ambiguous; > >> [WARNING] it is imported twice in the same scope by > >> [WARNING] import scalaz._ > >> [WARNING] and import common._ > >> [WARNING] def loginPresentation: Box[NodeSeq] = Empty > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:395: > >> error: not found: value debug > >> [WARNING] debug("Username: '%s'".format(username)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:478: > >> error: not found: value debug > >> [WARNING] Error occurred in an application involving default arguments. > >> [WARNING] debug("User: '%s' has been > >> found".format(user.niceName)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:505: > >> error: not found: value debug > >> [WARNING] debug("'uniqueMember' attribute value: > >> '%s'".format(uniqueMember)) > >> [WARNING] ^ > >> [WARNING] < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/src/main/scala/org/apache/esme/model/UserAuth.scala > >:511: > >> error: not found: value debug > >> [WARNING] debug("No roles have been found") > >> [WARNING] ^ > >> [WARNING] 24 errors found > >> [JENKINS] Archiving < > >> > https://builds.apache.org/job/ESME/org.apache.esme$esme-server/ws/pom.xml> > >> to > >> > /home/hudson/hudson/jobs/ESME/modules/org.apache.esme$esme-server/builds/2011-10-20_12-11-03/archive/org.apache.esme/esme-server/apache-esme-1.4/esme-server-apache-esme-1.4.pom > >> [INFO] > >> ------------------------------------------------------------------------ > >> [ERROR] BUILD FAILURE > >> [INFO] > >> ------------------------------------------------------------------------ > >> [INFO] command line returned non-zero value:1 > >> [INFO] > >> ------------------------------------------------------------------------ > >> [INFO] For more information, run Maven with the -e switch > >> [INFO] > >> ------------------------------------------------------------------------ > >> [INFO] Total time: 50 seconds > >> [INFO] Finished at: Thu Oct 20 12:12:32 UTC 2011 > >> [INFO] Final Memory: 36M/296M > >> [INFO] > >> ------------------------------------------------------------------------ > >> Waiting for Jenkins to finish collecting data > >> > >> > > > > > > -- > > Best Regards, > > Vladimir Ivanov > > > -- Best Regards, Vladimir Ivanov
