X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FSTRef.hs;h=3edfb871ae33310be20c2fe330e45b6b3438ef5d;hb=e9e2a5412bb7cda8d13a063ac403d9f18ac97380;hp=336a61fbd30aabfb79b2b2bb320f590cbbd5bea3;hpb=1819f73fc5bb82bf8e2a57905edfde81017d9167;p=ghc-base.git diff --git a/Data/STRef.hs b/Data/STRef.hs index 336a61f..3edfb87 100644 --- a/Data/STRef.hs +++ b/Data/STRef.hs @@ -24,10 +24,19 @@ module Data.STRef ( import Prelude #ifdef __GLASGOW_HASKELL__ +import GHC.ST import GHC.STRef #endif -import Data.Dynamic +#ifdef __HUGS__ +import Hugs.ST +#endif + +import Data.Typeable -#include "Dynamic.h" +#include "Typeable.h" INSTANCE_TYPEABLE2(STRef,stRefTc,"STRef") + +-- |Mutate the contents of an 'STRef' +modifySTRef :: STRef s a -> (a -> a) -> ST s () +modifySTRef ref f = writeSTRef ref . f =<< readSTRef ref