úÎÄghc experimental/Gregory Crosswhite <gcross@phys.washington.edu> The exception raised by ! 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 D use to fill the value later as well as a lazy thunk which you can A treat as a normal variable; the latter evaluates to the value F stored in the reference if it is available and to bottom otherwise. 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.) Tries to read a %, but does not throw an exception if @ the value is not ready yet; instead, if the value is ready it  returns  Just value and otherwise it returns Nothing. Writes a value to a  . Raises an  exception  if the  already has a value. Attempts to a value to a ', but instead of throwing an exception  it returns   if it was successful and   otherwise.      procrastinating-variable-1.0.2 Data.PVarAlreadyHasAValueAccessedTooEarlyPVarnewPVarnewPVarWithCustomMessage tryReadPVar writePVar tryWritePVarghc-primGHC.BoolTrueFalse