+%
+% (c) The University of Glasgow 2006
+%
+
\begin{code}
module Digraph(
import Util ( sortLe )
+import Outputable
-- Extensions
-import MONAD_ST
+import Control.Monad.ST
-- std interfaces
-import Maybe
-import Array
-import List
-import Outputable
+import Data.Maybe
+import Data.Array
+import Data.List
#if __GLASGOW_HASKELL__ > 604
import Data.Array.ST
-#elif __GLASGOW_HASKELL__ >= 504
-import Data.Array.ST hiding ( indices, bounds )
#else
-import ST
+import Data.Array.ST hiding ( indices, bounds )
#endif
\end{code}
%************************************************************************
\begin{code}
-#if __GLASGOW_HASKELL__ >= 504
-newSTArray :: Ix i => (i,i) -> e -> ST s (STArray s i e)
-newSTArray = newArray
-
-readSTArray :: Ix i => STArray s i e -> i -> ST s e
-readSTArray = readArray
-
-writeSTArray :: Ix i => STArray s i e -> i -> e -> ST s ()
-writeSTArray = writeArray
-#endif
-
type Set s = STArray s Vertex Bool
mkEmpty :: Bounds -> ST s (Set s)
-mkEmpty bnds = newSTArray bnds False
+mkEmpty bnds = newArray bnds False
contains :: Set s -> Vertex -> ST s Bool
-contains m v = readSTArray m v
+contains m v = readArray m v
include :: Set s -> Vertex -> ST s ()
-include m v = writeSTArray m v True
+include m v = writeArray m v True
\end{code}
\begin{code}