Remove unneeded code
[darcs-mirrors/vector.git] / Data / Vector.hs
index f1f1ece..8537a49 100644 (file)
@@ -1,10 +1,22 @@
 {-# LANGUAGE MagicHash, UnboxedTuples, FlexibleInstances, MultiParamTypeClasses #-}
 
 {-# LANGUAGE MagicHash, UnboxedTuples, FlexibleInstances, MultiParamTypeClasses #-}
 
+-- |
+-- Module      : Data.Vector
+-- Copyright   : (c) Roman Leshchinskiy 2008
+-- License     : BSD-style
+--
+-- Maintainer  : rl@cse.unsw.edu.au
+-- Stability   : experimental
+-- Portability : non-portable
+-- 
+-- Boxed vectors
+--
+
 module Data.Vector (
 module Data.Vector (
-  Vector(..), module Data.Vector.Base
+  Vector(..), module Data.Vector.IVector
 ) where
 
 ) where
 
-import           Data.Vector.Base
+import           Data.Vector.IVector
 import qualified Data.Vector.Mutable as Mut
 
 import Control.Monad.ST ( runST )
 import qualified Data.Vector.Mutable as Mut
 
 import Control.Monad.ST ( runST )
@@ -17,19 +29,16 @@ data Vector a = Vector {-# UNPACK #-} !Int
                        {-# UNPACK #-} !Int
                                       (Array# a)
 
                        {-# UNPACK #-} !Int
                                       (Array# a)
 
-instance Base Vector a where
-  {-# INLINE create #-}
-  create init = runST (do_create init)
-    where
-      do_create :: ST s (Mut.Vector (ST s) a) -> ST s (Vector a)
-      do_create init = do
-                         Mut.Vector i n marr# <- init
-                         ST (\s# -> case unsafeFreezeArray# marr# s# of
+instance IVector Vector a where
+  {-# INLINE new #-}
+  new init = runST (do
+                      Mut.Vector i n marr# <- init
+                      ST (\s# -> case unsafeFreezeArray# marr# s# of
                               (# s2#, arr# #) -> (# s2#, Vector i n arr# #)
                               (# s2#, arr# #) -> (# s2#, Vector i n arr# #)
-                            )
+                            ))
 
 
-  {-# INLINE length #-}
-  length (Vector _ n _) = n
+  {-# INLINE vlength #-}
+  vlength (Vector _ n _) = n
 
   {-# INLINE unsafeSlice #-}
   unsafeSlice (Vector i _ arr#) j n = Vector (i+j) n arr#
 
   {-# INLINE unsafeSlice #-}
   unsafeSlice (Vector i _ arr#) j n = Vector (i+j) n arr#