diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for patch
 
+## 0.0.4.0
+
+* Enable PolyKinds
+
 ## 0.0.3.2
 
 * Update version bounds
diff --git a/patch.cabal b/patch.cabal
--- a/patch.cabal
+++ b/patch.cabal
@@ -1,5 +1,5 @@
 Name: patch
-Version: 0.0.3.2
+Version: 0.0.4.0
 Synopsis: Data structures for describing changes to other data structures.
 Description:
   Data structures for describing changes to other data structures.
@@ -33,7 +33,7 @@
 library
   hs-source-dirs: src
   default-language: Haskell2010
-  build-depends: base >= 4.9 && < 4.14
+  build-depends: base >= 4.9 && < 4.15
                , constraints-extras >= 0.3 && < 0.4
                , containers >= 0.6 && < 0.7
                , dependent-map >= 0.3 && < 0.5
@@ -55,6 +55,7 @@
                  , Data.Patch.MapWithPatchingMove
 
   ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs
+  default-extensions: PolyKinds
 
   if flag(split-these)
     build-depends: these >= 1 && <1.2
@@ -73,7 +74,7 @@
                , directory
                , filepath
                , filemanip
-               , hlint (< 2.1 || >= 2.2.2) && < 3
+               , hlint (< 2.1 || >= 2.2.2) && < 3.3
   if impl(ghcjs)
     buildable: False
 
diff --git a/src/Data/Patch/Class.hs b/src/Data/Patch/Class.hs
--- a/src/Data/Patch/Class.hs
+++ b/src/Data/Patch/Class.hs
@@ -30,7 +30,7 @@
   apply (Identity a) _ = Just a
 
 -- | 'Proxy' can be used as a 'Patch' that does nothing.
-instance Patch (Proxy a) where
+instance Patch (Proxy (a :: *)) where
   type PatchTarget (Proxy a) = a
   apply ~Proxy _ = Nothing
 
