CQRS in Haskell
corecursion.net