factorial :: Integral a => a -> a
factorial  0            = 1
factorial  n | n > 0    = n * factorial (n-1)

{--
factorial 100
--}

comb :: Integral a => a -> a -> a
comb n r = (factorial n) `div` (factorial r * factorial (n-r))

{--
comb 3 2
comb 55 2
comb 450 2
--}
