úÎÚY     (c) 2014-2015 Edward KmettBSD2Edward Kmett <ekmett@gmail.com> experimental non-portable Safe-Inferred +12468=K ÇThis data type represents a piece of mutable, imperative state with possible side-effects. These tend to encapsulate all sorts tricky behavior in external libraries, and may well throw exceptions. Inhabitants should" satsify the following properties.PIn the absence of concurrent mutation from other threads or a thrown exception: do x <-  v; v  y; v  x "should restore the previous state.-Ideally, in the absence of thrown exceptions: v  a >>  v should return a, regardless of a. In practice some  Ts only permit a very limited range of value assignments, and do not report failure. Change the type of a                 foreign-var-0.1 Foreign.Var HasGetterget HasUpdate$~$~! HasSetter$= GettableVar SettableVarVarmapVar$=!$fHasGetterIORefa$fHasGetterPtra$fHasGetterSTMa$fHasGetterIOa$fHasGetterTVara$fHasGetterVara$fHasUpdateTVaraa$fHasUpdateIORefaa$fHasUpdatePtraa$fHasUpdateVaraa$fHasSetterTVara$fHasSetterIORefa$fHasSetterPtra$fHasSetterVara$fHasSetterSettableVara