diff --git a/Data/MemoCombinators.hs b/Data/MemoCombinators.hs
--- a/Data/MemoCombinators.hs
+++ b/Data/MemoCombinators.hs
@@ -115,7 +115,7 @@
 integral = wrap fromInteger toInteger bits
 
 -- | Memoize an ordered type with a bits instance.
-bits :: (Ord a, Bits a) => Memo a
+bits :: (Num a, Ord a, Bits a) => Memo a
 bits f = IntTrie.apply (fmap f IntTrie.identity)
 
 -- | @switch p a b@ uses the memo table a whenever p gives
diff --git a/data-memocombinators.cabal b/data-memocombinators.cabal
--- a/data-memocombinators.cabal
+++ b/data-memocombinators.cabal
@@ -1,7 +1,7 @@
 Name: data-memocombinators
 Description:
     Combinators for building memo tables.
-Version: 0.4.3
+Version: 0.4.4
 Stability: experimental
 Synopsis: Combinators for building memo tables.
 License: BSD3
