diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs
index 0222b96199359824e562e5ffad5423600afd808d..2f53d62e0e3359715c44b0c5812b7cf97954e03b 100644
--- a/src/Quasar/Wayland/Protocol/Core.hs
+++ b/src/Quasar/Wayland/Protocol/Core.hs
@@ -115,8 +115,6 @@ instance WireFormat "fd" where
 -- | A wayland interface
 class
   (
-    Binary (Request i),
-    Binary (Event i),
     IsMessage (Request i),
     IsMessage (Event i)
   )
diff --git a/src/Quasar/Wayland/Protocol/TH.hs b/src/Quasar/Wayland/Protocol/TH.hs
index a313fe0df7cbb6cc67ae4e7a4ebdbcbbc1425c3f..6102400ac2ee9f4591e3adf9c3c3574fa3033524 100644
--- a/src/Quasar/Wayland/Protocol/TH.hs
+++ b/src/Quasar/Wayland/Protocol/TH.hs
@@ -86,12 +86,10 @@ interfaceDec interface = execWriterT do
   when (length interface.requests > 0) do
     tellQ $ dataD (pure []) rTypeName [] Nothing (rCon <$> interface.requests) []
     tellQ $ messageInstanceD rT ((\req@(RequestSpec msg) -> (msg, rConName req)) <$> interface.requests)
-    tellQs $ binaryInstanceD rT
 
   when (length interface.events > 0) do
     tellQ $ dataD (pure []) eTypeName [] Nothing (eCon <$> interface.events) []
     tellQ $ messageInstanceD eT ((\ev@(EventSpec msg) -> (msg, eConName ev)) <$> interface.events)
-    tellQs $ binaryInstanceD eT
 
   where
     iName = interfaceN interface
@@ -134,8 +132,6 @@ interfaceDec interface = execWriterT do
         getMessageClauseD (msg, conName) = clause [[p|_object|], litP (integerL (fromIntegral msg.opcode))] (normalB ([|$(conE conName) <$ dropRemaining|])) []
         putMessageD :: Q Dec
         putMessageD = funD 'putMessage [clause [] (normalB [|undefined|]) []]
-    binaryInstanceD :: Q Type -> Q [Dec]
-    binaryInstanceD mT = [d|instance Binary $mT where {get = undefined; put = undefined}|]
 
 interfaceN :: InterfaceSpec -> Name
 interfaceN interface = mkName $ "I_" <> interface.name