--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable
+-- Portability : non-portable (multi-parameter type classes)
--
-- Continuation monads.
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable (reqruires multi-param type classes)
+-- Portability : non-portable (multi-parameter type classes)
--
-- The Error monad.
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( requires mulit-parameter type classes )
+-- Portability : non-portable (multi-parameter type classes)
--
-- The List monad.
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( mulit-param classes, functional dependencies )
+-- Portability : non-portable (multi-param classes, functional dependencies)
--
-- Declaration of the MonadRWS class.
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( mulit-param classes, functional dependencies )
+-- Portability : non-portable (multi-param classes, functional dependencies)
--
-- Declaration of the Monoid class,and instances for list and functions
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( mulit-param classes, functional dependencies )
+-- Portability : non-portable (multi-param classes, functional dependencies)
--
-- State monads.
--
--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( mulit-param classes, functional dependencies )
+-- Portability : non-portable (multi-param classes, functional dependencies)
--
-- The MonadWriter class.
--
--
-----------------------------------------------------------------------------
+-- #hide
module Data.Array.IO.Internals (
IOArray(..), -- instance of: Eq, Typeable
IOUArray(..), -- instance of: Eq, Typeable
-- | Mutable, unboxed, strict arrays in the 'IO' monad. The type
-- arguments are as follows:
--
--- * @i@: the index type of the array (should be an instance of @Ix@)
+-- * @i@: the index type of the array (should be an instance of 'Ix')
--
-- * @e@: the element type of the array. Only certain element types
--- are supported: see 'MArray' for a list of instances.
+-- are supported: see "Data.Array.MArray" for a list of instances.
--
newtype IOUArray i e = IOUArray (STUArray RealWorld i e)
--
-- * @s@: the state variable argument for the 'ST' type
--
--- * @i@: the index type of the array (should be an instance of @Ix@)
+-- * @i@: the index type of the array (should be an instance of 'Ix')
--
-- * @e@: the element type of the array.
--
-- | An 'IOArray' is a mutable, boxed, non-strict array in the 'IO' monad.
-- The type arguments are as follows:
--
--- * @i@: the index type of the array (should be an instance of @Ix@)
+-- * @i@: the index type of the array (should be an instance of 'Ix')
--
-- * @e@: the element type of the array.
--
import Prelude
import qualified Text.Regex.Posix as RE
+import Text.Regex.Posix ( Regex )
import System.IO.Unsafe
--- | A compiled regular expression
-type Regex = RE.Regex
-
-- | Makes a regular expression with the default options (multi-line,
-- case-sensitive). The syntax of regular expressions is
-- otherwise that of @egrep@ (i.e. POSIX \"extended\" regular