Haskell port of jrnl