splittingfield/tallyho — pull request #1 by rjmac (2014-11-13 02:52:10+00:00)
Title: Haskell!

A particularly cool thing: the count min sketch implementation is mutable internally, but the types it uses guarantees that it the mutation is a purely implementation detail. Because it is abstracted over `PrimMonad` (which is basically "either `IO` or `ST`" -- monads that allow mutable variables), it can't actually mutate anything it didn't create itself, and it can also be used in an otherwise-pure pipeline without introducing `IO`. `All.hs` includes an example of using multiple consumers in "parallel" (not concurrently) with results even more nicely typed than via `HList` -- they have named accessors "cms" and "card".

Also fixes that newline-in-`def` problem I mentioned earlier.