-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Ben,
Scalaz is unusual because it generalises a lot of the core Scala
library. However, unlike the Scala core libraries, Scalaz can change
quickly to adapt to new project requirements for libraries that are
not specific to a particular project. It also has a different approach
to solving programming problems in general, than the core Scala libraries.
Scalaz aims for componentisation and abstraction, sometimes at the
expense of performance (though this is taken into account) and
encountering language deficiencies. Why isn't Functor in the Scala
core libraries indeed? It kind of is, in the sense of a
for-comprehension, but I think you'd agree that this quite a feeble
attempt. Also, higher-kinds were not always part of the Scala
language. Much of the standard library reflects this e.g. List.flatMap
signature rather than a Monad type-class.
In order to get "extension" of Scala libraries, Scalaz uses implicits
to emulate type-classes. For example, Scalaz has an "instances" of the
"Functor" type-class for scala.List and java.util.LinkedList for that
matter.
This way, it needn't depend on any processes in the Scala core library
and so can introduce abstractions quickly. There has also been
demonstrated and unshakable aversion to abstraction and reusability by
some members the Scala community. I suspect this is due to "fear of
the unknown" so to speak, so I wanted to side-step this completely.
I'd love to see much of Scalaz in the core mostly so the Scala core
library is more complete and useful, but I very much doubt it will, or
we might see some watered-down version, which would be worse than
nothing in my opinion.
- --
Tony Morris
http://tmorris.net/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla -
http://enigmail.mozdev.org
iEYEARECAAYFAkorHTYACgkQmnpgrYe6r62NNACgsnHk36KTqpieSgoD5FRghu07
GC4An1f9AMZ68FgcJfXuPlpjSc/0j66W
=Nt8h
-----END PGP SIGNATURE-----