open monad io list imperative xs = zipWith3 (\x y z -> show x ++ show y ++ show z) ['a','b','c'] ['A','B','C'] [1,2,3] print x = do putStrLn x print_and_calc xs = do xss <- return xs return $ each print xss print_and_calc xs ::: IO