Проблема с выводом в файл. Haskell

делаю работу с поворотом текста из txt файла, застрял на самом простом - выводе обратно в тот же файл. Не понимаю почему, но в тестовом файле(output.txt) для вывода по итогу появляется пара скобок "()". С чем это связано и как добиться нормального вывода?

import System.IO

getPixel :: [[Char]] -> Int -> Int -> Char
getPixel img x y
  | x >= 0 && x < width && y >= 0 && y < height = img !! y !! x
  | otherwise = ' '
  where
    height = length img
    width = length $ head img

rotate :: Double -> (Double, Double) -> (Double, Double)
rotate a (x, y) = (x * cos a + y * sin a, -x * sin a + y * cos a)

main :: IO ()
main = do
    output <- main2
    writeFile "output.txt" (show output)

main2 :: IO ()
main2 = do
    image <- lines <$> readFile "input.txt"
    mapM_ putStrLn $ do
        y <- [0 .. 30]
        return $ do
            x <- [0 .. 40]
            let (x', y') = rotate (pi/3) (x-5, y-1)
            return $ getPixel image (floor x') (floor y')

Ответы (0 шт):