diff --git a/Algebra.hs b/Algebra.hs
--- a/Algebra.hs
+++ b/Algebra.hs
@@ -99,10 +99,8 @@
 
 deriving instance Group (k b a) => Group (C.Dual k a b)
 
-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)
-
-instance Base.Integral a => Group (Product (Base.Ratio a)) where invert = fmap Base.recip
+instance {-# OVERLAPPABLE #-} Base.Num a => Group (Sum a) where invert (Sum a) = Sum (Base.negate a)
+instance {-# OVERLAPPABLE #-} Base.Fractional a => Group (Product a) where invert (Product a) = Product (Base.recip a)
 
 infixl 6 +, -
 infixl 7 ×, *, /
diff --git a/Relation/Binary/Comparison.hs b/Relation/Binary/Comparison.hs
--- a/Relation/Binary/Comparison.hs
+++ b/Relation/Binary/Comparison.hs
@@ -1,4 +1,4 @@
-module Relation.Binary.Comparison where
+module Relation.Binary.Comparison (module Relation.Binary.Comparison, Ordering (..)) where
 
 import Prelude (Char, Integer)
 import qualified Prelude
@@ -251,7 +251,7 @@
 instance (Eq a) => Eq (Lexical (Maybe a))
 instance (Ord a) => Ord (Lexical (Maybe a))
 
-newtype Lexical a = Lexical a deriving (PartialEq, Semigroup, Monoid, Group)
+newtype Lexical a = Lexical { unLexical :: a } deriving (PartialEq, Semigroup, Monoid, Group)
 
 instance PartialEq a => PartialEq (Maybe a) where (≡) = (≡) `on` maybe (Left ()) Right
 instance Preord a => Preord (Maybe a) where (≤) = (≤) `on` maybe (Left ()) Right
diff --git a/alg.cabal b/alg.cabal
--- a/alg.cabal
+++ b/alg.cabal
@@ -1,5 +1,5 @@
 name:                alg
-version:             0.2.12.0
+version:             0.2.13.0
 synopsis:            Algebraic structures
 -- description:         
 license:             BSD3
