- readsPrec _ = readParen False $ \ r ->
- case dropWhile isSpace r of
- ('<':s) -> case dropWhile isSpace s of
- ('>':t) -> return (empty,t)
- _ -> readRest empty s
- _ -> []
- where readRest xs s = do
- (x,t) <- reads s
- let xs' = xs |> x
- case dropWhile isSpace t of
- ('>':u) -> return (xs',u)
- (',':u) -> readRest xs' u
- _ -> []
+ readsPrec p = readParen (p > 10) $ \ r -> do
+ ("fromList",s) <- lex r
+ (xs,t) <- reads s
+ return (fromList xs,t)