úÎf¤     (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.The result of  ® should also be compatible with the result of getting and setting separately, however, it may be more efficient or have better atomicity properties in a concurrent setting. Used by  Used by ()Used by ()Used by ()Build a   form a getter and a setter.Change the type of a  " gettersetter !      !"        !" foreign-var-0 Foreign.Var HasGetterget HasUpdate$~$~! HasSetter$= GettableVar SettableVarVargetVar updateVar updateVar'setVarnewVarmapVar$=!$fHasGetterIORefa$fHasGetterPtra$fHasGetterSTMa$fHasGetterIOa$fHasGetterTVara$fHasGetterVara$fHasUpdateTVaraa$fHasUpdateIORefaa$fHasUpdatePtraa$fHasUpdateVaraa$fHasSetterTVara$fHasSetterIORefa$fHasSetterPtra$fHasSetterVara$fHasSetterSettableVara