ref: 5e4f9f0a07f9f3dfc9616dabdc4b720a995ff48b
dir: /lib/System/IO_Handle.hs/
module System.IO_Handle(BFILE, Handle(..), HandleState(..)) where import Prelude() import Primitives import Data.Bool import Data.Eq import Data.IORef -- A handle is a ForeignPtr to a C BFILE transducer. -- It needs to be a ForeignPtr so it can have a finalizer -- that closes the underlying BFILE when the Handle is gc():ed. data BFILE -- tag used for C pointers to BFILE structs data Handle = Handle (ForeignPtr BFILE) (IORef HandleState) [Char] data HandleState = HRead | HWrite | HReadWrite | HSemiClosed | HClosed deriving (Eq)