import Data.IntSet(IntSet, size, insert, empty) a :: Integer -> Int -> Integer a k 1 = 52 - k a k n = k*(a k (n-1)) + (52-k)*(a (k+1) (n-1)) s :: Int -> IntSet -> Integer s 1 xs = fromIntegral $ 52 - (size xs) s n xs = sum [ s (n-1) (insert t xs) | t <- [1..52] ] main = do let xs = [ a 0 n | n <- [1..5] ] ys = [ s n empty | n <- [1..5] ] print xs print ys print (xs == ys)