diff --git a/ranged-list.cabal b/ranged-list.cabal
--- a/ranged-list.cabal
+++ b/ranged-list.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 349e85c819f827a30071512b7dc4e2e3b2add699054a5d970f833e60ce71577d
+-- hash: 3cf01e9e48430e4ab13f9d91acd3c46961815fbb460b724547e694c3b9b4582c
 
 name:           ranged-list
-version:        0.1.0.1
+version:        0.1.1.1
 synopsis:       The list like structure whose length or range of length can be specified
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/ranged-list#readme>
 category:       List
diff --git a/src/Data/List/Length.hs b/src/Data/List/Length.hs
--- a/src/Data/List/Length.hs
+++ b/src/Data/List/Length.hs
@@ -42,7 +42,6 @@
 	-- * RIGHT TO LEFT
 	RightToLeft, (++..), rightToLeft ) where
 
-import GHC.TypeNats (type (-))
 import Control.Arrow (first, (***))
 import Data.List.Range (
 	RangeL(..), AddL, (++.), LoosenLMax, loosenLMax, Unfoldr,
diff --git a/src/Data/List/Range/Nat.hs b/src/Data/List/Range/Nat.hs
--- a/src/Data/List/Range/Nat.hs
+++ b/src/Data/List/Range/Nat.hs
@@ -11,7 +11,6 @@
 	-- * RangedNatR
 	RangedNatR, natR, toIntR, fromIntR, splitAtR ) where
 
-import GHC.TypeNats (type (-))
 import Data.Bool (bool)
 import Data.List.Length (repeatL, repeatR)
 import Data.List.Range (
diff --git a/src/Data/List/Range/RangeL.hs b/src/Data/List/Range/RangeL.hs
--- a/src/Data/List/Range/RangeL.hs
+++ b/src/Data/List/Range/RangeL.hs
@@ -43,6 +43,7 @@
 import Control.Arrow (first, second, (***), (&&&))
 import Control.Monad.Identity (Identity(..))
 import Control.Monad.State (StateL(..))
+import Data.Kind (Type)
 import Data.Foldable (toList)
 import Data.Bool (bool)
 import Data.Maybe (isJust, fromMaybe)
@@ -87,7 +88,7 @@
 
 -- RANGE LEFT
 
-data RangeL :: Nat -> Nat -> * -> * where
+data RangeL :: Nat -> Nat -> Type -> Type where
 	NilL :: 0 <= m => RangeL 0 m a
 	(:..) :: 1 <= m => a -> RangeL 0 (m - 1) a -> RangeL 0 m a
 	(:.) :: (1 <= n, 1 <= m) =>
@@ -131,6 +132,21 @@
 instance {-# OVERLAPPABLE #-} (1 <= n, Foldable (RangeL (n - 1) (m - 1))) =>
 	Foldable (RangeL n m) where
 	foldr (-<) z (x :. xs) = x -< foldr (-<) z xs
+
+-- INSTANCE TRAVERSABLE
+
+instance Traversable (RangeL 0 0) where traverse _ NilL = pure NilL
+
+instance {-# OVERLAPPABLE #-}
+	Traversable (RangeL 0 (m - 1)) => Traversable (RangeL 0 m) where
+	traverse f = \case
+		NilL -> pure NilL; x :.. xs -> (:..) <$> f x <*> traverse f xs
+
+instance {-# OVERLAPPABLE #-} (1 <= n, Traversable (RangeL (n - 1) (m - 1))) =>
+	Traversable (RangeL n m) where
+	traverse f (x :. xs) = (:.) <$> f x <*> traverse f xs
+
+-- INSTANCE APPLICATIVE
 
 instance Applicative (LengthL 0) where pure _ = NilL; _ <*> _ = NilL
 
diff --git a/src/Data/List/Range/RangeR.hs b/src/Data/List/Range/RangeR.hs
--- a/src/Data/List/Range/RangeR.hs
+++ b/src/Data/List/Range/RangeR.hs
@@ -42,6 +42,7 @@
 import Control.Arrow (first, second, (***), (&&&))
 import Control.Monad.Identity (Identity(..))
 import Control.Monad.State (StateR(..))
+import Data.Kind (Type)
 import Data.Foldable
 import Data.Bool (bool)
 import Data.Maybe (isJust, fromMaybe)
@@ -74,7 +75,7 @@
 
 -- RANGE RIGHT
 
-data RangeR :: Nat -> Nat -> * -> * where
+data RangeR :: Nat -> Nat -> Type -> Type where
 	NilR :: 0 <= m => RangeR 0 m a
 	(:++) :: 1 <= m => RangeR 0 (m - 1) a -> a -> RangeR 0 m a
 	(:+) :: (1 <= n, 1 <= m) =>
@@ -118,6 +119,21 @@
 instance {-# OVERLAPPABLE #-} (1 <= n, Foldable (RangeR (n - 1) (m - 1))) =>
 	Foldable (RangeR n m) where
 	foldr (-<) z (xs :+ x) = foldr (-<) (x -< z) xs
+
+-- INSTANCE TRAVERSABLE
+
+instance Traversable (RangeR 0 0) where traverse _ NilR = pure NilR
+
+instance {-# OVERLAPPABLE #-}
+	Traversable (RangeR 0 (m - 1)) => Traversable (RangeR 0 m) where
+	traverse f = \case
+		NilR -> pure NilR; xs :++ x -> (:++) <$> traverse f xs <*> f x
+
+instance {-# OVERLAPPABLE #-} (1 <= n, Traversable (RangeR (n - 1) (m - 1))) =>
+	Traversable (RangeR n m) where
+	traverse f (xs :+ x) = (:+) <$> traverse f xs <*> f x
+
+-- INSTANCE APPLICATIVE
 
 instance Applicative (RangeR 0 0) where pure _ = NilR; _ <*> _ = NilR
 
