素直にこんなんじゃいかんの?
main = putStrLn $ unwords $ map fizzbuzz [1..100]
 where
  fizzbuzz x
   | x `mod` 15 == 0 = "FizzBuzz"
   | x `mod` 5 == 0 = "Buzz"
   | x `mod` 3 == 0 = "Fizz"
   | otherwise = show