showing Handle is impure

Dean Herington heringto at cs.unc.edu
Tue Jul 15 14:34:34 EDT 2003


The `shows` function for type `Handle` is inappropriately impure.  In my
opinion, showing a handle should merely identify it as a handle and
distinguish it from other handles.  The information currently provided
by showing a handle should be provided with some other function; that
function should be in the IO monad.

swan(102)% ghci
   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 5.04.3, for Haskell
98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base ... linking ... done.
Loading package haskell98 ... linking ... done.
Prelude> :m IO
Prelude IO> h <- openFile "/dev/null" ReadMode
Prelude IO> h
{loc=/dev/null,type=readable,binary=False,buffering=block (8192)}
Prelude IO> c <- hGetContents h
Prelude IO> h
{closed}




More information about the Glasgow-haskell-bugs mailing list