> "fizz" <$ guard (rem i 3 == 0)
I prefer the more transparent
if i `mod` 3 == 0 then Just "fizz" else Nothing