From 3704a6e6bd3035e383db2805d505c0232f40ecce Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Wed, 8 Sep 2021 02:08:25 +0200 Subject: [PATCH] Fix generated instances --- src/Quasar/Wayland/TH.hs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Quasar/Wayland/TH.hs b/src/Quasar/Wayland/TH.hs index 33c517d..0ee8a49 100644 --- a/src/Quasar/Wayland/TH.hs +++ b/src/Quasar/Wayland/TH.hs @@ -64,12 +64,12 @@ interfaceDec interface = execWriterT do when (length interface.requests > 0) do tellQ $ dataD (pure []) rTypeName [] Nothing (rCon <$> interface.requests) [] - tellQ $ messageInstanceD ((\req@(RequestSpec msg) -> (msg, rConName req)) <$> 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 ((\ev@(EventSpec msg) -> (msg, eConName ev)) <$> interface.events) + tellQ $ messageInstanceD eT ((\ev@(EventSpec msg) -> (msg, eConName ev)) <$> interface.events) tellQs $ binaryInstanceD eT where @@ -77,8 +77,8 @@ interfaceDec interface = execWriterT do iT = interfaceT interface instanceDecs = [ valD (varP 'interfaceName) (normalB (stringE interface.name)) [], - tySynInstD (tySynEqn Nothing (appT (conT ''TRequest) iT) rT), - tySynInstD (tySynEqn Nothing (appT (conT ''TEvent) iT) eT) + tySynInstD (tySynEqn Nothing (appT (conT ''Request) iT) rT), + tySynInstD (tySynEqn Nothing (appT (conT ''Event) iT) eT) ] rT :: Q Type rT = if length interface.requests > 0 then conT rTypeName else [t|Void|] @@ -96,8 +96,8 @@ interfaceDec interface = execWriterT do eConName (EventSpec event) = mkName $ "E_" <> interface.name <> "_" <> event.name eCon :: EventSpec -> Q Con eCon event = normalC (eConName event) [] - messageInstanceD :: [(MessageSpec, Name)] -> Q Dec - messageInstanceD messages = instanceD (pure []) [t|IsMessage $rT|] messageNameD + messageInstanceD :: Q Type -> [(MessageSpec, Name)] -> Q Dec + messageInstanceD t messages = instanceD (pure []) [t|IsMessage $t|] messageNameD where messageNameD :: [Q Dec] messageNameD = @@ -135,7 +135,7 @@ parseInterface :: MonadFail m => Element -> m InterfaceSpec parseInterface element = do name <- getAttr "name" element requests <- mapM parseRequest $ zip [0..] $ findChildren (qname "request") element - events <- mapM parseEvent $ zip [0..] $ findChildren (qname "events") element + events <- mapM parseEvent $ zip [0..] $ findChildren (qname "event") element pure InterfaceSpec { name, requests, -- GitLab