Fraction(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
Kernel(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
SparseUnivariatePolynomial(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
Vector(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
Pattern(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
IndexedExponents(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
List(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
OrderedFreeMonoid(X : SetCategory) : SetCategory with
    F : % -> %
 == add
      F(x) == x
