diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.4.7.0
+
+* Fixed the [Haddock crash on GHC 8](https://github.com/aelve/microlens/issues/72) by removing default method implementations (`each = traverse` and `ix = ixAt`). If you had custom instances of `Ixed` or `Each` which relied on default methods, they'd stop working.
+
 # 0.4.6.0
 
 * Added `traverseOf` and `traverseOf_`.
diff --git a/microlens.cabal b/microlens.cabal
--- a/microlens.cabal
+++ b/microlens.cabal
@@ -1,5 +1,5 @@
 name:                microlens
-version:             0.4.6.0
+version:             0.4.7.0
 synopsis:            A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this.
 description:
   NOTE: If you're writing an app, you probably want <http://hackage.haskell.org/package/microlens-platform microlens-platform> – it has the most features. <http://hackage.haskell.org/package/microlens microlens> is intended more for library writers who want a tiny lens library (after all, lenses are pretty useful for everything, not just for updating records!).
diff --git a/src/Lens/Micro/Internal.hs b/src/Lens/Micro/Internal.hs
--- a/src/Lens/Micro/Internal.hs
+++ b/src/Lens/Micro/Internal.hs
@@ -5,7 +5,6 @@
 UndecidableInstances,
 RankNTypes,
 ScopedTypeVariables,
-DefaultSignatures,
 KindSignatures,
 TypeFamilies,
 MultiParamTypeClasses,
@@ -44,6 +43,7 @@
   IxValue,
   Ixed(..),
   At(..),
+  ixAt,
   Field1(..),
   Field2(..),
   Field3(..),
@@ -189,8 +189,6 @@
 You can also use 'each' with types from <http://hackage.haskell.org/package/array array>, <http://hackage.haskell.org/package/bytestring bytestring>, and <http://hackage.haskell.org/package/containers containers> by using <http://hackage.haskell.org/package/microlens-ghc microlens-ghc>, or additionally with types from <http://hackage.haskell.org/package/vector vector>, <http://hackage.haskell.org/package/text text>, and <http://hackage.haskell.org/package/unordered-containers unordered-containers> by using <http://hackage.haskell.org/package/microlens-platform microlens-platform>.
   -}
   each :: Traversal s t a b
-  default each :: (Traversable g, s ~ g a, t ~ g b) => Traversal s t a b
-  each = traverse
 
 instance (a~b, q~r) => Each (a,b) (q,r) a q where
   each f ~(a,b) = (,) <$> f a <*> f b
@@ -216,7 +214,9 @@
   each = traversed
   {-# INLINE each #-}
 
-instance Each (Maybe a) (Maybe b) a b
+instance Each (Maybe a) (Maybe b) a b where
+  each = traverse
+  {-# INLINE each #-}
 
 type family Index (s :: *) :: *
 
@@ -263,9 +263,6 @@
 You can also use 'ix' with types from <http://hackage.haskell.org/package/array array>, <http://hackage.haskell.org/package/bytestring bytestring>, and <http://hackage.haskell.org/package/containers containers> by using <http://hackage.haskell.org/package/microlens-ghc microlens-ghc>, or additionally with types from <http://hackage.haskell.org/package/vector vector>, <http://hackage.haskell.org/package/text text>, and <http://hackage.haskell.org/package/unordered-containers unordered-containers> by using <http://hackage.haskell.org/package/microlens-platform microlens-platform>.
   -}
   ix :: Index m -> Traversal' m (IxValue m)
-  default ix :: (At m) => Index m -> Traversal' m (IxValue m)
-  ix = ixAt
-  {-# INLINE ix #-}
 
 class Ixed m => At m where
   {- |
