--      n!
-- -------------
-- k! * (n - k)!

choose :: Int -> Int -> Int
n `choose` k = fac n `div` (fac k * fac (n - k))
choose :: Int -> Int -> Int
n `choose` k = fac n `div` (fac k * fac (n - k))
n `choose` k = fac n `div` (fac k * fac (n - k))