[Haskell-cafe] Misleading MVar documentation

Malcolm Wallace malcolm.wallace at me.com
Sun Jan 16 10:56:49 CET 2011

On 16 Jan 2011, at 03:58, Jan-Willem Maessen wrote:

> Actually, the first presentation of M-structures is rather older than
> that.  See Barth, Nikhil, and Arvind's FPCA '91 paper:
> http://portal.acm.org/citation.cfm?id=652538
> The original formulation was indeed in terms of "take" and "put",
> though unconditional read and write primitives were prtty commonly
> used in Id programs.  The take/put view can also usefully be thought
> of as a 1-element blocking channel.

The full spectrum of one-element communication protocols is set out in

H R Simpson. The MASCOT method. Software Engineering Journal, 1(3):103–
120, March 1986.

The notation was known as Real Time Networks.  In this scheme, there  
are four types of protocol, each useful in different circumstances:

blocking read, blocking write:         a channel
non-blocking read, blocking write:     a constant
blocking read, non-blocking write:     a signal
non-blocking read, non-blocking write: a pool

The first of these, channel, corresponds to the MVar.  The pool  
corresponds to an IORef.


More information about the Haskell-Cafe mailing list