The set of interfaces specified in this document try to adhere to the following naming conventions:
new
followed by
the name of the type of object they're creating, e.g., newIORef
,
newChan
etc.read
, and operations that update the contents have the prefix
write
, e.g., readChan
, readIOArray
.
Notes:
Handle
, where get
and put
are used instead.MVar
,
CVar
, also deviate from this naming scheme. This is perhaps
defensible, since the read and write operations have additional
behaviour, e.g., takeMVar
tries to read the current value
of an MVar
, locking it if it succeeds.AToB
where A
and B
are the types we're converting between.getXContents
, e.g., Channel.getChanContents
and
IO.hGetContents
. (OK, so the latter isn't called
getHandleContents
, but you hopefully get the picture.)