{-# LANGUAGE Safe #-}------------------------------------------------------------------------------- |-- Module : Data.STRef.Lazy-- Copyright : (c) The University of Glasgow 2001-- License : BSD-style (see the file libraries/base/LICENSE)---- Maintainer : libraries@haskell.org-- Stability : stable-- Portability : non-portable (uses Control.Monad.ST.Lazy)---- Mutable references in the lazy ST monad.-------------------------------------------------------------------------------moduleData.STRef.Lazy (-- * STRefsST.STRef ,-- abstractnewSTRef ,readSTRef ,writeSTRef ,modifySTRef )whereimportPrelude importGHC.Internal.Control.Monad.ST.Lazy importqualifiedGHC.Internal.Data.STRef asSTnewSTRef ::a ->ST s (ST.STRef s a )readSTRef ::ST.STRef s a ->ST s a writeSTRef ::ST.STRef s a ->a ->ST s ()modifySTRef ::ST.STRef s a ->(a ->a )->ST s ()newSTRef :: forall a s. a -> ST s (STRef s a)
newSTRef =ST s (STRef s a) -> ST s (STRef s a)
forall s a. ST s a -> ST s a
strictToLazyST (ST s (STRef s a) -> ST s (STRef s a))
-> (a -> ST s (STRef s a)) -> a -> ST s (STRef s a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> ST s (STRef s a)
forall a s. a -> ST s (STRef s a)
ST.newSTRef readSTRef :: forall s a. STRef s a -> ST s a
readSTRef =ST s a -> ST s a
forall s a. ST s a -> ST s a
strictToLazyST (ST s a -> ST s a) -> (STRef s a -> ST s a) -> STRef s a -> ST s a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. STRef s a -> ST s a
forall s a. STRef s a -> ST s a
ST.readSTRef writeSTRef :: forall s a. STRef s a -> a -> ST s ()
writeSTRef STRef s a
r a
a =ST s () -> ST s ()
forall s a. ST s a -> ST s a
strictToLazyST (STRef s a -> a -> ST s ()
forall s a. STRef s a -> a -> ST s ()
ST.writeSTRef STRef s a
r a
a )modifySTRef :: forall s a. STRef s a -> (a -> a) -> ST s ()
modifySTRef STRef s a
r a -> a
f =ST s () -> ST s ()
forall s a. ST s a -> ST s a
strictToLazyST (STRef s a -> (a -> a) -> ST s ()
forall s a. STRef s a -> (a -> a) -> ST s ()
ST.modifySTRef STRef s a
r a -> a
f )

AltStyle によって変換されたページ (->オリジナル) /