From 0e8fe7f1b0a2cd347bd04fe272a3bf606a6573f4 Mon Sep 17 00:00:00 2001 From: Sirui Lu Date: Wed, 19 Jul 2023 20:21:02 -0700 Subject: [PATCH] :sparkles: Added ExtractSymbolics instances for tuples longer than 2 --- .../Core/Data/Class/ExtractSymbolics.hs | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/Grisette/Core/Data/Class/ExtractSymbolics.hs b/src/Grisette/Core/Data/Class/ExtractSymbolics.hs index fbb43724..c46ef2c7 100644 --- a/src/Grisette/Core/Data/Class/ExtractSymbolics.hs +++ b/src/Grisette/Core/Data/Class/ExtractSymbolics.hs @@ -158,6 +158,71 @@ deriving via (ExtractSymbolics a, ExtractSymbolics b, ExtractSymbolics c) => ExtractSymbolics (a, b, c) +-- (,,,) +deriving via + (Default (a, b, c, d)) + instance + ( ExtractSymbolics a, + ExtractSymbolics b, + ExtractSymbolics c, + ExtractSymbolics d + ) => + ExtractSymbolics (a, b, c, d) + +-- (,,,,) +deriving via + (Default (a, b, c, d, e)) + instance + ( ExtractSymbolics a, + ExtractSymbolics b, + ExtractSymbolics c, + ExtractSymbolics d, + ExtractSymbolics e + ) => + ExtractSymbolics (a, b, c, d, e) + +-- (,,,,,) +deriving via + (Default (a, b, c, d, e, f)) + instance + ( ExtractSymbolics a, + ExtractSymbolics b, + ExtractSymbolics c, + ExtractSymbolics d, + ExtractSymbolics e, + ExtractSymbolics f + ) => + ExtractSymbolics (a, b, c, d, e, f) + +-- (,,,,,,) +deriving via + (Default (a, b, c, d, e, f, g)) + instance + ( ExtractSymbolics a, + ExtractSymbolics b, + ExtractSymbolics c, + ExtractSymbolics d, + ExtractSymbolics e, + ExtractSymbolics f, + ExtractSymbolics g + ) => + ExtractSymbolics (a, b, c, d, e, f, g) + +-- (,,,,,,,) +deriving via + (Default (a, b, c, d, e, f, g, h)) + instance + ( ExtractSymbolics a, + ExtractSymbolics b, + ExtractSymbolics c, + ExtractSymbolics d, + ExtractSymbolics e, + ExtractSymbolics f, + ExtractSymbolics g, + ExtractSymbolics h + ) => + ExtractSymbolics (a, b, c, d, e, f, g, h) + -- MaybeT instance (ExtractSymbolics (m (Maybe a))) => ExtractSymbolics (MaybeT m a) where extractSymbolics (MaybeT v) = extractSymbolics v