diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,10 @@
 # Change log
 
-## Version 0.7.0 (PENDING)
+## Version 0.8.0 (PENDING)
 
+## Version 0.7.0 
+- Create instances for InClass
+- Fixed bad encoding of VerificationTypeInfo
 
 ## Version 0.6.1
 - Fix a mistake in anewarray
diff --git a/jvm-binary.cabal b/jvm-binary.cabal
--- a/jvm-binary.cabal
+++ b/jvm-binary.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 17d1d11b12a950bbd9f3da13a3c7afa3e69c6e165b50365e4a0aff52bc3fe075
+-- hash: 66f9e829b672a9a2b77a10d9248e3a98ba13cdf0b8422506f9cb9ffd4858b5eb
 
 name:           jvm-binary
-version:        0.6.1
+version:        0.7.0
 synopsis:       A library for reading Java class-files
 description:    A library for reading Java class-files.
 category:       Language, Java, JVM
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: jvm-binary
-version: '0.6.1'
+version: '0.7.0'
 author: Christian Gram Kalhauge
 maintainer: Christian Gram Kalhauge <kalhauge@cs.ucla.edu>
 synopsis: A library for reading Java class-files
diff --git a/src/Language/JVM/Attribute/StackMapTable.hs b/src/Language/JVM/Attribute/StackMapTable.hs
--- a/src/Language/JVM/Attribute/StackMapTable.hs
+++ b/src/Language/JVM/Attribute/StackMapTable.hs
@@ -5,6 +5,7 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE StandaloneDeriving  #-}
 {-# LANGUAGE TemplateHaskell     #-}
+{-# LANGUAGE LambdaCase          #-}
 {-|
 Module      : Language.JVM.Attribute.StackMapTable
 Copyright   : (c) Christian Gram Kalhauge, 2018
@@ -42,6 +43,7 @@
 import           Language.JVM.ByteCode
 import           Language.JVM.Constant
 import           Language.JVM.Staged
+import           Language.JVM.Type
 import           Language.JVM.Utils
 
 -- | 'StackMapTable' is an Attribute.
@@ -112,9 +114,8 @@
         = fail $ "Unknown frame type '0x" ++ showHex ft "'"
     framegetter
 
-  put (StackMapFrame off frame) = do
+  put (StackMapFrame off frame) =
     case frame of
-
       SameFrame
         | off <= 63 ->
             putWord8 (fromIntegral off)
@@ -152,7 +153,6 @@
         put ls1
         put ls2
 
--- TODO: Fix that ClassName can be an array.
 -- | The types info of the stack map frame.
 data VerificationTypeInfo r
   = VTTop
@@ -162,36 +162,33 @@
   | VTDouble
   | VTNull
   | VTUninitializedThis
-  | VTObject (Ref ClassName r)
+  | VTObject (Ref JRefType r)
   | VTUninitialized !Word16
 
 
 instance Binary (VerificationTypeInfo Low) where
-  get = do
-    tag <- getWord8
-    case tag of
-      0 -> pure VTTop
-      1 -> pure VTInteger
-      2 -> pure VTFloat
-      3 -> pure VTLong
-      4 -> pure VTDouble
-      5 -> pure VTNull
-      6 -> pure VTUninitializedThis
-      7 -> VTObject <$> get
-      8 -> VTUninitialized <$> get
-      _ -> fail $ "Unexpected tag : '0x" ++ showHex tag "'"
+  get = getWord8 >>= \case
+    0 -> pure VTTop
+    1 -> pure VTInteger
+    2 -> pure VTFloat
+    3 -> pure VTLong
+    4 -> pure VTDouble
+    5 -> pure VTNull
+    6 -> pure VTUninitializedThis
+    7 -> VTObject <$> get
+    8 -> VTUninitialized <$> get
+    tag -> fail $ "Unexpected tag : '0x" ++ showHex tag "'"
 
-  put a = do
-    case a of
-      VTTop               -> putWord8 0
-      VTInteger           -> putWord8 1
-      VTFloat             -> putWord8 2
-      VTLong              -> putWord8 3
-      VTDouble            -> putWord8 4
-      VTNull              -> putWord8 5
-      VTUninitializedThis -> putWord8 6
-      VTObject s          -> do putWord8 7; put s
-      VTUninitialized s   -> do putWord8 8; put s
+  put = \case
+    VTTop               -> putWord8 0
+    VTInteger           -> putWord8 1
+    VTFloat             -> putWord8 2
+    VTLong              -> putWord8 3
+    VTDouble            -> putWord8 4
+    VTNull              -> putWord8 5
+    VTUninitializedThis -> putWord8 6
+    VTObject s          -> do putWord8 7; put s
+    VTUninitialized s   -> do putWord8 8; put s
 
 instance ByteCodeStaged StackMapTable where
   evolveBC f (StackMapTable ls) =
@@ -255,7 +252,6 @@
     case x of
       VTObject a -> VTObject <$> link a
       a         -> return $ unsafeCoerce a
-
 
 $(deriveBaseWithBinary ''StackMapTable)
 $(deriveBase ''StackMapFrame)
diff --git a/src/Language/JVM/Constant.hs b/src/Language/JVM/Constant.hs
--- a/src/Language/JVM/Constant.hs
+++ b/src/Language/JVM/Constant.hs
@@ -107,6 +107,19 @@
   , inClassId   :: !(Ref a r)
   }
 
+deriving instance Show a                 => Show (InClass a High)
+deriving instance Eq a                   => Eq (InClass a High)
+deriving instance Ord a                  => Ord (InClass a High)
+deriving instance Generic a              => Generic (InClass a High)
+deriving instance (Generic a, NFData a)  => NFData (InClass a High)
+
+deriving instance Eq (InClass a Low)
+deriving instance Ord (InClass a Low)
+deriving instance Show (InClass a Low)
+deriving instance NFData (InClass a Low)
+deriving instance Generic (InClass a Low)
+deriving instance Binary (InClass a Low)
+
 -- | A method id in a class.
 type AbsMethodId = InClass MethodId
 
@@ -448,8 +461,8 @@
 $(deriveBase ''MethodHandleInterface)
 $(deriveBaseWithBinary ''InvokeDynamic)
 
-$(deriveBaseWithBinary ''AbsMethodId)
-$(deriveBaseWithBinary ''AbsFieldId)
+-- $(deriveBaseWithBinary ''AbsMethodId)
+-- $(deriveBaseWithBinary ''AbsFieldId)
 $(deriveBaseWithBinary ''AbsInterfaceMethodId)
 $(deriveBaseWithBinary ''AbsVariableMethodId)
 
