It's quite a cute idea, implementing a blockchain (a fundamentally impure concept) in Haskell. If you're interested in other cool Haskell projects, check out JoeyH[1].
Impure as in "has side-effects". An append-only state that is used for synchronisation between different machines by definition has side-effects. Of course, you can have side-effects in Haskell, I just thought it was an interesting choice.
Haskell takes a stand against implicit side-effects, letting you see what a function is capable of doing in its type. It's really weird to suggest that performing side-effects in such a language is strange or awkward or cute or whatever. Doing those things is the whole point of writing programs.
[1]: http://joeyh.name/code/