[Haskell-cafe] ANNOUNCE: Sessions 2008 2 28 - RFC

Matthew Sackman matthew at wellquite.org
Thu Feb 28 17:23:41 EST 2008


So for those of you that watch the hackage what's-new page, you will
probably be aware of this. For the last few months, there's been
significant work on my implementation of Session Types in Haskell.[0]

The reason for this particular announcement is that it should now be at
a point where functionality is verging on useful. There are a few things
that are still missing which should appear over the next few weeks but
if you're at all interested in message-passing as a tool in the box for
dealing with concurrency, I'd love to know what you think.

To that end, I would *not* encourage you to try to look at the
implementation too closely as you may suddenly discover a powerful urge
to stick knives in your eyes and/or eat your computer. However, the
Tests.hs[1] file should give you a good idea of the kinds of things that
are possible and they do cover all the functionality currently
implemented. Note that ghci may well take about 5 mins to type check
Tests.hs. Or longer if you're still running a BBC B Micro.

I would almost certainly not advise anyone to look at the haddock[2]. I
really can't quite believe how horrible the type sigs end up looking
under haddock. Some of my comments may almost pass the barrier of being
useful. Nicely formatted type sigs exist in the source.

If however, you are as mad as I, and enjoy pushing the GHC type system
to the limit, then you may enjoy looking at the implementation in all
its glory. base10 numbers, lists, associative maps and a whole lot of
other madness works correctly at the type-level in ghc 6.8.2.

Anyway, as the subject says, comments gratefully received.

[0] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sessions-2008.2.28
[1] http://wellquite.org/non-blog/sessions-browseable/Control/Concurrent/Session/Tests.hs
[2] http://wellquite.org/non-blog/sessions-browseable/doc/html/sessions/
[3] http://wellquite.org/non-blog/sessions-browseable/

Matthew Sackman

More information about the Haskell-Cafe mailing list