X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=Data%2FSTRef.hs;h=b185493a17756a4e344f64932ee31e59b3e97738;hb=19900017226bddfa1ebc694a24d87974232263b3;hp=e25e8b5efcf11c897514836e17daf6dab3059ae0;hpb=9812e0a321ec0ed8f9e53eb2febfb14c79564200;p=ghc-base.git diff --git a/Data/STRef.hs b/Data/STRef.hs index e25e8b5..b185493 100644 --- a/Data/STRef.hs +++ b/Data/STRef.hs @@ -24,14 +24,18 @@ module Data.STRef ( import Prelude #ifdef __GLASGOW_HASKELL__ +import GHC.ST import GHC.STRef #endif #ifdef __HUGS__ import Hugs.ST -#endif - -import Data.Dynamic +import Data.Typeable -#include "Dynamic.h" +#include "Typeable.h" INSTANCE_TYPEABLE2(STRef,stRefTc,"STRef") +#endif + +-- |Mutate the contents of an 'STRef' +modifySTRef :: STRef s a -> (a -> a) -> ST s () +modifySTRef ref f = writeSTRef ref . f =<< readSTRef ref