fizzbuzz' :: Bool -> Bool -> Int -> String
fizzbuzz' big doLiz n = (fizz . test 5 "buzz" . lizz) id (show n)
where
test d s x | n `mod` d == 0 = const (s ++ x "")
| otherwise = x
fizz = if big then (test 1023 "fizz") else (test 3 "fizz")
lizz = if doLiz then (test 13 "Lizard") else id
fizzbuzz :: Bool -> Bool -> [String]
fizzbuzz big doLiz = map (fizzbuzz' big doLiz) [1..]