s3 blog engine in haskell