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 :| []) 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