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.)