From a7702a5ace2df62530d7fc1d31d7d520173daa04 Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Thu, 9 Sep 2021 19:04:06 +0200
Subject: [PATCH] Remove binary constraint (and generated instances) for
 messages

---
 src/Quasar/Wayland/Protocol/Core.hs | 2 --
 src/Quasar/Wayland/Protocol/TH.hs   | 4 ----
 2 files changed, 6 deletions(-)

diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs
index 0222b96..2f53d62 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 a313fe0..6102400 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
-- 
GitLab