+ Read
+--------------------------------------------------------------------}
+instance (Read a, Ord a) => Read (Set a) where
+ readsPrec _ = readParen False $ \ r ->
+ [(fromList xs,t) | ("{",s) <- lex r,
+ (xs,t) <- readl s]
+ where readl s = [([],t) | ("}",t) <- lex s] ++
+ [(x:xs,u) | (x,t) <- reads s
+ , (xs,u) <- readl' t]
+ readl' s = [([],t) | ("}",t) <- lex s] ++
+ [(x:xs,v) | (",",t) <- lex s
+ , (x,u) <- reads t
+ , (xs,v) <- readl' u]
+
+{--------------------------------------------------------------------