diff --git a/ClassyPrelude/Classes.hs b/ClassyPrelude/Classes.hs
--- a/ClassyPrelude/Classes.hs
+++ b/ClassyPrelude/Classes.hs
@@ -78,8 +78,12 @@
 instance (CanInsertVal c' k v, c ~ c') => CanInsert (k -> v -> c -> c') where
     insert = insertVal
 
-class CanDelete c k | c -> k where
-    delete :: k -> c -> c
+class CanDelete f where
+    delete :: f
+class CanDeleteVal c k | c -> k where
+    deleteVal :: k -> c -> c
+instance (CanDeleteVal c' k, c ~ c') => CanDelete (k -> c -> c') where
+    delete = deleteVal
 
 class CanMember c k | c -> k where
     member :: k -> c -> Prelude.Bool
diff --git a/ClassyPrelude/HashMap.hs b/ClassyPrelude/HashMap.hs
--- a/ClassyPrelude/HashMap.hs
+++ b/ClassyPrelude/HashMap.hs
@@ -32,5 +32,5 @@
     lookup = Map.lookup
 instance (Prelude.Eq k, Hashable k) => CanInsertVal (Map k v) k v where
     insertVal = Map.insert
-instance (Prelude.Eq k, Hashable k) => CanDelete (Map k v) k where
-    delete = Map.delete
+instance (Prelude.Eq k, Hashable k) => CanDeleteVal (Map k v) k where
+    deleteVal = Map.delete
diff --git a/ClassyPrelude/List.hs b/ClassyPrelude/List.hs
--- a/ClassyPrelude/List.hs
+++ b/ClassyPrelude/List.hs
@@ -35,8 +35,8 @@
     lookup = Prelude.lookup
 instance Prelude.Eq k => CanInsertVal [(k, v)] k v where
     insertVal k v c = (k, v) : delete k c
-instance Prelude.Eq k => CanDelete [(k, v)] k where
-    delete k = filter ((Prelude./= k) . Prelude.fst)
+instance Prelude.Eq k => CanDeleteVal [(k, v)] k where
+    deleteVal k = filter ((Prelude./= k) . Prelude.fst)
 instance Prelude.Eq x => CanMember [x] x where
     member x = Prelude.any (Prelude.== x)
 instance Prelude.Eq a => CanStripPrefix [a] where
diff --git a/ClassyPrelude/Map.hs b/ClassyPrelude/Map.hs
--- a/ClassyPrelude/Map.hs
+++ b/ClassyPrelude/Map.hs
@@ -29,5 +29,5 @@
     lookup = Map.lookup
 instance Prelude.Ord k => CanInsertVal (Map k v) k v where
     insertVal = Map.insert
-instance Prelude.Ord k => CanDelete (Map k v) k where
-    delete = Map.delete
+instance Prelude.Ord k => CanDeleteVal (Map k v) k where
+    deleteVal = Map.delete
diff --git a/classy-prelude.cabal b/classy-prelude.cabal
--- a/classy-prelude.cabal
+++ b/classy-prelude.cabal
@@ -1,5 +1,5 @@
 name:                classy-prelude
-version:             0.4.2
+version:             0.4.3
 synopsis:            A typeclass-based Prelude.
 description:         Focuses on using common typeclasses when possible, and creating new ones to avoid name clashing. Exposes many recommended datastructures (Map, ByteString, etc) directly without requiring long import lists and qualified modules.
 homepage:            https://github.com/snoyberg/classy-prelude
@@ -26,7 +26,7 @@
                        ClassyPrelude.HashMap
                        ClassyPrelude.HashSet
   build-depends:       base                          >= 4          && < 5
-                     , basic-prelude                 >= 0.3        && < 0.4
+                     , basic-prelude                 >= 0.3.2      && < 0.4
                      , system-filepath               >= 0.4        && < 0.5
                      , transformers
                      , containers                    >= 0.4.2
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -16,7 +16,7 @@
 
 dictionaryProps
     :: ( CanInsertVal a Int Char
-       , CanDelete a Int
+       , CanDeleteVal a Int
        , Show a
        , Eq a
        , Arbitrary a
