diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.3
+---
+* Support for `bytes` 0.8
+
 0.2.1
 -----
 * Claim to be Trustworthy
diff --git a/bits.cabal b/bits.cabal
--- a/bits.cabal
+++ b/bits.cabal
@@ -1,6 +1,6 @@
 name:          bits
 category:      Data, Serialization
-version:       0.2.1
+version:       0.3
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
diff --git a/src/Data/Bits/Coding.hs b/src/Data/Bits/Coding.hs
--- a/src/Data/Bits/Coding.hs
+++ b/src/Data/Bits/Coding.hs
@@ -122,16 +122,25 @@
 {-# INLINE getBit #-}
 
 instance MonadGet m => MonadGet (Coding m) where
-  type Unchecked (Coding m) = Unchecked m
+  type Remaining (Coding m) = Remaining m
   type Bytes (Coding m) = Bytes m
   skip = getAligned . skip
   {-# INLINE skip #-}
-  uncheckedSkip = getAligned . uncheckedSkip
-  {-# INLINE uncheckedSkip #-}
   lookAhead (Coding m) = Coding $ \k i b -> lookAhead (m k i b)
   {-# INLINE lookAhead #-}
-  uncheckedLookAhead = getAligned . uncheckedLookAhead
-  {-# INLINE uncheckedLookAhead #-}
+  lookAheadM (Coding m) = Coding $ \k i b -> lookAheadE (m (distribute k) i b) >>= factor
+    where
+      distribute k Nothing i' b'  = return $ Left $ k (Nothing) i' b'
+      distribute k (Just a) i' b' = return $ Right $ k (Just a) i' b'
+      factor = either id id
+  {-# INLINE lookAheadM #-}
+  lookAheadE (Coding m) = Coding $ \k i b -> lookAheadE (m (distribute k) i b) >>= factor
+    where
+      distribute k (Left e) i' b'  = return $ Left $ k (Left e) i' b'
+      distribute k (Right a) i' b' = return $ Right $ k (Right a) i' b'
+      factor = either id id
+  {-# INLINE lookAheadE #-}
+
   getBytes  = getAligned . getBytes
   {-# INLINE getBytes #-}
   remaining = lift remaining
