[rewrite Data.Util.showAsSet for correct ShowS usage
Helmut Grohne <grohne@cs.uni-bonn.de>**20140721122801
 Ignore-this: 5469d9a1fd070f9cec175326429ef034
 
 While it did use ShowS, it constructed large parts of the result as a String
 and passed that to showString defeating the purpose of ShowS. Rather turn all
 those applications into compositions.
] hunk ./src/Data/Util.hs 7
-showAsSet l = showString 
-            $ showString "{  "
-            $ if length l > 0 
-                 then shows (head l) $ foldr (\s -> showString " , " . shows s) " }" (tail l) 
-                 else "}"
+showAsSet :: (Show a) => [a] -> ShowS
+showAsSet l = showString "{  " .
+            (if null l then id else
+                 shows (head l) . foldr (\s r -> showString " , " . shows s . r) (showChar ' ') (tail l)) .
+            showChar '}'