-- |
-- Module : Data.Array.ST
-- Copyright : (c) The University of Glasgow 2001
--- License : BSD-style (see the file libraries/core/LICENSE)
+-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
-- Portability : non-portable
--
--- $Id: ST.hs,v 1.2 2002/04/24 16:31:43 simonmar Exp $
---
--- Mutable boxed/unboxed arrays in the ST monad.
+-- Mutable boxed and unboxed arrays in the 'Control.Monad.ST.ST' monad.
--
-----------------------------------------------------------------------------
module Data.Array.ST (
- module Data.Array.MArray,
+
+ -- * Boxed arrays
STArray, -- instance of: Eq, MArray
+
+ -- * Unboxed arrays
STUArray, -- instance of: Eq, MArray
castSTUArray, -- :: STUArray s i a -> ST s (STUArray s i b)
+
+ -- * Overloaded mutable array interface
+ module Data.Array.MArray,
) where
import Prelude
import Data.Array.MArray
-import Data.Array.Base
+import Data.Array.Base ( STUArray, castSTUArray )
-#ifdef __GLASGOW_HASKELL__
-import GHC.Arr
-import GHC.ST
+#ifdef __HUGS__
+import Hugs.ST ( STArray )
+#endif
-castSTUArray :: STUArray s ix a -> ST s (STUArray s ix b)
-castSTUArray (STUArray l u marr#) = return (STUArray l u marr#)
+#ifdef __GLASGOW_HASKELL__
+import GHC.Arr ( STArray )
#endif