diff --git a/Algebra.hs b/Algebra.hs
--- a/Algebra.hs
+++ b/Algebra.hs
@@ -95,12 +95,11 @@
 
 instance Group b => Group (a -> b) where invert = (.) invert
 
-instance Group (Sum Integer) where invert (Sum a) = Sum (Base.negate a)
-instance Group (Sum Int) where invert (Sum a) = Sum (Base.negate a)
-instance Group (Sum Word) where invert (Sum a) = Sum (Base.negate a)
+instance Base.Num a => Group (Sum a) where invert (Sum a) = Sum (Base.negate a)
+instance Base.Fractional a => Group (Product a) where invert (Product a) = Product (Base.recip a)
 
 infixl 6 +, -
-infixl 7 *, /
+infixl 7 ×, *, /
 
 (+) :: Semigroup (Sum a) => a -> a -> a
 a + b = getSum (Sum a <> Sum b)
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/alg.cabal b/alg.cabal
--- a/alg.cabal
+++ b/alg.cabal
@@ -1,5 +1,5 @@
 name:                alg
-version:             0.2.10.0
+version:             0.2.11.0
 synopsis:            Algebraic structures
 -- description:         
 license:             BSD3
@@ -11,7 +11,8 @@
 build-type:          Simple
 -- extra-source-files:  
 cabal-version:       >=1.10
-tested-with:         GHC ==8.4.2
+tested-with:         GHC ==8.4.3
+                   , GHC ==8.6.4
 
 library
   exposed-modules:     Algebra
