diff --git a/int-like.cabal b/int-like.cabal
--- a/int-like.cabal
+++ b/int-like.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           int-like
-version:        0.2.0
+version:        0.3.0
 synopsis:       Newtype wrappers over IntSet and IntMap
 description:    Please see the README on GitHub at <https://github.com/ejconlon/int-like#readme>
 category:       Data Structures
diff --git a/src/IntLike/Map.hs b/src/IntLike/Map.hs
--- a/src/IntLike/Map.hs
+++ b/src/IntLike/Map.hs
@@ -411,7 +411,7 @@
 disjoint = coerce (IntMap.disjoint @a @b)
 {-# INLINE disjoint #-}
 
-compose :: forall x c. IntLikeMap x c -> IntMap Int -> IntLikeMap x c
+compose :: forall x a c. (Coercible x Int) => IntLikeMap x c -> IntLikeMap a x -> IntLikeMap a c
 compose = coerce (IntMap.compose @c)
 {-# INLINE compose #-}
 
