úÎÐghc experimental/Gregory Crosswhite <gcross@phys.washington.edu> 5The exception raised when one attempts to write to a  + after it has already been given a value. The exception raised when a ! is accessed before it is ready. A procrastinating variable ( for short) Creates a new, empty ', and returns both a reference you can ) use to fill the value later as well as Creates a new, empty ( that raises an exception with a custom G message. (Use this if you want to make explicit to the user of this ? variable exactly when they should expect its value to become  available.) 0Try to read a procrastinating variable. Returns   if the  value is not ready yet. Writes a value to a  . Raises a IVar . Raises a   exception if the  already has a value. Writes a value to a  . Returns   if successful.      procrastinating-variable-1.0 Data.PVarAlreadyHasAValueAccessedTooEarlynewPVarnewPVarWithCustomMessage tryReadPVar writePVar tryWritePVarPVarbase Data.MaybeNothingghc-primGHC.BoolTrue