diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# Version 0.2
+
+* Depend on `singletons-2.2`, which means `KProxy` is gone.
+
+
 # Version 0.1.0.2
 
 * Relax upper bound on `base`, `singletons`, `constraints`.
diff --git a/exinst-bytes.cabal b/exinst-bytes.cabal
--- a/exinst-bytes.cabal
+++ b/exinst-bytes.cabal
@@ -1,5 +1,5 @@
 name:                exinst-bytes
-version:             0.1.0.2
+version:             0.2
 author:              Renzo Carbonara
 maintainer:          renzoλcarbonara.com.ar
 copyright:           Renzo Carbonara 2015-2016
@@ -19,10 +19,10 @@
   exposed-modules:
       Exinst.Instances.Bytes
   build-depends:
-      base >=4.7 && <5.0
+      base >=4.9 && <5.0
     , bytes >=0.15 && <0.16
     , constraints >=0.4 && <0.9
-    , exinst >=0.1 && <0.2
-    , singletons >=1.1 && <2.2
+    , exinst >=0.2 && <0.3
+    , singletons >=2.2 && <2.3
   ghcjs-options: -Wall -O3
   ghc-options: -Wall -O2
diff --git a/src/lib/Exinst/Instances/Bytes.hs b/src/lib/Exinst/Instances/Bytes.hs
--- a/src/lib/Exinst/Instances/Bytes.hs
+++ b/src/lib/Exinst/Instances/Bytes.hs
@@ -22,8 +22,8 @@
 --------------------------------------------------------------------------------
 
 instance forall (f1 :: k1 -> *)
-  . ( SingKind ('KProxy :: KProxy k1)
-    , By.Serial (DemoteRep ('KProxy :: KProxy k1))
+  . ( SingKind k1
+    , By.Serial (DemoteRep k1)
     , Dict1 By.Serial f1
     ) => By.Serial (Some1 f1)
   where
@@ -41,10 +41,10 @@
                        return (some1 x)
 
 instance forall (f2 :: k2 -> k1 -> *)
-  . ( SingKind ('KProxy :: KProxy k2)
-    , SingKind ('KProxy :: KProxy k1)
-    , By.Serial (DemoteRep ('KProxy :: KProxy k2))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k1))
+  . ( SingKind k2
+    , SingKind k1
+    , By.Serial (DemoteRep k2)
+    , By.Serial (DemoteRep k1)
     , Dict2 By.Serial f2
     ) => By.Serial (Some2 f2)
   where
@@ -63,12 +63,12 @@
                           return (some2 x)
 
 instance forall (f3 :: k3 -> k2 -> k1 -> *)
-  . ( SingKind ('KProxy :: KProxy k3)
-    , SingKind ('KProxy :: KProxy k2)
-    , SingKind ('KProxy :: KProxy k1)
-    , By.Serial (DemoteRep ('KProxy :: KProxy k3))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k2))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k1))
+  . ( SingKind k3
+    , SingKind k2
+    , SingKind k1
+    , By.Serial (DemoteRep k3)
+    , By.Serial (DemoteRep k2)
+    , By.Serial (DemoteRep k1)
     , Dict3 By.Serial f3
     ) => By.Serial (Some3 f3)
   where
@@ -88,16 +88,16 @@
                              return (some3 x)
 
 instance forall (f4 :: k4 -> k3 -> k2 -> k1 -> *)
-  . ( SingKind ('KProxy :: KProxy k4)
-    , SingKind ('KProxy :: KProxy k3)
-    , SingKind ('KProxy :: KProxy k2)
-    , SingKind ('KProxy :: KProxy k1)
-    , By.Serial (DemoteRep ('KProxy :: KProxy k4))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k3))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k2))
-    , By.Serial (DemoteRep ('KProxy :: KProxy k1))
+  . ( SingKind k4
+    , SingKind k3
+    , SingKind k2
+    , SingKind k1
+    , By.Serial (DemoteRep k4)
+    , By.Serial (DemoteRep k3)
+    , By.Serial (DemoteRep k2)
+    , By.Serial (DemoteRep k1)
     , Dict4 By.Serial f4
-    ) => By.Serial (Some4 f4) 
+    ) => By.Serial (Some4 f4)
   where
     {-# INLINABLE serialize #-}
     serialize = \some4x -> withSome4Sing some4x $ \sa4 sa3 sa2 sa1 (x :: f4 a4 a3 a2 a1) ->
