From b3856b518ec76b076a01584eca9d078536e90d96 Mon Sep 17 00:00:00 2001 From: Jonathan Knowles Date: Thu, 1 Oct 2026 12:27:13 +0800 Subject: [PATCH 1/2] Add types to definitions of `Tuple.{a,b,c,d}`. --- src/internal/Internal/Semigroup/Tuple.hs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/internal/Internal/Semigroup/Tuple.hs b/src/internal/Internal/Semigroup/Tuple.hs index 1ed0df9..44b0b4c 100644 --- a/src/internal/Internal/Semigroup/Tuple.hs +++ b/src/internal/Internal/Semigroup/Tuple.hs @@ -60,6 +60,7 @@ instance Arbitrary VariableSum where instance Show VariableSum where show (VariableSum vs) = F1.intercalate1 " <> " $ show <$> vs +a, b, c, d :: VariableSum a = VariableSum (A :| []) b = VariableSum (B :| []) c = VariableSum (C :| []) From 992a3ed1aa33f75e1dfeebb93ea1788a60eddff7 Mon Sep 17 00:00:00 2001 From: Jonathan Knowles Date: Thu, 1 Oct 2026 12:34:17 +0800 Subject: [PATCH 2/2] Avoid type defaulting in `Classes.Group`. --- src/public/Test/QuickCheck/Classes/Group.hs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/public/Test/QuickCheck/Classes/Group.hs b/src/public/Test/QuickCheck/Classes/Group.hs index a160343..9735c4d 100644 --- a/src/public/Test/QuickCheck/Classes/Group.hs +++ b/src/public/Test/QuickCheck/Classes/Group.hs @@ -23,7 +23,7 @@ import Prelude import Data.Function ( (&) ) import Data.Group - ( Abelian, Group (..) ) + ( Abelian, Group (invert, (~~)) ) import Data.Proxy ( Proxy (..) ) import Internal @@ -38,6 +38,8 @@ import Test.QuickCheck import Test.QuickCheck.Classes ( Laws (..) ) +import qualified Data.Group as Group + -------------------------------------------------------------------------------- -- Group -------------------------------------------------------------------------------- @@ -348,3 +350,12 @@ abelianLaw_commutative a b = & cover "(a /= b) && (a <> b /= a) && (b <> a /= b)" ((a /= b) && (a <> b /= a) && (b <> a /= b)) + +-------------------------------------------------------------------------------- +-- Internal +-------------------------------------------------------------------------------- + +-- | Specialised version of `pow` to avoid type defaulting. +-- +pow :: Group m => m -> Int -> m +pow = Group.pow