From 6211eb43f9c96715710ec5045055efecccbe3920 Mon Sep 17 00:00:00 2001 From: Alice BRENON <alice.brenon@ens-lyon.fr> Date: Wed, 17 Jan 2024 09:54:11 +0100 Subject: [PATCH] Propagate Eq and Ord along @ to be able to use composite types as keys (typically, ParagraphRecord defined out of ArticleRecord --- lib/GEODE/Metadata/Types.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/GEODE/Metadata/Types.hs b/lib/GEODE/Metadata/Types.hs index e8ff47a..9e7e6f8 100644 --- a/lib/GEODE/Metadata/Types.hs +++ b/lib/GEODE/Metadata/Types.hs @@ -25,6 +25,12 @@ instance Has a b => Has a (b @ c) where instance {-# OVERLAPS #-} Has b (a @ b) where get (_ :@: b) = b +instance (Eq a, Eq b) => Eq (a @ b) where + (a1 :@: b1) == (a2 :@: b2) = a1 == a2 && b1 == b2 + +instance (Ord a, Ord b) => Ord (a @ b) where + (a1 :@: b1) <= (a2 :@: b2) = a1 < a2 || (a1 == a2 && b1 <= b2) + instance (DefaultOrdered a, DefaultOrdered b) => DefaultOrdered (a @ b) where headerOrder _ = headerOrder (undefined :: a) <> headerOrder (undefined :: b) -- GitLab