diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.0.1.2
+
+* Support for GHC 8.2
+
 ## 1.0.1.1
 
 * Fix typo in rewrite rule
diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -1,5 +1,5 @@
 name:                mono-traversable
-version:             1.0.1.1
+version:             1.0.1.2
 synopsis:            Type classes for mapping, folding, and traversing monomorphic containers
 description:         Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. If you understand Haskell's basic typeclasses, you understand mono-traversable. In addition to what you are used to, it adds on an IsSequence typeclass and has code for marking data structures as non-empty.
 homepage:            https://github.com/snoyberg/mono-traversable
diff --git a/src/Data/MonoTraversable.hs b/src/Data/MonoTraversable.hs
--- a/src/Data/MonoTraversable.hs
+++ b/src/Data/MonoTraversable.hs
@@ -141,7 +141,8 @@
 class MonoFunctor mono where
     -- | Map over a monomorphic container
     omap :: (Element mono -> Element mono) -> mono -> mono
-    default omap :: (Functor f, Element (f a) ~ a, f a ~ mono) => (a -> a) -> f a -> f a
+    default omap :: (Functor f, Element (f a) ~ a, f a ~ mono)
+                 => (Element mono -> Element mono) -> mono -> mono
     omap = fmap
     {-# INLINE omap #-}
 
@@ -332,7 +333,7 @@
     -- /See 'Data.NonNull.ofoldr1Ex' from "Data.NonNull" for a total version of this function./
     ofoldr1Ex :: (Element mono -> Element mono -> Element mono) -> mono -> Element mono
     default ofoldr1Ex :: (t a ~ mono, a ~ Element (t a), F.Foldable t)
-                           => (a -> a -> a) -> mono -> a
+                      => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
     ofoldr1Ex = F.foldr1
     {-# INLINE ofoldr1Ex #-}
 
@@ -345,7 +346,7 @@
     -- /See 'Data.NonNull.ofoldl1Ex'' from "Data.NonNull" for a total version of this function./
     ofoldl1Ex' :: (Element mono -> Element mono -> Element mono) -> mono -> Element mono
     default ofoldl1Ex' :: (t a ~ mono, a ~ Element (t a), F.Foldable t)
-                            => (a -> a -> a) -> mono -> a
+                       => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
     ofoldl1Ex' = F.foldl1
     {-# INLINE ofoldl1Ex' #-}
 
