-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
-----------------------------------------------------------------------------
---
+-- |
-- Module : Text.Show
-- Copyright : (c) The University of Glasgow 2001
--- License : BSD-style (see the file libraries/core/LICENSE)
+-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : provisional
-- Portability : portable
--
--- $Id: Show.hs,v 1.1 2001/06/28 14:15:04 simonmar Exp $
---
--- Exiting the program.
+-- Converting values to readable strings:
+-- the 'Show' class and associated functions.
--
-----------------------------------------------------------------------------
module Text.Show (
- ShowS, -- String -> String
+ ShowS, -- String -> String
Show(
- showsPrec, -- :: Int -> a -> ShowS
- show, -- :: a -> String
- showList -- :: [a] -> ShowS
+ showsPrec, -- :: Int -> a -> ShowS
+ show, -- :: a -> String
+ showList -- :: [a] -> ShowS
),
- shows, -- :: (Show a) => a -> ShowS
- showChar, -- :: Char -> ShowS
- showString, -- :: String -> ShowS
- showParen, -- :: Bool -> ShowS -> ShowS
+ shows, -- :: (Show a) => a -> ShowS
+ showChar, -- :: Char -> ShowS
+ showString, -- :: String -> ShowS
+ showParen, -- :: Bool -> ShowS -> ShowS
+ showListWith, -- :: (a -> ShowS) -> [a] -> ShowS
) where
#ifdef __GLASGOW_HASKELL__
import GHC.Show
-#endif
+#endif
+
+-- | Show a list (using square brackets and commas), given a function
+-- for showing elements.
+showListWith :: (a -> ShowS) -> [a] -> ShowS
+showListWith = showList__
+#ifndef __GLASGOW_HASKELL__
+showList__ :: (a -> ShowS) -> [a] -> ShowS
+showList__ _ [] s = "[]" ++ s
+showList__ showx (x:xs) s = '[' : showx x (showl xs)
+ where
+ showl [] = ']' : s
+ showl (y:ys) = ',' : showx y (showl ys)
+#endif