This provides machinery for deconstructing an arbitrary Generic instance using a Decidable Contravariant functor.
Examples:
gcompare :: Deciding Ord a => a -> a -> Ordering
gcompare = getComparison $ deciding (Proxy :: Proxy Ord) (Comparison compare)
geq :: Deciding Eq a => a -> a -> Bool
geq = getEquivalence $ deciding (Proxy :: Proxy Eq) (Equivalence (==))