io library for scalaz

100 views
Skip to first unread message

Yuvi Masory

unread,
Jun 2, 2012, 5:50:31 PM6/2/12
to sca...@googlegroups.com
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

Chris Marshall

unread,
Jun 3, 2012, 5:13:41 AM6/3/12
to sca...@googlegroups.com
My only request is that this doesn't delay the release of scalaz7. Personally, I want to get my hands on the non-overflowing traversals more than anything else. I'm not sure if Jason is waiting for 2.10 to go final before cutting a version of 7.

Chris


Yuvi

--
You received this message because you are subscribed to the Google Groups "scalaz" group.
To post to this group, send email to sca...@googlegroups.com.
To unsubscribe from this group, send email to scalaz+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/scalaz?hl=en.


Jason Zaugg

unread,
Jun 3, 2012, 5:24:03 AM6/3/12
to sca...@googlegroups.com
On Sun, Jun 3, 2012 at 11:13 AM, Chris Marshall <oxbow...@gmail.com> wrote:
> My only request is that this doesn't delay the release of scalaz7.
> Personally, I want to get my hands on the non-overflowing traversals more
> than anything else. I'm not sure if Jason is waiting for 2.10 to go final
> before cutting a version of 7.

Nope, that's not a prerequisite. I've just been a bit short on time, and there
is a pretty long list of little things that need to be cleaned up before a
release, largely addressing the migration pain points that Runar
recent posted here.

-jason

Tony Morris

unread,
Jun 3, 2012, 5:26:27 AM6/3/12
to sca...@googlegroups.com
I've mostly conceded the point of explicit variance annotations. I have
a strong suspicion that there is a gotchya waiting for us around the
corner, but I just can't put my finger on it and probably won't be able
to any time soon.

I'm more interested in getting snapshots published in such a way as to
be useful from sbt.

--
Tony Morris
http://tmorris.net/


Yuvi Masory

unread,
Jun 3, 2012, 12:56:33 PM6/3/12
to sca...@googlegroups.com
> My only request is that this doesn't delay the release of scalaz7.
> Personally, I want to get my hands on the non-overflowing traversals more
> than anything else. I'm not sure if Jason is waiting for 2.10 to go final
> before cutting a version of 7.

There's no chance of a delay do to Puritan, it's being developed in
its own repo in my GitHub account. I won't propose integration to the
core developers until things are much, much farther along. I too am
eager for Scalaz 7 because it means I won't be developing against a
moving target :)
Reply all
Reply to author
Forward
0 new messages