Showing posts with label monadtransformer. Show all posts
Showing posts with label monadtransformer. Show all posts

Monday, February 16, 2015

haskell Writer IO monad transformer sample

module Main where

import Control.Monad.Writer (WriterT, tell, runWriterT)

main :: IO ()
main = do
  result <- runWriterT main'
  print result
  return ()

main' :: WriterT [String] IO ()
main' = do
  x <- foo
  y <- bar
  tell [show x ++ show y]
  return ()

foo :: WriterT [String] IO Int
foo = do
  tell ["foo"]
  return 42

bar :: WriterT [String] IO Int
bar = do
  tell ["bar"]
  return 43