diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog for the [`clash-systemverilog`](http://hackage.haskell.org/package/clash-systemverilog) package
 
+## 0.6.2 *October 21st 2015*
+* New features:
+  * Support `clash-prelude` 0.10.2
+
 ## 0.6.1 *October 16th 2015*
 * New features:
   * Support for `clash-prelude` 0.10.1
diff --git a/clash-verilog.cabal b/clash-verilog.cabal
--- a/clash-verilog.cabal
+++ b/clash-verilog.cabal
@@ -1,5 +1,5 @@
 Name:                 clash-verilog
-Version:              0.6.1
+Version:              0.6.2
 Synopsis:             CAES Language for Synchronous Hardware - Verilog backend
 Description:
   CλaSH (pronounced ‘clash’) is a functional hardware description language that
diff --git a/primitives/CLaSH.Sized.Internal.Index.json b/primitives/CLaSH.Sized.Internal.Index.json
--- a/primitives/CLaSH.Sized.Internal.Index.json
+++ b/primitives/CLaSH.Sized.Internal.Index.json
@@ -1,4 +1,16 @@
 [ { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.pack#"
+    , "type"      : "pack# :: Index n -> BitVector (CLog 2 n)"
+    , "templateE" : "~ARG[0]"
+    }
+  }
+, { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.unpack#"
+    , "type"      : "unpack# :: KnownNat n => BitVector (CLog 2 n) -> Index n"
+    , "templateE" : "~ARG[1]"
+    }
+  }
+, { "BlackBox" :
     { "name"      : "CLaSH.Sized.Internal.Index.eq#"
     , "type"      : "eq# :: Index n -> Index n -> Bool"
     , "templateE" : "~ARG[0] == ~ARG[1]"
@@ -65,6 +77,24 @@
     }
   }
 , { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.plus#"
+    , "type"      : "Index m -> Index n -> Index (m + n - 1)"
+    , "templateD" : "assign ~RESULT = ~ARG[0] + ~ARG[1];"
+    }
+  }
+, { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.minus#"
+    , "type"      : "Index m -> Index n -> Index (m + n - 1)"
+    , "templateD" : "assign ~RESULT = ~ARG[0] - ~ARG[1];"
+    }
+  }
+, { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.times#"
+    , "type"      : "Index m -> Index n -> Index (((m-1) * (n-1)) + 1)"
+    , "templateD" : "assign ~RESULT = ~ARG[0] * ~ARG[1];"
+    }
+  }
+, { "BlackBox" :
     { "name"      : "CLaSH.Sized.Internal.Index.quot#"
     , "type"      : "quot# :: Index n -> Index n -> Index n"
     , "templateE" : "~ARG[0] / ~ARG[1]"
@@ -80,6 +110,12 @@
     { "name"      : "CLaSH.Sized.Internal.Index.toInteger#"
     , "type"      : "toInteger# :: Index n -> Integer"
     , "templateD" : "assign ~RESULT = $unsigned(~ARG[0]);"
+    }
+  }
+, { "BlackBox" :
+    { "name"      : "CLaSH.Sized.Internal.Index.resize#"
+    , "type"      : "resize# :: KnownNat m => Index n -> Index m"
+    , "templateD" : "assign ~RESULT = $unsigned(~ARG[1]);"
     }
   }
 ]
