fizzbuzz :: (Show a, Integral a) => a -> String
fizzbuzz n
  | fizz == 0 && buzz == 0 = "FizzBuzz"
  | fizz == 0 = "Fizz"
  | buzz == 0 = "Buzz"
  | otherwise = show n
  where
    fizz = n `mod` 3
    buzz = n `mod` 5
fizzbuzz :: (Show a, Integral a) => a -> String
fizzbuzz n
  | fizz == 0 && buzz == 0 = "FizzBuzz"
  | fizz == 0 = "Fizz"
  | buzz == 0 = "Buzz"
  | otherwise = show n
  where
    fizz = n `mod` 3
    buzz = n `mod` 5
fizzbuzz n
  | fizz == 0 && buzz == 0 = "FizzBuzz"
  | fizz == 0 = "Fizz"
  | buzz == 0 = "Buzz"
  | otherwise = show n
  where
    fizz = n `mod` 3
    buzz = n `mod` 5