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.)toX
, where X
is the type we're converting into, e.g.,
toInt
, toDyn
.
Similarly for overloaded coercion operations that go the other way,
from a known type to an overloaded one. These have the prefix
from
followed by the name of the type we're converting from,
e.g., fromInteger
, fromDyn
, fromDynamic
.