ummary :: S.State -> [(String,Int)]
summary st = reverse
           . sort
           . map (\ss -> (head ss, (length ss * 100) `div` S.numSuccessTests st))
           . group
           . sort
           $ [ concat (intersperse ", " (Set.toList s))
             | s <- S.collected st
             , not (Set.null s)
             ]

summary :: S.State -> [(String,Int)]
summary st = reverse
           . sort
           . map (\ss -> (head ss, (length ss * 100) `div` S.numSuccessTests st))
           . group
           . sort
           $ [ concat (intersperse ", " (Set.toList s))
             | s <- S.collected st
             , not (Set.null s)
             ]
summary st = reverse
           . sort
           . map (\ss -> (head ss, (length ss * 100) `div` S.numSuccessTests st))
           . group
           . sort
           $ [ concat (intersperse ", " (Set.toList s))
             | s <- S.collected st
             , not (Set.null s)
             ]