{-# OPTIONS_HADDOCK not-home #-} module System.Remote.Gauge.Internal ( Gauge(..) , new , read ) where import Data.IORef (IORef, newIORef, readIORef) import Prelude hiding (read) -- | A mutable, integer-valued gauge. newtype Gauge = C { unC :: IORef Int } -- | Create a new, zero initialized, gauge. new :: IO Gauge new = C `fmap` newIORef 0 read :: Gauge -> IO Int read = readIORef . unC