----------------------------------------------------------------------------- -- | -- Module : Data.Array.Parallel.Base.Text -- Copyright : (c) 2006 Roman Leshchinskiy -- License : see libraries/ndp/LICENSE -- -- Maintainer : Roman Leshchinskiy <rl@cse.unsw.edu.au> -- Stability : experimental -- Portability : portable -- -- Utilities for defining Read\/Show instances. -- module Data.Array.Parallel.Base.Text ( showsApp, readApp, readsApp, Read(..) ) where import Text.Read showsApp :: Show a => Int -> String -> a -> ShowS showsApp k fn arg = showParen (k>10) (showString fn . showChar ' ' . showsPrec 11 arg) readApp :: Read a => String -> ReadPrec a readApp fn = parens (prec 10 $ do Ident ide <- lexP if ide /= fn then pfail else step readPrec ) readsApp :: Read a => Int -> String -> ReadS a readsApp k fn = readPrec_to_S (readApp fn) k