Hi all,
I'm working on an IO library for scalaz. Currently it's tough using
the IO monad because there's no library support in the form of
wrappers around impure Java methods (e.g., java.io.File.listFiles).
Currently I'm working in
http://github.com/ymasory/puritan. I've
spoken with Tony and Runar about the project and they seemed
enthusiastic. It's my goal that puritan will eventually be part of
Scalaz 7.
I invite anyone who wants to get involved to participate. Currently
I'm designing the API and will post back once there's something more
concrete to discuss.
For now, I'll list the goals as I put in my readme. I invite feedback.
- Puritan is made up of only referentially transparent functions,
whether those functions are public or not.
- Puritan is familiar, providing wrappers for impure Java and Scala
functions that existing Scala and Scalaz developers can use without
learning a brand new API.
- Puritan uses only the most primitive impure functions available on
the JVM. For example, read not readLine. Such JDK primitive functions
often have native in their signature, or cannot be implemented using
only public JDK functions.
- Puritan tightly integrates with Scalaz 7's types.
- Puritan organizes code and modules similarly to Scalaz 7.
- Puritan relies only on JDK 6, Scala 2.9 and Scalaz 7.
- Puritan includes JDK 7's new IO functionality for projects requiring JDK 7.
- Puritan is comprehensively documented, with full API documentation
and an examples suite.
- Puritan includes a comprehensive test suite.
- Puritan is licensed under the Scala License, just like Scala and Scalaz.
Yuvi