import Control.Monad.Writer fun :: Int -> Writer [String] Int fun a = writer (a + 1, ["Increment"]) getValue :: Writer [String] Int -> Int getValue = fst $ runWriter main :: IO () main = print $ runWriter $ return 1 >>= fun >>= fun