úÎÙôpresumably portable experimental Luke Palmer <lrpalmer@gmail.com>:Reader is a functor (also monad) for reading IVars. This < provides composability when blocking on the first of a set : of IVars, as you can block on several IVars of different  types. >The MonadPlus and Monoid instances for Reader are equivalent. < It tries the left action ; if it blocks, then it tries the = right action ; if *it* blocks, then the whole action blocks $ until one of the two is available.  A write-once variable. Create a new empty IVar. =Write a value to an IVar. If the IVar already has a value,  throws an error !Attempt to write to an IVar twice. Read an IVar into the  functor. Pass this to   or  to extract the value. :Run a reader nonblocking. Returns Just x if a value x is  available, Nothing otherwise. 7Block on a reader. Returns the value as soon as it is  available.        data-ivar-0.1 Data.IVarReaderIVarnewwriteread nonblockingblocking runReaderLogEntryStateNoValueValue addAction deleteAction