
Hi Malcolm, I have just looked at your Read instance for Data.Set and implemented an instance for Data.Map in the same manner. import Text.Read {-------------------------------------------------------------------- Read --------------------------------------------------------------------} instance (Ord k, Read k, Read e) => Read (Map k e) 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) <- readPair s , (xs,u) <- readl' t] readl' s = [([],t) | ("}",t) <- lex s] ++ [(x:xs,v) | (",",t) <- lex s , (x,u) <- readPair t , (xs,v) <- readl' u] -- parses a pair of things with the syntax a:=b readPair :: (Read a, Read b) => ReadS (a,b) readPair s = do (a, ct1) <- reads s (":=", ct2) <- lex ct1 (b, ct3) <- reads ct2 return ((a,b), ct3) Cheers, Georg Am Donnerstag, 20. Oktober 2005 12:12 schrieb Malcolm Wallace:
Christian Maeder
writes: Who feels responsible for including something into Data.Set and Data.Map (recently I've proposed a change for Set.intersection and others also made suggestions)?
I checked in a Read instance for Data.Set a few weeks ago, when I needed one. An addition like this is rather obvious, so I doubt it needs any discussion. For other changes (like Set.intersection), some discussion might be desirable, but the best proposal is an implemented one, which others can then improve.
Btw, I didn't add a Read instance for Data.Map.
import GHC.Read
This module isn't even listed under http://www.haskell.org/ghc/docs/latest/html/libraries/index.html
As it should not be. It is compiler-specific. The hierarchical libraries are supposed to be portable.
Regards, Malcolm _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
-- ---- Georg Martius, Tel: (+49 34297) 89434 ---- ------- http://www.flexman.homeip.net ---------