-- String "has-a" Integer data HasA = HasA String Integer instance Show HasA where show (HasA s n) = if s == "" then show n else show s fizz (HasA s n) = HasA (s ++ if mod n 3 == 0 then "Fizz" else "") n buzz (HasA s n) = HasA (s ++ if mod n 5 == 0 then "Buzz" else "") n gizz (HasA s n) = HasA (s ++ if mod n 7 == 0 then "Gizz" else "") n main = print $ map (gizz . buzz . fizz . HasA "") [1,3,5,7,15,21,35,105]