diff --git a/Data/Vector/Sized.hs b/Data/Vector/Sized.hs
--- a/Data/Vector/Sized.hs
+++ b/Data/Vector/Sized.hs
@@ -5,8 +5,9 @@
 {-# LANGUAGE TypeOperators, NoImplicitPrelude                      #-}
 -- | Size-parameterized vector types and functions.
 module Data.Vector.Sized ( -- * Vectors and indices
-                           Vector (..)
-                         , Index(..), succIndex, indexToInt,
+                           Vector (..), Index,
+                           -- ** Re-exports
+                           module Data.Type.Ordinal,
                            -- * Conversion & Construction
                            replicate, replicate', singleton, uncons,
                            -- ** List
@@ -40,6 +41,7 @@
 import           Data.Maybe
 import           Data.Type.Monomorphic
 import           Data.Type.Natural     hiding (promote)
+import           Data.Type.Ordinal
 import qualified Prelude               as P
 import           Prelude               (Eq(..), Bool(..), Int, Show(..), (&&), Num(..)
                                        , (||), not, error, ($), (.), seq, fst, snd
@@ -53,6 +55,9 @@
 
 infixr 5 :-
 
+-- | Type synonym for @Ordinal@.
+type Index = Ordinal
+
 -- | Monomorphic representation of 'Vector' @a n@ is @[a]@.
 instance Monomorphicable (Vector a) where
   type MonomorphicRep (Vector a) = [a]
@@ -62,20 +67,6 @@
     case promote xs of
       Monomorphic vec -> Monomorphic $ x :- vec
 
--- | Index type for list.
-data Index (n :: Nat) where
-  Index :: ((S m :<<= n) ~ True) => SNat m -> Index n
-
--- | Succ index number.
-succIndex :: Index n -> Index (S n)
-succIndex (Index n) = Index (sS n)
-
--- | Convert index into integer.
-indexToInt :: Index n -> Int
-indexToInt (Index n) = sNatToInt n
-
-deriving instance Show (Index n)
-
 deriving instance Show a => Show (Vector a n)
 instance (Eq a) => Eq (Vector a n) where
   Nil == Nil = True
@@ -344,8 +335,8 @@
 
 -- | A 'Index' version of 'index'.
 sIndex :: Index n -> Vector a n -> a
-sIndex (Index SZ) (x :- _) = x
-sIndex (Index (SS n)) (_ :- xs) = sIndex (Index n) xs
+sIndex OZ (x :- _) = x
+sIndex (OS n) (_ :- xs) = sIndex n xs
 
 -- | The 'elemIndex' function returns the index (as 'Int') of the first element in the given list
 -- which is equal (by '==') to the query element, or Nothing if there is no such element.
@@ -378,14 +369,14 @@
 -- | The 'findIndices' function extends 'findIndex', by returning the indices of all elements satisfying the predicate,
 --  in ascending order.
 findIndices :: (a -> Bool) -> Vector a n -> [Int]
-findIndices p = P.map indexToInt . sFindIndices p
+findIndices p = P.map ordToInt . sFindIndices p
 
 -- | 'Index' version of 'findIndices'.
 sFindIndices :: (a -> Bool) -> Vector a n -> [Index n]
 sFindIndices _ Nil = []
 sFindIndices p (x :- xs)
-            | p x       = Index sZero : P.map succIndex (sFindIndices p xs)
-            | otherwise =  P.map succIndex $ sFindIndices p xs
+  | p x       = OZ : P.map OS (sFindIndices p xs)
+  | otherwise = P.map OS $ sFindIndices p xs
 
 --------------------------------------------------
 -- Zipping vectors
diff --git a/sized-vector.cabal b/sized-vector.cabal
--- a/sized-vector.cabal
+++ b/sized-vector.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                sized-vector
-version:             1.1.0.0
+version:             1.2.0.0
 synopsis:            Size-parameterized vector types and functions.
 description:         Size-parameterized vector types and functions using a data-type promotion.
 homepage:            https://github.com/konn/sized-vector
@@ -23,7 +23,7 @@
   exposed-modules:     Data.Vector.Sized
   build-depends:       base                     >= 2.0 && < 5
                ,       singletons               == 0.8.*
-               ,       type-natural             >= 0.0.2.0
+               ,       type-natural             >= 0.0.4.0
                ,       monomorphic              == 0.0.*
                ,       equational-reasoning     == 0.0.*
                ,       hashable                 == 1.1.*
