diff --git a/library/Octane/Types/Int32LE.hs b/library/Octane/Types/Int32LE.hs
--- a/library/Octane/Types/Int32LE.hs
+++ b/library/Octane/Types/Int32LE.hs
@@ -4,7 +4,7 @@
 
 newtype Int32LE = NewInt32LE
     { getInt32LE :: Int32
-    } deriving (Show)
+    } deriving (Eq, Show)
 
 instance Binary Int32LE where
     get = do
diff --git a/library/Octane/Types/Int64LE.hs b/library/Octane/Types/Int64LE.hs
--- a/library/Octane/Types/Int64LE.hs
+++ b/library/Octane/Types/Int64LE.hs
@@ -4,7 +4,7 @@
 
 newtype Int64LE = NewInt64LE
     { getInt64LE :: Int64
-    } deriving (Show)
+    } deriving (Eq, Show)
 
 instance Binary Int64LE where
     get = do
diff --git a/octane.cabal b/octane.cabal
--- a/octane.cabal
+++ b/octane.cabal
@@ -1,5 +1,5 @@
 name: octane
-version: 0.1.0
+version: 0.1.1
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
diff --git a/test-suite/Octane/Types/BooleanSpec.hs b/test-suite/Octane/Types/BooleanSpec.hs
--- a/test-suite/Octane/Types/BooleanSpec.hs
+++ b/test-suite/Octane/Types/BooleanSpec.hs
@@ -16,8 +16,6 @@
     it "can be encoded" $ do
         Binary.encode (Octane.NewBoolean False) `shouldBe` "\0"
         Binary.encode (Octane.NewBoolean True) `shouldBe` "\1"
-    it "handles extra data when decoding" $ do
-        decodeBoolean "\0extra" `shouldBe` Right ("extra", 1, Octane.NewBoolean False)
     it "does not raise a runtime error when decoding garbage" $ do
         decodeBoolean "garbage" `shouldBe` Left ("arbage", 1, "out of bounds")
 
diff --git a/test-suite/Octane/Types/Int32LESpec.hs b/test-suite/Octane/Types/Int32LESpec.hs
--- a/test-suite/Octane/Types/Int32LESpec.hs
+++ b/test-suite/Octane/Types/Int32LESpec.hs
@@ -1,7 +1,21 @@
+{-# LANGUAGE OverloadedStrings #-}
+
 module Octane.Types.Int32LESpec (spec) where
 
+import qualified Data.Binary as Binary
+import qualified Data.Binary.Get as Binary
+import qualified Data.ByteString.Lazy as BSL
+import qualified Octane as Octane
 import Test.Tasty.Hspec
 
 spec :: Spec
 spec = describe "Int32LE" $ do
-    return ()
+    it "can be decoded" $ do
+        decodeInt32LE "\0\0\0\0" `shouldBe` Right ("", 4, Octane.NewInt32LE 0)
+        decodeInt32LE "\1\0\0\0" `shouldBe` Right ("", 4, Octane.NewInt32LE 1)
+    it "can be encoded" $ do
+        Binary.encode (Octane.NewInt32LE 0) `shouldBe` "\0\0\0\0"
+        Binary.encode (Octane.NewInt32LE 1) `shouldBe` "\1\0\0\0"
+
+decodeInt32LE :: BSL.ByteString -> Either (BSL.ByteString, Binary.ByteOffset, String) (BSL.ByteString, Binary.ByteOffset, Octane.Int32LE)
+decodeInt32LE = Binary.decodeOrFail
diff --git a/test-suite/Octane/Types/Int64LESpec.hs b/test-suite/Octane/Types/Int64LESpec.hs
--- a/test-suite/Octane/Types/Int64LESpec.hs
+++ b/test-suite/Octane/Types/Int64LESpec.hs
@@ -1,7 +1,21 @@
+{-# LANGUAGE OverloadedStrings #-}
+
 module Octane.Types.Int64LESpec (spec) where
 
+import qualified Data.Binary as Binary
+import qualified Data.Binary.Get as Binary
+import qualified Data.ByteString.Lazy as BSL
+import qualified Octane as Octane
 import Test.Tasty.Hspec
 
 spec :: Spec
 spec = describe "Int64LE" $ do
-    return ()
+    it "can be decoded" $ do
+        decodeInt64LE "\0\0\0\0\0\0\0\0" `shouldBe` Right ("", 8, Octane.NewInt64LE 0)
+        decodeInt64LE "\1\0\0\0\0\0\0\0" `shouldBe` Right ("", 8, Octane.NewInt64LE 1)
+    it "can be encoded" $ do
+        Binary.encode (Octane.NewInt64LE 0) `shouldBe` "\0\0\0\0\0\0\0\0"
+        Binary.encode (Octane.NewInt64LE 1) `shouldBe` "\1\0\0\0\0\0\0\0"
+
+decodeInt64LE :: BSL.ByteString -> Either (BSL.ByteString, Binary.ByteOffset, String) (BSL.ByteString, Binary.ByteOffset, Octane.Int64LE)
+decodeInt64LE = Binary.decodeOrFail
