diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index 3beba17..6bf7891 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -258,26 +258,27 @@ in the bootstrap set. Thus,
 
 --S 1 of 1
 )show AffinePlane
---R AffinePlane K: Field  is a domain constructor
+--R 
+--R AffinePlane(K: Field)  is a domain constructor
 --R Abbreviation for AffinePlane is AFFPL 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for AFFPL 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                affinePoint : List K -> %
---R coerce : List K -> %                  coerce : % -> List K
+--R ?=? : (%,%) -> Boolean                affinePoint : List(K) -> %
+--R coerce : List(K) -> %                 coerce : % -> List(K)
 --R coerce : % -> OutputForm              conjugate : % -> %
 --R definingField : % -> K                degree : % -> PositiveInteger
 --R ?.? : (%,Integer) -> K                hash : % -> SingleInteger
---R latex : % -> String                   list : % -> List K
---R orbit : % -> List %                   origin : () -> %
---R pointValue : % -> List K              rational? : % -> Boolean
+--R latex : % -> String                   list : % -> List(K)
+--R orbit : % -> List(%)                  origin : () -> %
+--R pointValue : % -> List(K)             rational? : % -> Boolean
 --R setelt : (%,Integer,K) -> K           ?~=? : (%,%) -> Boolean
 --R conjugate : (%,NonNegativeInteger) -> %
---R orbit : (%,NonNegativeInteger) -> List %
+--R orbit : (%,NonNegativeInteger) -> List(%)
 --R rational? : (%,NonNegativeInteger) -> Boolean
---R removeConjugate : List % -> List %
---R removeConjugate : (List %,NonNegativeInteger) -> List %
+--R removeConjugate : List(%) -> List(%)
+--R removeConjugate : (List(%),NonNegativeInteger) -> List(%)
 --R
 --E 1
 
@@ -336,7 +337,8 @@ AffinePlane(K):Exports == Implementation where
 
 --S 1 of 1
 )show AffinePlaneOverPseudoAlgebraicClosureOfFiniteField
---R AffinePlaneOverPseudoAlgebraicClosureOfFiniteField K: FiniteFieldCategory  is a domain constructor
+--R 
+--R AffinePlaneOverPseudoAlgebraicClosureOfFiniteField(K: FiniteFieldCategory)  is a domain constructor
 --R Abbreviation for AffinePlaneOverPseudoAlgebraicClosureOfFiniteField is AFFPLPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for AFFPLPS 
@@ -345,21 +347,21 @@ AffinePlane(K):Exports == Implementation where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R conjugate : % -> %                    degree : % -> PositiveInteger
 --R hash : % -> SingleInteger             latex : % -> String
---R orbit : % -> List %                   origin : () -> %
+--R orbit : % -> List(%)                  origin : () -> %
 --R rational? : % -> Boolean              ?~=? : (%,%) -> Boolean
---R affinePoint : List PseudoAlgebraicClosureOfFiniteField K -> %
---R coerce : List PseudoAlgebraicClosureOfFiniteField K -> %
---R coerce : % -> List PseudoAlgebraicClosureOfFiniteField K
+--R affinePoint : List(PseudoAlgebraicClosureOfFiniteField(K)) -> %
+--R coerce : List(PseudoAlgebraicClosureOfFiniteField(K)) -> %
+--R coerce : % -> List(PseudoAlgebraicClosureOfFiniteField(K))
 --R conjugate : (%,NonNegativeInteger) -> %
---R definingField : % -> PseudoAlgebraicClosureOfFiniteField K
---R ?.? : (%,Integer) -> PseudoAlgebraicClosureOfFiniteField K
---R list : % -> List PseudoAlgebraicClosureOfFiniteField K
---R orbit : (%,NonNegativeInteger) -> List %
---R pointValue : % -> List PseudoAlgebraicClosureOfFiniteField K
+--R definingField : % -> PseudoAlgebraicClosureOfFiniteField(K)
+--R ?.? : (%,Integer) -> PseudoAlgebraicClosureOfFiniteField(K)
+--R list : % -> List(PseudoAlgebraicClosureOfFiniteField(K))
+--R orbit : (%,NonNegativeInteger) -> List(%)
+--R pointValue : % -> List(PseudoAlgebraicClosureOfFiniteField(K))
 --R rational? : (%,NonNegativeInteger) -> Boolean
---R removeConjugate : List % -> List %
---R removeConjugate : (List %,NonNegativeInteger) -> List %
---R setelt : (%,Integer,PseudoAlgebraicClosureOfFiniteField K) -> PseudoAlgebraicClosureOfFiniteField K
+--R removeConjugate : List(%) -> List(%)
+--R removeConjugate : (List(%),NonNegativeInteger) -> List(%)
+--R setelt : (%,Integer,PseudoAlgebraicClosureOfFiniteField(K)) -> PseudoAlgebraicClosureOfFiniteField(K)
 --R
 --E 1
 
@@ -436,26 +438,27 @@ AffinePlaneOverPseudoAlgebraicClosureOfFiniteField(K):Exports == Impl where
 
 --S 1 of 1
 )show AffineSpace
+--R 
 --R AffineSpace(dim: NonNegativeInteger,K: Field)  is a domain constructor
 --R Abbreviation for AffineSpace is AFFSP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for AFFSP 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                affinePoint : List K -> %
---R coerce : List K -> %                  coerce : % -> List K
+--R ?=? : (%,%) -> Boolean                affinePoint : List(K) -> %
+--R coerce : List(K) -> %                 coerce : % -> List(K)
 --R coerce : % -> OutputForm              conjugate : % -> %
 --R definingField : % -> K                degree : % -> PositiveInteger
 --R ?.? : (%,Integer) -> K                hash : % -> SingleInteger
---R latex : % -> String                   list : % -> List K
---R orbit : % -> List %                   origin : () -> %
---R pointValue : % -> List K              rational? : % -> Boolean
+--R latex : % -> String                   list : % -> List(K)
+--R orbit : % -> List(%)                  origin : () -> %
+--R pointValue : % -> List(K)             rational? : % -> Boolean
 --R setelt : (%,Integer,K) -> K           ?~=? : (%,%) -> Boolean
 --R conjugate : (%,NonNegativeInteger) -> %
---R orbit : (%,NonNegativeInteger) -> List %
+--R orbit : (%,NonNegativeInteger) -> List(%)
 --R rational? : (%,NonNegativeInteger) -> Boolean
---R removeConjugate : List % -> List %
---R removeConjugate : (List %,NonNegativeInteger) -> List %
+--R removeConjugate : List(%) -> List(%)
+--R removeConjugate : (List(%),NonNegativeInteger) -> List(%)
 --R
 --E 1
 
@@ -618,7 +621,8 @@ AffineSpace(dim,K):Exports == Implementation where
 
 --S 1 of 1
 )show AlgebraGivenByStructuralConstants
---R AlgebraGivenByStructuralConstants(R: Field,n: PositiveInteger,ls: List Symbol,gamma: Vector Matrix R)  is a domain constructor
+--R 
+--R AlgebraGivenByStructuralConstants(R: Field,n: PositiveInteger,ls: List(Symbol),gamma: Vector(Matrix(R)))  is a domain constructor
 --R Abbreviation for AlgebraGivenByStructuralConstants is ALGSC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ALGSC 
@@ -632,59 +636,59 @@ AffineSpace(dim,K):Exports == Implementation where
 --R ?=? : (%,%) -> Boolean                0 : () -> %
 --R alternative? : () -> Boolean          antiAssociative? : () -> Boolean
 --R antiCommutative? : () -> Boolean      antiCommutator : (%,%) -> %
---R apply : (Matrix R,%) -> %             associative? : () -> Boolean
---R associator : (%,%,%) -> %             basis : () -> Vector %
---R coerce : Vector R -> %                coerce : % -> OutputForm
+--R apply : (Matrix(R),%) -> %            associative? : () -> Boolean
+--R associator : (%,%,%) -> %             basis : () -> Vector(%)
+--R coerce : Vector(R) -> %               coerce : % -> OutputForm
 --R commutative? : () -> Boolean          commutator : (%,%) -> %
---R convert : Vector R -> %               convert : % -> Vector R
---R coordinates : % -> Vector R           ?.? : (%,Integer) -> R
+--R convert : Vector(R) -> %              convert : % -> Vector(R)
+--R coordinates : % -> Vector(R)          ?.? : (%,Integer) -> R
 --R flexible? : () -> Boolean             hash : % -> SingleInteger
 --R jacobiIdentity? : () -> Boolean       jordanAdmissible? : () -> Boolean
 --R jordanAlgebra? : () -> Boolean        latex : % -> String
 --R leftAlternative? : () -> Boolean      leftDiscriminant : () -> R
---R leftDiscriminant : Vector % -> R      leftNorm : % -> R
---R leftTrace : % -> R                    leftTraceMatrix : () -> Matrix R
+--R leftDiscriminant : Vector(%) -> R     leftNorm : % -> R
+--R leftTrace : % -> R                    leftTraceMatrix : () -> Matrix(R)
 --R lieAdmissible? : () -> Boolean        lieAlgebra? : () -> Boolean
 --R powerAssociative? : () -> Boolean     rank : () -> PositiveInteger
---R represents : Vector R -> %            rightAlternative? : () -> Boolean
---R rightDiscriminant : () -> R           rightDiscriminant : Vector % -> R
---R rightNorm : % -> R                    rightTrace : % -> R
---R rightTraceMatrix : () -> Matrix R     sample : () -> %
---R someBasis : () -> Vector %            zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
+--R represents : Vector(R) -> %           rightAlternative? : () -> Boolean
+--R rightDiscriminant : () -> R           rightNorm : % -> R
+--R rightTrace : % -> R                   rightTraceMatrix : () -> Matrix(R)
+--R sample : () -> %                      someBasis : () -> Vector(%)
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
---R associatorDependence : () -> List Vector R if R has INTDOM
---R conditionsForIdempotents : () -> List Polynomial R
---R conditionsForIdempotents : Vector % -> List Polynomial R
---R coordinates : Vector % -> Matrix R
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : (%,Vector %) -> Vector R
---R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial R
---R leftMinimalPolynomial : % -> SparseUnivariatePolynomial R if R has INTDOM
+--R associatorDependence : () -> List(Vector(R)) if R has INTDOM
+--R conditionsForIdempotents : () -> List(Polynomial(R))
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(R))
+--R coordinates : Vector(%) -> Matrix(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : (%,Vector(%)) -> Vector(R)
+--R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R)
+--R leftMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if R has INTDOM
 --R leftPower : (%,PositiveInteger) -> %
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if R has FIELD
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if R has FIELD
 --R leftRecip : % -> Union(%,"failed") if R has INTDOM
---R leftRegularRepresentation : % -> Matrix R
---R leftRegularRepresentation : (%,Vector %) -> Matrix R
---R leftTraceMatrix : Vector % -> Matrix R
+--R leftRegularRepresentation : % -> Matrix(R)
+--R leftRegularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R leftTraceMatrix : Vector(%) -> Matrix(R)
 --R leftUnit : () -> Union(%,"failed") if R has INTDOM
---R leftUnits : () -> Union(Record(particular: %,basis: List %),"failed") if R has INTDOM
+--R leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if R has INTDOM
 --R noncommutativeJordanAlgebra? : () -> Boolean
 --R plenaryPower : (%,PositiveInteger) -> %
 --R recip : % -> Union(%,"failed") if R has INTDOM
---R represents : (Vector R,Vector %) -> %
---R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial R
---R rightMinimalPolynomial : % -> SparseUnivariatePolynomial R if R has INTDOM
+--R represents : (Vector(R),Vector(%)) -> %
+--R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R)
+--R rightDiscriminant : Vector(%) -> R
+--R rightMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if R has INTDOM
 --R rightPower : (%,PositiveInteger) -> %
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if R has FIELD
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if R has FIELD
 --R rightRecip : % -> Union(%,"failed") if R has INTDOM
---R rightRegularRepresentation : % -> Matrix R
---R rightRegularRepresentation : (%,Vector %) -> Matrix R
---R rightTraceMatrix : Vector % -> Matrix R
+--R rightRegularRepresentation : % -> Matrix(R)
+--R rightRegularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R rightTraceMatrix : Vector(%) -> Matrix(R)
 --R rightUnit : () -> Union(%,"failed") if R has INTDOM
---R rightUnits : () -> Union(Record(particular: %,basis: List %),"failed") if R has INTDOM
---R structuralConstants : () -> Vector Matrix R
---R structuralConstants : Vector % -> Vector Matrix R
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if R has INTDOM
+--R structuralConstants : () -> Vector(Matrix(R))
+--R structuralConstants : Vector(%) -> Vector(Matrix(R))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit : () -> Union(%,"failed") if R has INTDOM
 --R
@@ -1190,161 +1194,163 @@ AlgebraGivenByStructuralConstants(R:Field, n : PositiveInteger,_
 
 --S 1 of 1
 )show AlgebraicFunctionField
---R AlgebraicFunctionField(F: Field,UP: UnivariatePolynomialCategory F,UPUP: UnivariatePolynomialCategory Fraction UP,modulus: UPUP)  is a domain constructor
+--R 
+--R AlgebraicFunctionField(F: Field,UP: UnivariatePolynomialCategory(F),UPUP: UnivariatePolynomialCategory(Fraction(UP)),modulus: UPUP)  is a domain constructor
 --R Abbreviation for AlgebraicFunctionField is ALGFF 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ALGFF 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction UP,%) -> %            ?*? : (%,Fraction UP) -> %
+--R ?*? : (Fraction(UP),%) -> %           ?*? : (%,Fraction(UP)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector %
+--R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector(%)
 --R branchPoint? : UP -> Boolean          branchPoint? : F -> Boolean
---R coerce : Fraction UP -> %             coerce : Integer -> %
+--R coerce : Fraction(UP) -> %            coerce : Integer -> %
 --R coerce : % -> OutputForm              convert : UPUP -> %
---R convert : % -> UPUP                   convert : Vector Fraction UP -> %
---R convert : % -> Vector Fraction UP     definingPolynomial : () -> UPUP
---R discriminant : () -> Fraction UP      elt : (%,F,F) -> F
+--R convert : % -> UPUP                   definingPolynomial : () -> UPUP
+--R discriminant : () -> Fraction(UP)     elt : (%,F,F) -> F
 --R generator : () -> %                   genus : () -> NonNegativeInteger
 --R hash : % -> SingleInteger             integral? : (%,UP) -> Boolean
 --R integral? : (%,F) -> Boolean          integral? : % -> Boolean
---R integralBasis : () -> Vector %        latex : % -> String
---R lift : % -> UPUP                      norm : % -> Fraction UP
+--R integralBasis : () -> Vector(%)       latex : % -> String
+--R lift : % -> UPUP                      norm : % -> Fraction(UP)
 --R one? : % -> Boolean                   primitivePart : % -> %
 --R ramified? : UP -> Boolean             ramified? : F -> Boolean
 --R rank : () -> PositiveInteger          rationalPoint? : (F,F) -> Boolean
 --R recip : % -> Union(%,"failed")        reduce : UPUP -> %
---R represents : (Vector UP,UP) -> %      retract : % -> Fraction UP
+--R represents : (Vector(UP),UP) -> %     retract : % -> Fraction(UP)
 --R sample : () -> %                      singular? : UP -> Boolean
---R singular? : F -> Boolean              trace : % -> Fraction UP
+--R singular? : F -> Boolean              trace : % -> Fraction(UP)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (%,Fraction Integer) -> % if Fraction UP has FIELD
---R ?*? : (Fraction Integer,%) -> % if Fraction UP has FIELD
+--R ?*? : (%,Fraction(Integer)) -> % if Fraction(UP) has FIELD
+--R ?*? : (Fraction(Integer),%) -> % if Fraction(UP) has FIELD
 --R ?*? : (NonNegativeInteger,%) -> %
---R ?**? : (%,Integer) -> % if Fraction UP has FIELD
+--R ?**? : (%,Integer) -> % if Fraction(UP) has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
---R ?/? : (%,%) -> % if Fraction UP has FIELD
---R D : % -> % if Fraction UP has DIFRING and Fraction UP has FIELD or Fraction UP has FFIELDC
---R D : (%,NonNegativeInteger) -> % if Fraction UP has DIFRING and Fraction UP has FIELD or Fraction UP has FFIELDC
---R D : (%,Symbol) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R D : (%,(Fraction UP -> Fraction UP)) -> % if Fraction UP has FIELD
---R D : (%,(Fraction UP -> Fraction UP),NonNegativeInteger) -> % if Fraction UP has FIELD
---R ?^? : (%,Integer) -> % if Fraction UP has FIELD
+--R ?/? : (%,%) -> % if Fraction(UP) has FIELD
+--R D : % -> % if Fraction(UP) has DIFRING and Fraction(UP) has FIELD or Fraction(UP) has FFIELDC
+--R D : (%,NonNegativeInteger) -> % if Fraction(UP) has DIFRING and Fraction(UP) has FIELD or Fraction(UP) has FFIELDC
+--R D : (%,Symbol) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R D : (%,(Fraction(UP) -> Fraction(UP))) -> % if Fraction(UP) has FIELD
+--R D : (%,(Fraction(UP) -> Fraction(UP)),NonNegativeInteger) -> % if Fraction(UP) has FIELD
+--R ?^? : (%,Integer) -> % if Fraction(UP) has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R absolutelyIrreducible? : () -> Boolean
 --R algSplitSimple : (%,(UP -> UP)) -> Record(num: %,den: UP,derivden: UP,gd: UP)
---R associates? : (%,%) -> Boolean if Fraction UP has FIELD
+--R associates? : (%,%) -> Boolean if Fraction(UP) has FIELD
 --R branchPointAtInfinity? : () -> Boolean
 --R characteristic : () -> NonNegativeInteger
 --R characteristicPolynomial : % -> UPUP
---R charthRoot : % -> Union(%,"failed") if Fraction UP has CHARNZ
---R charthRoot : % -> % if Fraction UP has FFIELDC
---R coerce : % -> % if Fraction UP has FIELD
---R coerce : Fraction Integer -> % if Fraction UP has FIELD or Fraction UP has RETRACT FRAC INT
---R complementaryBasis : Vector % -> Vector %
---R conditionP : Matrix % -> Union(Vector %,"failed") if Fraction UP has FFIELDC
---R coordinates : Vector % -> Matrix Fraction UP
---R coordinates : % -> Vector Fraction UP
---R coordinates : (Vector %,Vector %) -> Matrix Fraction UP
---R coordinates : (%,Vector %) -> Vector Fraction UP
---R createPrimitiveElement : () -> % if Fraction UP has FFIELDC
---R derivationCoordinates : (Vector %,(Fraction UP -> Fraction UP)) -> Matrix Fraction UP if Fraction UP has FIELD
---R differentiate : % -> % if Fraction UP has DIFRING and Fraction UP has FIELD or Fraction UP has FFIELDC
---R differentiate : (%,NonNegativeInteger) -> % if Fraction UP has DIFRING and Fraction UP has FIELD or Fraction UP has FFIELDC
---R differentiate : (%,Symbol) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Fraction UP has FIELD and Fraction UP has PDRING SYMBOL
+--R charthRoot : % -> Union(%,"failed") if Fraction(UP) has CHARNZ
+--R charthRoot : % -> % if Fraction(UP) has FFIELDC
+--R coerce : % -> % if Fraction(UP) has FIELD
+--R coerce : Fraction(Integer) -> % if Fraction(UP) has FIELD or Fraction(UP) has RETRACT(FRAC(INT))
+--R complementaryBasis : Vector(%) -> Vector(%)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if Fraction(UP) has FFIELDC
+--R convert : Vector(Fraction(UP)) -> %
+--R convert : % -> Vector(Fraction(UP))
+--R coordinates : Vector(%) -> Matrix(Fraction(UP))
+--R coordinates : % -> Vector(Fraction(UP))
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(Fraction(UP))
+--R coordinates : (%,Vector(%)) -> Vector(Fraction(UP))
+--R createPrimitiveElement : () -> % if Fraction(UP) has FFIELDC
+--R derivationCoordinates : (Vector(%),(Fraction(UP) -> Fraction(UP))) -> Matrix(Fraction(UP)) if Fraction(UP) has FIELD
+--R differentiate : % -> % if Fraction(UP) has DIFRING and Fraction(UP) has FIELD or Fraction(UP) has FFIELDC
+--R differentiate : (%,NonNegativeInteger) -> % if Fraction(UP) has DIFRING and Fraction(UP) has FIELD or Fraction(UP) has FFIELDC
+--R differentiate : (%,Symbol) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Fraction(UP) has FIELD and Fraction(UP) has PDRING(SYMBOL)
 --R differentiate : (%,(UP -> UP)) -> %
---R differentiate : (%,(Fraction UP -> Fraction UP)) -> % if Fraction UP has FIELD
---R differentiate : (%,(Fraction UP -> Fraction UP),NonNegativeInteger) -> % if Fraction UP has FIELD
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if Fraction UP has FFIELDC
---R discreteLog : % -> NonNegativeInteger if Fraction UP has FFIELDC
---R discriminant : Vector % -> Fraction UP
---R divide : (%,%) -> Record(quotient: %,remainder: %) if Fraction UP has FIELD
+--R differentiate : (%,(Fraction(UP) -> Fraction(UP))) -> % if Fraction(UP) has FIELD
+--R differentiate : (%,(Fraction(UP) -> Fraction(UP)),NonNegativeInteger) -> % if Fraction(UP) has FIELD
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if Fraction(UP) has FFIELDC
+--R discreteLog : % -> NonNegativeInteger if Fraction(UP) has FFIELDC
+--R discriminant : Vector(%) -> Fraction(UP)
+--R divide : (%,%) -> Record(quotient: %,remainder: %) if Fraction(UP) has FIELD
 --R elliptic : () -> Union(UP,"failed")
---R euclideanSize : % -> NonNegativeInteger if Fraction UP has FIELD
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if Fraction UP has FIELD
---R exquo : (%,%) -> Union(%,"failed") if Fraction UP has FIELD
---R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if Fraction UP has FIELD
---R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if Fraction UP has FIELD
---R factor : % -> Factored % if Fraction UP has FIELD
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if Fraction UP has FFIELDC
---R gcd : (%,%) -> % if Fraction UP has FIELD
---R gcd : List % -> % if Fraction UP has FIELD
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if Fraction UP has FIELD
+--R euclideanSize : % -> NonNegativeInteger if Fraction(UP) has FIELD
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if Fraction(UP) has FIELD
+--R exquo : (%,%) -> Union(%,"failed") if Fraction(UP) has FIELD
+--R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if Fraction(UP) has FIELD
+--R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if Fraction(UP) has FIELD
+--R factor : % -> Factored(%) if Fraction(UP) has FIELD
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if Fraction(UP) has FFIELDC
+--R gcd : (%,%) -> % if Fraction(UP) has FIELD
+--R gcd : List(%) -> % if Fraction(UP) has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if Fraction(UP) has FIELD
 --R hyperelliptic : () -> Union(UP,"failed")
---R index : PositiveInteger -> % if Fraction UP has FINITE
---R init : () -> % if Fraction UP has FFIELDC
+--R index : PositiveInteger -> % if Fraction(UP) has FINITE
+--R init : () -> % if Fraction(UP) has FFIELDC
 --R integralAtInfinity? : % -> Boolean
---R integralBasisAtInfinity : () -> Vector %
---R integralCoordinates : % -> Record(num: Vector UP,den: UP)
---R integralDerivationMatrix : (UP -> UP) -> Record(num: Matrix UP,den: UP)
---R integralMatrix : () -> Matrix Fraction UP
---R integralMatrixAtInfinity : () -> Matrix Fraction UP
---R integralRepresents : (Vector UP,UP) -> %
---R inv : % -> % if Fraction UP has FIELD
---R inverseIntegralMatrix : () -> Matrix Fraction UP
---R inverseIntegralMatrixAtInfinity : () -> Matrix Fraction UP
+--R integralBasisAtInfinity : () -> Vector(%)
+--R integralCoordinates : % -> Record(num: Vector(UP),den: UP)
+--R integralDerivationMatrix : (UP -> UP) -> Record(num: Matrix(UP),den: UP)
+--R integralMatrix : () -> Matrix(Fraction(UP))
+--R integralMatrixAtInfinity : () -> Matrix(Fraction(UP))
+--R integralRepresents : (Vector(UP),UP) -> %
+--R inv : % -> % if Fraction(UP) has FIELD
+--R inverseIntegralMatrix : () -> Matrix(Fraction(UP))
+--R inverseIntegralMatrixAtInfinity : () -> Matrix(Fraction(UP))
 --R knownInfBasis : NonNegativeInteger -> Void
---R lcm : (%,%) -> % if Fraction UP has FIELD
---R lcm : List % -> % if Fraction UP has FIELD
---R lookup : % -> PositiveInteger if Fraction UP has FINITE
---R minimalPolynomial : % -> UPUP if Fraction UP has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if Fraction UP has FIELD
---R nextItem : % -> Union(%,"failed") if Fraction UP has FFIELDC
---R nonSingularModel : Symbol -> List Polynomial F if F has FIELD
---R normalizeAtInfinity : Vector % -> Vector %
+--R lcm : (%,%) -> % if Fraction(UP) has FIELD
+--R lcm : List(%) -> % if Fraction(UP) has FIELD
+--R lookup : % -> PositiveInteger if Fraction(UP) has FINITE
+--R minimalPolynomial : % -> UPUP if Fraction(UP) has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if Fraction(UP) has FIELD
+--R nextItem : % -> Union(%,"failed") if Fraction(UP) has FFIELDC
+--R nonSingularModel : Symbol -> List(Polynomial(F)) if F has FIELD
+--R normalizeAtInfinity : Vector(%) -> Vector(%)
 --R numberOfComponents : () -> NonNegativeInteger
---R order : % -> OnePointCompletion PositiveInteger if Fraction UP has FFIELDC
---R order : % -> PositiveInteger if Fraction UP has FFIELDC
---R prime? : % -> Boolean if Fraction UP has FIELD
---R primeFrobenius : % -> % if Fraction UP has FFIELDC
---R primeFrobenius : (%,NonNegativeInteger) -> % if Fraction UP has FFIELDC
---R primitive? : % -> Boolean if Fraction UP has FFIELDC
---R primitiveElement : () -> % if Fraction UP has FFIELDC
---R principalIdeal : List % -> Record(coef: List %,generator: %) if Fraction UP has FIELD
---R ?quo? : (%,%) -> % if Fraction UP has FIELD
+--R order : % -> OnePointCompletion(PositiveInteger) if Fraction(UP) has FFIELDC
+--R order : % -> PositiveInteger if Fraction(UP) has FFIELDC
+--R prime? : % -> Boolean if Fraction(UP) has FIELD
+--R primeFrobenius : % -> % if Fraction(UP) has FFIELDC
+--R primeFrobenius : (%,NonNegativeInteger) -> % if Fraction(UP) has FFIELDC
+--R primitive? : % -> Boolean if Fraction(UP) has FFIELDC
+--R primitiveElement : () -> % if Fraction(UP) has FFIELDC
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if Fraction(UP) has FIELD
+--R ?quo? : (%,%) -> % if Fraction(UP) has FIELD
 --R ramifiedAtInfinity? : () -> Boolean
---R random : () -> % if Fraction UP has FINITE
---R rationalPoints : () -> List List F if F has FINITE
---R reduce : Fraction UPUP -> Union(%,"failed") if Fraction UP has FIELD
---R reduceBasisAtInfinity : Vector % -> Vector %
---R reducedSystem : Matrix % -> Matrix Fraction UP
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Fraction UP,vec: Vector Fraction UP)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if Fraction UP has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if Fraction UP has LINEXP INT
---R regularRepresentation : % -> Matrix Fraction UP
---R regularRepresentation : (%,Vector %) -> Matrix Fraction UP
---R ?rem? : (%,%) -> % if Fraction UP has FIELD
---R representationType : () -> Union("prime",polynomial,normal,cyclic) if Fraction UP has FFIELDC
---R represents : Vector Fraction UP -> %
---R represents : (Vector Fraction UP,Vector %) -> %
---R retract : % -> Fraction Integer if Fraction UP has RETRACT FRAC INT
---R retract : % -> Integer if Fraction UP has RETRACT INT
---R retractIfCan : % -> Union(Fraction UP,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if Fraction UP has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if Fraction UP has RETRACT INT
+--R random : () -> % if Fraction(UP) has FINITE
+--R rationalPoints : () -> List(List(F)) if F has FINITE
+--R reduce : Fraction(UPUP) -> Union(%,"failed") if Fraction(UP) has FIELD
+--R reduceBasisAtInfinity : Vector(%) -> Vector(%)
+--R reducedSystem : Matrix(%) -> Matrix(Fraction(UP))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Fraction(UP)),vec: Vector(Fraction(UP)))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if Fraction(UP) has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if Fraction(UP) has LINEXP(INT)
+--R regularRepresentation : % -> Matrix(Fraction(UP))
+--R regularRepresentation : (%,Vector(%)) -> Matrix(Fraction(UP))
+--R ?rem? : (%,%) -> % if Fraction(UP) has FIELD
+--R representationType : () -> Union("prime",polynomial,normal,cyclic) if Fraction(UP) has FFIELDC
+--R represents : Vector(Fraction(UP)) -> %
+--R represents : (Vector(Fraction(UP)),Vector(%)) -> %
+--R retract : % -> Fraction(Integer) if Fraction(UP) has RETRACT(FRAC(INT))
+--R retract : % -> Integer if Fraction(UP) has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(UP),"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if Fraction(UP) has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if Fraction(UP) has RETRACT(INT)
 --R singularAtInfinity? : () -> Boolean
---R size : () -> NonNegativeInteger if Fraction UP has FINITE
---R sizeLess? : (%,%) -> Boolean if Fraction UP has FIELD
---R squareFree : % -> Factored % if Fraction UP has FIELD
---R squareFreePart : % -> % if Fraction UP has FIELD
+--R size : () -> NonNegativeInteger if Fraction(UP) has FINITE
+--R sizeLess? : (%,%) -> Boolean if Fraction(UP) has FIELD
+--R squareFree : % -> Factored(%) if Fraction(UP) has FIELD
+--R squareFreePart : % -> % if Fraction(UP) has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if Fraction UP has FFIELDC
---R traceMatrix : () -> Matrix Fraction UP
---R traceMatrix : Vector % -> Matrix Fraction UP
---R unit? : % -> Boolean if Fraction UP has FIELD
---R unitCanonical : % -> % if Fraction UP has FIELD
---R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Fraction UP has FIELD
---R yCoordinates : % -> Record(num: Vector UP,den: UP)
+--R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if Fraction(UP) has FFIELDC
+--R traceMatrix : () -> Matrix(Fraction(UP))
+--R traceMatrix : Vector(%) -> Matrix(Fraction(UP))
+--R unit? : % -> Boolean if Fraction(UP) has FIELD
+--R unitCanonical : % -> % if Fraction(UP) has FIELD
+--R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Fraction(UP) has FIELD
+--R yCoordinates : % -> Record(num: Vector(UP),den: UP)
 --R
 --E 1
 
@@ -1642,6 +1648,7 @@ AlgebraicFunctionField(F, UP, UPUP, modulus): Exports == Impl where
 
 --S 1 of 1
 )show AlgebraicNumber
+--R 
 --R AlgebraicNumber  is a domain constructor
 --R Abbreviation for AlgebraicNumber is AN 
 --R This constructor is exposed in this frame.
@@ -1649,110 +1656,113 @@ AlgebraicFunctionField(F, UP, UPUP, modulus): Exports == Impl where
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (PositiveInteger,%) -> %        ?*? : (Integer,%) -> %
---R ?*? : (%,%) -> %                      ?*? : (%,Fraction Integer) -> %
---R ?*? : (Fraction Integer,%) -> %       ?**? : (%,PositiveInteger) -> %
---R ?**? : (%,Integer) -> %               ?**? : (%,Fraction Integer) -> %
---R ?+? : (%,%) -> %                      -? : % -> %
---R ?-? : (%,%) -> %                      ?/? : (%,%) -> %
---R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
---R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
---R ?>=? : (%,%) -> Boolean               D : % -> %
---R D : (%,NonNegativeInteger) -> %       1 : () -> %
---R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R ?^? : (%,Integer) -> %                associates? : (%,%) -> Boolean
---R belong? : BasicOperator -> Boolean    box : List % -> %
---R box : % -> %                          coerce : Integer -> %
---R coerce : % -> %                       coerce : Fraction Integer -> %
---R coerce : Kernel % -> %                coerce : % -> OutputForm
---R convert : % -> Complex Float          convert : % -> DoubleFloat
---R convert : % -> Float                  differentiate : % -> %
---R distribute : (%,%) -> %               distribute : % -> %
---R elt : (BasicOperator,%,%) -> %        elt : (BasicOperator,%) -> %
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
---R eval : (%,Kernel %,%) -> %            factor : % -> Factored %
---R freeOf? : (%,Symbol) -> Boolean       freeOf? : (%,%) -> Boolean
---R gcd : (%,%) -> %                      gcd : List % -> %
---R hash : % -> SingleInteger             height : % -> NonNegativeInteger
---R inv : % -> %                          is? : (%,Symbol) -> Boolean
---R kernel : (BasicOperator,%) -> %       kernels : % -> List Kernel %
---R latex : % -> String                   lcm : (%,%) -> %
---R lcm : List % -> %                     map : ((% -> %),Kernel %) -> %
+--R ?*? : (%,%) -> %                      ?*? : (%,Fraction(Integer)) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?**? : (%,PositiveInteger) -> %
+--R ?**? : (%,Integer) -> %               ?+? : (%,%) -> %
+--R -? : % -> %                           ?-? : (%,%) -> %
+--R ?/? : (%,%) -> %                      ?<? : (%,%) -> Boolean
+--R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
+--R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
+--R D : % -> %                            D : (%,NonNegativeInteger) -> %
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,PositiveInteger) -> %        ?^? : (%,Integer) -> %
+--R associates? : (%,%) -> Boolean        belong? : BasicOperator -> Boolean
+--R box : List(%) -> %                    box : % -> %
+--R coerce : Integer -> %                 coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : Kernel(%) -> %
+--R coerce : % -> OutputForm              convert : % -> Complex(Float)
+--R convert : % -> DoubleFloat            convert : % -> Float
+--R differentiate : % -> %                distribute : (%,%) -> %
+--R distribute : % -> %                   elt : (BasicOperator,%,%) -> %
+--R elt : (BasicOperator,%) -> %          eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,Kernel(%),%) -> %
+--R factor : % -> Factored(%)             freeOf? : (%,Symbol) -> Boolean
+--R freeOf? : (%,%) -> Boolean            gcd : (%,%) -> %
+--R gcd : List(%) -> %                    hash : % -> SingleInteger
+--R height : % -> NonNegativeInteger      inv : % -> %
+--R is? : (%,Symbol) -> Boolean           kernel : (BasicOperator,%) -> %
+--R kernels : % -> List(Kernel(%))        latex : % -> String
+--R lcm : (%,%) -> %                      lcm : List(%) -> %
 --R max : (%,%) -> %                      min : (%,%) -> %
---R norm : (%,List Kernel %) -> %         norm : (%,Kernel %) -> %
+--R norm : (%,List(Kernel(%))) -> %       norm : (%,Kernel(%)) -> %
 --R nthRoot : (%,Integer) -> %            one? : % -> Boolean
---R paren : List % -> %                   paren : % -> %
+--R paren : List(%) -> %                  paren : % -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        reduce : % -> %
---R ?rem? : (%,%) -> %                    retract : % -> Fraction Integer
---R retract : % -> Integer                retract : % -> Kernel %
---R rootOf : Polynomial % -> %            rootsOf : Polynomial % -> List %
---R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R sqrt : % -> %                         squareFree : % -> Factored %
---R squareFreePart : % -> %               subst : (%,Equation %) -> %
---R tower : % -> List Kernel %            unit? : % -> Boolean
---R unitCanonical : % -> %                zero? : % -> Boolean
---R zeroOf : Polynomial % -> %            zerosOf : Polynomial % -> List %
+--R ?rem? : (%,%) -> %                    retract : % -> Fraction(Integer)
+--R retract : % -> Integer                retract : % -> Kernel(%)
+--R rootOf : Polynomial(%) -> %           sample : () -> %
+--R sizeLess? : (%,%) -> Boolean          sqrt : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
+--R subst : (%,Equation(%)) -> %          tower : % -> List(Kernel(%))
+--R unit? : % -> Boolean                  unitCanonical : % -> %
+--R zero? : % -> Boolean                  zeroOf : Polynomial(%) -> %
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coerce : SparseMultivariatePolynomial(Integer,Kernel %) -> %
+--R coerce : SparseMultivariatePolynomial(Integer,Kernel(%)) -> %
 --R definingPolynomial : % -> % if $ has RING
---R denom : % -> SparseMultivariatePolynomial(Integer,Kernel %)
+--R denom : % -> SparseMultivariatePolynomial(Integer,Kernel(%))
 --R differentiate : (%,NonNegativeInteger) -> %
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
---R elt : (BasicOperator,List %) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R elt : (BasicOperator,%,%,%,%) -> %
 --R elt : (BasicOperator,%,%,%) -> %
 --R euclideanSize : % -> NonNegativeInteger
 --R eval : (%,BasicOperator,(% -> %)) -> %
---R eval : (%,BasicOperator,(List % -> %)) -> %
---R eval : (%,List BasicOperator,List (List % -> %)) -> %
---R eval : (%,List BasicOperator,List (% -> %)) -> %
+--R eval : (%,BasicOperator,(List(%) -> %)) -> %
+--R eval : (%,List(BasicOperator),List((List(%) -> %))) -> %
+--R eval : (%,List(BasicOperator),List((% -> %))) -> %
 --R eval : (%,Symbol,(% -> %)) -> %
---R eval : (%,Symbol,(List % -> %)) -> %
---R eval : (%,List Symbol,List (List % -> %)) -> %
---R eval : (%,List Symbol,List (% -> %)) -> %
---R eval : (%,List Kernel %,List %) -> %
---R even? : % -> Boolean if $ has RETRACT INT
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,Symbol,(List(%) -> %)) -> %
+--R eval : (%,List(Symbol),List((List(%) -> %))) -> %
+--R eval : (%,List(Symbol),List((% -> %))) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(Kernel(%)),List(%)) -> %
+--R even? : % -> Boolean if $ has RETRACT(INT)
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R is? : (%,BasicOperator) -> Boolean
---R kernel : (BasicOperator,List %) -> %
---R mainKernel : % -> Union(Kernel %,"failed")
---R minPoly : Kernel % -> SparseUnivariatePolynomial % if $ has RING
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R norm : (SparseUnivariatePolynomial %,List Kernel %) -> SparseUnivariatePolynomial %
---R norm : (SparseUnivariatePolynomial %,Kernel %) -> SparseUnivariatePolynomial %
---R numer : % -> SparseMultivariatePolynomial(Integer,Kernel %)
---R odd? : % -> Boolean if $ has RETRACT INT
+--R kernel : (BasicOperator,List(%)) -> %
+--R mainKernel : % -> Union(Kernel(%),"failed")
+--R map : ((% -> %),Kernel(%)) -> %
+--R minPoly : Kernel(%) -> SparseUnivariatePolynomial(%) if $ has RING
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R norm : (SparseUnivariatePolynomial(%),List(Kernel(%))) -> SparseUnivariatePolynomial(%)
+--R norm : (SparseUnivariatePolynomial(%),Kernel(%)) -> SparseUnivariatePolynomial(%)
+--R numer : % -> SparseMultivariatePolynomial(Integer,Kernel(%))
+--R odd? : % -> Boolean if $ has RETRACT(INT)
 --R operator : BasicOperator -> BasicOperator
---R operators : % -> List BasicOperator
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reducedSystem : Matrix % -> Matrix Fraction Integer
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Fraction Integer,vec: Vector Fraction Integer)
---R reducedSystem : Matrix % -> Matrix Integer
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer)
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R operators : % -> List(BasicOperator)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reducedSystem : Matrix(%) -> Matrix(Fraction(Integer))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Fraction(Integer)),vec: Vector(Fraction(Integer)))
+--R reducedSystem : Matrix(%) -> Matrix(Integer)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer))
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
---R retractIfCan : % -> Union(Kernel %,"failed")
---R rootOf : SparseUnivariatePolynomial % -> %
---R rootOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R rootsOf : SparseUnivariatePolynomial % -> List %
---R rootsOf : (SparseUnivariatePolynomial %,Symbol) -> List %
---R subst : (%,List Kernel %,List %) -> %
---R subst : (%,List Equation %) -> %
+--R retractIfCan : % -> Union(Kernel(%),"failed")
+--R rootOf : SparseUnivariatePolynomial(%) -> %
+--R rootOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R rootsOf : Polynomial(%) -> List(%)
+--R rootsOf : SparseUnivariatePolynomial(%) -> List(%)
+--R rootsOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
+--R subst : (%,List(Kernel(%)),List(%)) -> %
+--R subst : (%,List(Equation(%))) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R zeroOf : SparseUnivariatePolynomial % -> %
---R zeroOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R zerosOf : SparseUnivariatePolynomial % -> List %
---R zerosOf : (SparseUnivariatePolynomial %,Symbol) -> List %
+--R zeroOf : SparseUnivariatePolynomial(%) -> %
+--R zeroOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R zerosOf : Polynomial(%) -> List(%)
+--R zerosOf : SparseUnivariatePolynomial(%) -> List(%)
+--R zerosOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
 --R
 --E 1
 
@@ -2001,7 +2011,8 @@ AnonymousFunction():SetCategory == add
 
 --S 1 of 1
 )show AntiSymm
---R AntiSymm(R: Ring,lVar: List Symbol)  is a domain constructor
+--R 
+--R AntiSymm(R: Ring,lVar: List(Symbol))  is a domain constructor
 --R Abbreviation for AntiSymm is ANTISYM 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ANTISYM 
@@ -2015,7 +2026,7 @@ AnonymousFunction():SetCategory == add
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
 --R coefficient : (%,%) -> R              coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R degree : % -> NonNegativeInteger      exp : List Integer -> %
+--R degree : % -> NonNegativeInteger      exp : List(Integer) -> %
 --R hash : % -> SingleInteger             homogeneous? : % -> Boolean
 --R latex : % -> String                   leadingBasisTerm : % -> %
 --R leadingCoefficient : % -> R           map : ((R -> R),%) -> %
@@ -2304,7 +2315,7 @@ a:Any := [1,2]
 --R 
 --R
 --R   (1)  [1,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 1
 
 --S 2 of 18
@@ -2312,7 +2323,7 @@ b:Any := [1,2]
 --R 
 --R
 --R   (2)  [1,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 2
 
 --S 3 of 18
@@ -2328,7 +2339,7 @@ c := [1,2]
 --R 
 --R
 --R   (4)  [1,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 4
 
 --S 5 of 18
@@ -2343,7 +2354,7 @@ typeOf a
 typeOf c
 --R 
 --R
---R   (6)  List PositiveInteger
+--R   (6)  List(PositiveInteger)
 --R                                                                 Type: Domain
 --E 6
 
@@ -2360,7 +2371,7 @@ b := [1,3]
 --R 
 --R
 --R   (8)  [1,3]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 8
 
 --S 9 of 18
@@ -2408,8 +2419,8 @@ Sae := SAE(FRAC INT, UP(x, FRAC INT), x^2-3)
 --R 
 --R
 --R   (14)
---R  SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(x,Fraction Int
---R  eger),x*x-3)
+--R  SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(x,Fraction(In
+--R  teger)),x^2+-3)
 --R                                                                 Type: Domain
 --E 14
 
@@ -2418,7 +2429,7 @@ a := generator()$Sae
 --R 
 --R
 --R   (15)  x
---RType: SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(x,Fraction Integer),x*x-3)
+--RType: SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)),x^2+-3)
 --E 15
 
 --S 16 of 18
@@ -2426,7 +2437,7 @@ b := generator()$Sae
 --R 
 --R
 --R   (16)  x
---RType: SimpleAlgebraicExtension(Fraction Integer,UnivariatePolynomial(x,Fraction Integer),x*x-3)
+--RType: SimpleAlgebraicExtension(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)),x^2+-3)
 --E 16
 
 --S 17 of 18
@@ -2659,7 +2670,7 @@ a:ArrayStack INT:= arrayStack [1,2,3,4,5]
 --R 
 --R
 --R   (1)  [1,2,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 1
 
 --S 2 of 44
@@ -2675,7 +2686,7 @@ a
 --R 
 --R
 --R   (3)  [2,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 3
 
 --S 4 of 44
@@ -2691,7 +2702,7 @@ a
 --R 
 --R
 --R   (5)  [3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 5
 
 --S 6 of 44
@@ -2707,7 +2718,7 @@ a
 --R 
 --R
 --R   (7)  [9,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 7
 
 --S 8 of 44
@@ -2715,7 +2726,7 @@ insert!(8,a)
 --R 
 --R
 --R   (8)  [8,9,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 8
 
 --S 9 of 44
@@ -2723,7 +2734,7 @@ a
 --R 
 --R
 --R   (9)  [8,9,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 9
 
 --S 10 of 44
@@ -2803,7 +2814,7 @@ parts a
 --R 
 --R
 --R   (19)  [8,9,3,4,5]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 19
 
 --S 20 of 44
@@ -2811,7 +2822,7 @@ bag([1,2,3,4,5])$ArrayStack(INT)
 --R 
 --R
 --R   (20)  [5,4,3,2,1]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 20
 
 --S 21 of 44
@@ -2819,7 +2830,7 @@ b:=empty()$(ArrayStack INT)
 --R 
 --R
 --R   (21)  []
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 21
 
 --S 22 of 44
@@ -2835,7 +2846,7 @@ sample()$ArrayStack(INT)
 --R 
 --R
 --R   (23)  []
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 23
 
 --S 24 of 44
@@ -2843,7 +2854,7 @@ c:=copy a
 --R 
 --R
 --R   (24)  [8,9,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 24
 
 --S 25 of 44
@@ -2931,7 +2942,7 @@ map(x+->x+10,a)
 --R 
 --R
 --R   (35)  [18,19,13,14,15]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 35
 
 --S 36 of 44
@@ -2939,7 +2950,7 @@ a
 --R 
 --R
 --R   (36)  [8,9,3,4,5]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 36
 
 --S 37 of 44
@@ -2947,7 +2958,7 @@ map!(x+->x+10,a)
 --R 
 --R
 --R   (37)  [18,19,13,14,15]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 37
 
 --S 38 of 44
@@ -2955,7 +2966,7 @@ a
 --R 
 --R
 --R   (38)  [18,19,13,14,15]
---R                                                     Type: ArrayStack Integer
+--R                                                    Type: ArrayStack(Integer)
 --E 38
 
 --S 39 of 44
@@ -2963,7 +2974,7 @@ members a
 --R 
 --R
 --R   (39)  [18,19,13,14,15]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 39
 
 --S 40 of 44
@@ -3001,13 +3012,13 @@ latex a
 --S 44 of 44
 )show ArrayStack
 --R 
---R ArrayStack S: SetCategory  is a domain constructor
+--R ArrayStack(S: SetCategory)  is a domain constructor
 --R Abbreviation for ArrayStack is ASTACK 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASTACK 
 --R
 --R------------------------------- Operations --------------------------------
---R arrayStack : List S -> %              bag : List S -> %
+--R arrayStack : List(S) -> %             bag : List(S) -> %
 --R copy : % -> %                         depth : % -> NonNegativeInteger
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
@@ -3021,19 +3032,19 @@ latex a
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R ?~=? : (%,%) -> Boolean if S has SETCAT
 --R
@@ -3528,26 +3539,28 @@ ArrayStack(S:SetCategory): StackAggregate(S) with
 
 --S 1 of 1
 )show Asp1
---R Asp1 name: Symbol  is a domain constructor
+--R 
+--R Asp1(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp1 is ASP1 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP1 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R retract : Polynomial Integer -> %     retract : Polynomial Float -> %
---R retract : Expression Integer -> %     retract : Expression Float -> %
+--R retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
 --R coerce : FortranExpression([construct,QUOTEX],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Fraction Polynomial Integer -> %
---R retract : Fraction Polynomial Float -> %
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Polynomial Float -> Union(%,"failed")
---R retractIfCan : Expression Integer -> Union(%,"failed")
---R retractIfCan : Expression Float -> Union(%,"failed")
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Fraction(Polynomial(Integer)) -> %
+--R retract : Fraction(Polynomial(Float)) -> %
+--R retract : Polynomial(Integer) -> %
+--R retract : Expression(Integer) -> %
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed")
+--R retractIfCan : Expression(Integer) -> Union(%,"failed")
+--R retractIfCan : Expression(Float) -> Union(%,"failed")
 --R
 --E 1
 
@@ -3698,28 +3711,29 @@ Asp1(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp10
---R Asp10 name: Symbol  is a domain constructor
+--R 
+--R Asp10(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp10 is ASP10 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP10 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEJINT,QUOTEX,QUOTEELAM],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEJINT,QUOTEX,QUOTEELAM],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -3902,7 +3916,8 @@ Asp10(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp12
---R Asp12 name: Symbol  is a domain constructor
+--R 
+--R Asp12(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp12 is ASP12 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP12 
@@ -4020,28 +4035,29 @@ Asp12(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp19
---R Asp19 name: Symbol  is a domain constructor
+--R 
+--R Asp19(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp19 is ASP19 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP19 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct],[construct,QUOTEXC],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct],[construct,QUOTEXC],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -4358,28 +4374,29 @@ Asp19(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp20
---R Asp20 name: Symbol  is a domain constructor
+--R 
+--R Asp20(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp20 is ASP20 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP20 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Matrix FortranExpression([construct],[construct,QUOTEX,QUOTEHESS],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Matrix Fraction Polynomial Integer -> %
---R retract : Matrix Fraction Polynomial Float -> %
---R retract : Matrix Polynomial Integer -> %
---R retract : Matrix Polynomial Float -> %
---R retract : Matrix Expression Integer -> %
---R retract : Matrix Expression Float -> %
---R retractIfCan : Matrix Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Expression Integer -> Union(%,"failed")
---R retractIfCan : Matrix Expression Float -> Union(%,"failed")
+--R coerce : Matrix(FortranExpression([construct],[construct,QUOTEX,QUOTEHESS],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Matrix(Fraction(Polynomial(Integer))) -> %
+--R retract : Matrix(Fraction(Polynomial(Float))) -> %
+--R retract : Matrix(Polynomial(Integer)) -> %
+--R retract : Matrix(Polynomial(Float)) -> %
+--R retract : Matrix(Expression(Integer)) -> %
+--R retract : Matrix(Expression(Float)) -> %
+--R retractIfCan : Matrix(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -4588,26 +4605,28 @@ Asp20(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp24
---R Asp24 name: Symbol  is a domain constructor
+--R 
+--R Asp24(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp24 is ASP24 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP24 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R retract : Polynomial Integer -> %     retract : Polynomial Float -> %
---R retract : Expression Integer -> %     retract : Expression Float -> %
+--R retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
 --R coerce : FortranExpression([construct],[construct,QUOTEXC],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Fraction Polynomial Integer -> %
---R retract : Fraction Polynomial Float -> %
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Polynomial Float -> Union(%,"failed")
---R retractIfCan : Expression Integer -> Union(%,"failed")
---R retractIfCan : Expression Float -> Union(%,"failed")
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Fraction(Polynomial(Integer)) -> %
+--R retract : Fraction(Polynomial(Float)) -> %
+--R retract : Polynomial(Integer) -> %
+--R retract : Expression(Integer) -> %
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed")
+--R retractIfCan : Expression(Integer) -> Union(%,"failed")
+--R retractIfCan : Expression(Float) -> Union(%,"failed")
 --R
 --E 1
 
@@ -4768,16 +4787,17 @@ Asp24(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp27
---R Asp27 name: Symbol  is a domain constructor
+--R 
+--R Asp27(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp27 is ASP27 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP27 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
---R coerce : Matrix MachineFloat -> %     coerce : % -> OutputForm
---R outputAsFortran : % -> Void          
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
+--R coerce : % -> OutputForm              outputAsFortran : % -> Void
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R coerce : Matrix(MachineFloat) -> %
 --R
 --E 1
 
@@ -4917,16 +4937,17 @@ Asp27(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp28
---R Asp28 name: Symbol  is a domain constructor
+--R 
+--R Asp28(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp28 is ASP28 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP28 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
---R coerce : Matrix MachineFloat -> %     coerce : % -> OutputForm
---R outputAsFortran : % -> Void          
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
+--R coerce : % -> OutputForm              outputAsFortran : % -> Void
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R coerce : Matrix(MachineFloat) -> %
 --R
 --E 1
 
@@ -5177,7 +5198,8 @@ Asp28(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp29
---R Asp29 name: Symbol  is a domain constructor
+--R 
+--R Asp29(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp29 is ASP29 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP29 
@@ -5298,16 +5320,17 @@ Asp29(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp30
---R Asp30 name: Symbol  is a domain constructor
+--R 
+--R Asp30(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp30 is ASP30 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP30 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
---R coerce : Matrix MachineFloat -> %     coerce : % -> OutputForm
---R outputAsFortran : % -> Void          
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
+--R coerce : % -> OutputForm              outputAsFortran : % -> Void
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R coerce : Matrix(MachineFloat) -> %
 --R
 --E 1
 
@@ -5477,28 +5500,29 @@ Asp30(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp31
---R Asp31 name: Symbol  is a domain constructor
+--R 
+--R Asp31(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp31 is ASP31 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP31 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEX],[construct,QUOTEY],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEX],[construct,QUOTEY],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -5704,7 +5728,8 @@ Asp31(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp33
---R Asp33 name: Symbol  is a domain constructor
+--R 
+--R Asp33(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp33 is ASP33 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP33 
@@ -5805,16 +5830,17 @@ Asp33(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp34
---R Asp34 name: Symbol  is a domain constructor
+--R 
+--R Asp34(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp34 is ASP34 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP34 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
---R coerce : Matrix MachineFloat -> %     coerce : % -> OutputForm
---R outputAsFortran : % -> Void          
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
+--R coerce : % -> OutputForm              outputAsFortran : % -> Void
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R coerce : Matrix(MachineFloat) -> %
 --R
 --E 1
 
@@ -5956,28 +5982,29 @@ Asp34(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp35
---R Asp35 name: Symbol  is a domain constructor
+--R 
+--R Asp35(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp35 is ASP35 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP35 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct],[construct,QUOTEX],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct],[construct,QUOTEX],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -6193,26 +6220,28 @@ Asp35(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp4
---R Asp4 name: Symbol  is a domain constructor
+--R 
+--R Asp4(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp4 is ASP4 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP4 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R retract : Polynomial Integer -> %     retract : Polynomial Float -> %
---R retract : Expression Integer -> %     retract : Expression Float -> %
+--R retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
 --R coerce : FortranExpression([construct],[construct,QUOTEX],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Fraction Polynomial Integer -> %
---R retract : Fraction Polynomial Float -> %
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Polynomial Float -> Union(%,"failed")
---R retractIfCan : Expression Integer -> Union(%,"failed")
---R retractIfCan : Expression Float -> Union(%,"failed")
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Fraction(Polynomial(Integer)) -> %
+--R retract : Fraction(Polynomial(Float)) -> %
+--R retract : Polynomial(Integer) -> %
+--R retract : Expression(Integer) -> %
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed")
+--R retractIfCan : Expression(Integer) -> Union(%,"failed")
+--R retractIfCan : Expression(Float) -> Union(%,"failed")
 --R
 --E 1
 
@@ -6366,28 +6395,29 @@ Asp4(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp41
+--R 
 --R Asp41(nameOne: Symbol,nameTwo: Symbol,nameThree: Symbol)  is a domain constructor
 --R Abbreviation for Asp41 is ASP41 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP41 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEX,QUOTEEPS],[construct,QUOTEY],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEX,QUOTEEPS],[construct,QUOTEY],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -6649,28 +6679,29 @@ Asp41(nameOne,nameTwo,nameThree): Exports == Implementation where
 
 --S 1 of 1
 )show Asp42
+--R 
 --R Asp42(nameOne: Symbol,nameTwo: Symbol,nameThree: Symbol)  is a domain constructor
 --R Abbreviation for Asp42 is ASP42 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP42 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEEPS],[construct,QUOTEYA,QUOTEYB],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEEPS],[construct,QUOTEYA,QUOTEYB],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -6954,26 +6985,28 @@ Asp42(nameOne,nameTwo,nameThree): Exports == Implementation where
 
 --S 1 of 1
 )show Asp49
---R Asp49 name: Symbol  is a domain constructor
+--R 
+--R Asp49(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp49 is ASP49 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP49 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R retract : Polynomial Integer -> %     retract : Polynomial Float -> %
---R retract : Expression Integer -> %     retract : Expression Float -> %
+--R retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
 --R coerce : FortranExpression([construct],[construct,QUOTEX],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Fraction Polynomial Integer -> %
---R retract : Fraction Polynomial Float -> %
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Polynomial Float -> Union(%,"failed")
---R retractIfCan : Expression Integer -> Union(%,"failed")
---R retractIfCan : Expression Float -> Union(%,"failed")
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Fraction(Polynomial(Integer)) -> %
+--R retract : Fraction(Polynomial(Float)) -> %
+--R retract : Polynomial(Integer) -> %
+--R retract : Expression(Integer) -> %
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed")
+--R retractIfCan : Expression(Integer) -> Union(%,"failed")
+--R retractIfCan : Expression(Float) -> Union(%,"failed")
 --R
 --E 1
 
@@ -7163,28 +7196,29 @@ Asp49(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp50
---R Asp50 name: Symbol  is a domain constructor
+--R 
+--R Asp50(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp50 is ASP50 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP50 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct],[construct,QUOTEXC],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct],[construct,QUOTEXC],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -7390,28 +7424,29 @@ Asp50(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp55
---R Asp55 name: Symbol  is a domain constructor
+--R 
+--R Asp55(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp55 is ASP55 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP55 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct],[construct,QUOTEX],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct],[construct,QUOTEX],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -7660,28 +7695,29 @@ Asp55(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp6
---R Asp6 name: Symbol  is a domain constructor
+--R 
+--R Asp6(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp6 is ASP6 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP6 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct],[construct,QUOTEX],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct],[construct,QUOTEX],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -7873,28 +7909,29 @@ Asp6(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp7
---R Asp7 name: Symbol  is a domain constructor
+--R 
+--R Asp7(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp7 is ASP7 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP7 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEX],[construct,QUOTEY],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEX],[construct,QUOTEY],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -8071,28 +8108,29 @@ Asp7(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp73
---R Asp73 name: Symbol  is a domain constructor
+--R 
+--R Asp73(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp73 is ASP73 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP73 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEX,QUOTEY],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEX,QUOTEY],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -8281,28 +8319,29 @@ Asp73(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp74
---R Asp74 name: Symbol  is a domain constructor
+--R 
+--R Asp74(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp74 is ASP74 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP74 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Matrix FortranExpression([construct,QUOTEX,QUOTEY],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Matrix Fraction Polynomial Integer -> %
---R retract : Matrix Fraction Polynomial Float -> %
---R retract : Matrix Polynomial Integer -> %
---R retract : Matrix Polynomial Float -> %
---R retract : Matrix Expression Integer -> %
---R retract : Matrix Expression Float -> %
---R retractIfCan : Matrix Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Expression Integer -> Union(%,"failed")
---R retractIfCan : Matrix Expression Float -> Union(%,"failed")
+--R coerce : Matrix(FortranExpression([construct,QUOTEX,QUOTEY],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Matrix(Fraction(Polynomial(Integer))) -> %
+--R retract : Matrix(Fraction(Polynomial(Float))) -> %
+--R retract : Matrix(Polynomial(Integer)) -> %
+--R retract : Matrix(Polynomial(Float)) -> %
+--R retract : Matrix(Expression(Integer)) -> %
+--R retract : Matrix(Expression(Float)) -> %
+--R retractIfCan : Matrix(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -8533,28 +8572,29 @@ Asp74(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp77
---R Asp77 name: Symbol  is a domain constructor
+--R 
+--R Asp77(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp77 is ASP77 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP77 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Matrix FortranExpression([construct,QUOTEX],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Matrix Fraction Polynomial Integer -> %
---R retract : Matrix Fraction Polynomial Float -> %
---R retract : Matrix Polynomial Integer -> %
---R retract : Matrix Polynomial Float -> %
---R retract : Matrix Expression Integer -> %
---R retract : Matrix Expression Float -> %
---R retractIfCan : Matrix Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Expression Integer -> Union(%,"failed")
---R retractIfCan : Matrix Expression Float -> Union(%,"failed")
+--R coerce : Matrix(FortranExpression([construct,QUOTEX],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Matrix(Fraction(Polynomial(Integer))) -> %
+--R retract : Matrix(Fraction(Polynomial(Float))) -> %
+--R retract : Matrix(Polynomial(Integer)) -> %
+--R retract : Matrix(Polynomial(Float)) -> %
+--R retract : Matrix(Expression(Integer)) -> %
+--R retract : Matrix(Expression(Float)) -> %
+--R retractIfCan : Matrix(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -8750,28 +8790,29 @@ Asp77(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp78
---R Asp78 name: Symbol  is a domain constructor
+--R 
+--R Asp78(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp78 is ASP78 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP78 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Vector FortranExpression([construct,QUOTEX],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Vector Fraction Polynomial Integer -> %
---R retract : Vector Fraction Polynomial Float -> %
---R retract : Vector Polynomial Integer -> %
---R retract : Vector Polynomial Float -> %
---R retract : Vector Expression Integer -> %
---R retract : Vector Expression Float -> %
---R retractIfCan : Vector Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Vector Polynomial Float -> Union(%,"failed")
---R retractIfCan : Vector Expression Integer -> Union(%,"failed")
---R retractIfCan : Vector Expression Float -> Union(%,"failed")
+--R coerce : Vector(FortranExpression([construct,QUOTEX],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Vector(Fraction(Polynomial(Integer))) -> %
+--R retract : Vector(Fraction(Polynomial(Float))) -> %
+--R retract : Vector(Polynomial(Integer)) -> %
+--R retract : Vector(Polynomial(Float)) -> %
+--R retract : Vector(Expression(Integer)) -> %
+--R retract : Vector(Expression(Float)) -> %
+--R retractIfCan : Vector(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Vector(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Vector(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -8942,16 +8983,17 @@ Asp78(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp8
---R Asp8 name: Symbol  is a domain constructor
+--R 
+--R Asp8(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp8 is ASP8 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP8 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
---R coerce : Vector MachineFloat -> %     coerce : % -> OutputForm
---R outputAsFortran : % -> Void          
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
+--R coerce : % -> OutputForm              outputAsFortran : % -> Void
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R coerce : Vector(MachineFloat) -> %
 --R
 --E 1
 
@@ -9122,28 +9164,29 @@ Asp8(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp80
---R Asp80 name: Symbol  is a domain constructor
+--R 
+--R Asp80(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp80 is ASP80 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP80 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Matrix FortranExpression([construct,QUOTEXL,QUOTEXR,QUOTEELAM],[construct],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Matrix Fraction Polynomial Integer -> %
---R retract : Matrix Fraction Polynomial Float -> %
---R retract : Matrix Polynomial Integer -> %
---R retract : Matrix Polynomial Float -> %
---R retract : Matrix Expression Integer -> %
---R retract : Matrix Expression Float -> %
---R retractIfCan : Matrix Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Matrix Polynomial Float -> Union(%,"failed")
---R retractIfCan : Matrix Expression Integer -> Union(%,"failed")
---R retractIfCan : Matrix Expression Float -> Union(%,"failed")
+--R coerce : Matrix(FortranExpression([construct,QUOTEXL,QUOTEXR,QUOTEELAM],[construct],MachineFloat)) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Matrix(Fraction(Polynomial(Integer))) -> %
+--R retract : Matrix(Fraction(Polynomial(Float))) -> %
+--R retract : Matrix(Polynomial(Integer)) -> %
+--R retract : Matrix(Polynomial(Float)) -> %
+--R retract : Matrix(Expression(Integer)) -> %
+--R retract : Matrix(Expression(Float)) -> %
+--R retractIfCan : Matrix(Fraction(Polynomial(Integer))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Fraction(Polynomial(Float))) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Integer)) -> Union(%,"failed")
+--R retractIfCan : Matrix(Expression(Float)) -> Union(%,"failed")
 --R
 --E 1
 
@@ -9337,26 +9380,28 @@ Asp80(name): Exports == Implementation where
 
 --S 1 of 1
 )show Asp9
---R Asp9 name: Symbol  is a domain constructor
+--R 
+--R Asp9(name: Symbol)  is a domain constructor
 --R Abbreviation for Asp9 is ASP9 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ASP9 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R retract : Polynomial Integer -> %     retract : Polynomial Float -> %
---R retract : Expression Integer -> %     retract : Expression Float -> %
+--R retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
 --R coerce : FortranExpression([construct,QUOTEX],[construct,QUOTEY],MachineFloat) -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
---R retract : Fraction Polynomial Integer -> %
---R retract : Fraction Polynomial Float -> %
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed")
---R retractIfCan : Polynomial Integer -> Union(%,"failed")
---R retractIfCan : Polynomial Float -> Union(%,"failed")
---R retractIfCan : Expression Integer -> Union(%,"failed")
---R retractIfCan : Expression Float -> Union(%,"failed")
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
+--R retract : Fraction(Polynomial(Integer)) -> %
+--R retract : Fraction(Polynomial(Float)) -> %
+--R retract : Polynomial(Integer) -> %
+--R retract : Expression(Integer) -> %
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed")
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed")
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed")
+--R retractIfCan : Expression(Integer) -> Union(%,"failed")
+--R retractIfCan : Expression(Float) -> Union(%,"failed")
 --R
 --E 1
 
@@ -9528,7 +9573,8 @@ Asp9(name): Exports == Implementation where
 
 --S 1 of 1
 )show AssociatedJordanAlgebra
---R AssociatedJordanAlgebra(R: CommutativeRing,A: NonAssociativeAlgebra R)  is a domain constructor
+--R 
+--R AssociatedJordanAlgebra(R: CommutativeRing,A: NonAssociativeAlgebra(R))  is a domain constructor
 --R Abbreviation for AssociatedJordanAlgebra is JORDAN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for JORDAN 
@@ -9546,73 +9592,73 @@ Asp9(name): Exports == Implementation where
 --R latex : % -> String                   sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
---R alternative? : () -> Boolean if A has FINAALG R
---R antiAssociative? : () -> Boolean if A has FINAALG R
---R antiCommutative? : () -> Boolean if A has FINAALG R
---R apply : (Matrix R,%) -> % if A has FRNAALG R
---R associative? : () -> Boolean if A has FINAALG R
---R associatorDependence : () -> List Vector R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R basis : () -> Vector % if A has FRNAALG R
---R commutative? : () -> Boolean if A has FINAALG R
---R conditionsForIdempotents : Vector % -> List Polynomial R if A has FINAALG R
---R conditionsForIdempotents : () -> List Polynomial R if A has FRNAALG R
---R convert : % -> Vector R if A has FRNAALG R
---R convert : Vector R -> % if A has FRNAALG R
---R coordinates : (%,Vector %) -> Vector R if A has FINAALG R
---R coordinates : (Vector %,Vector %) -> Matrix R if A has FINAALG R
---R coordinates : % -> Vector R if A has FRNAALG R
---R coordinates : Vector % -> Matrix R if A has FRNAALG R
---R ?.? : (%,Integer) -> R if A has FRNAALG R
---R flexible? : () -> Boolean if A has FINAALG R
---R jacobiIdentity? : () -> Boolean if A has FINAALG R
---R jordanAdmissible? : () -> Boolean if A has FINAALG R
---R jordanAlgebra? : () -> Boolean if A has FINAALG R
---R leftAlternative? : () -> Boolean if A has FINAALG R
---R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R
---R leftDiscriminant : Vector % -> R if A has FINAALG R
---R leftDiscriminant : () -> R if A has FRNAALG R
---R leftMinimalPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftNorm : % -> R if A has FINAALG R
+--R alternative? : () -> Boolean if A has FINAALG(R)
+--R antiAssociative? : () -> Boolean if A has FINAALG(R)
+--R antiCommutative? : () -> Boolean if A has FINAALG(R)
+--R apply : (Matrix(R),%) -> % if A has FRNAALG(R)
+--R associative? : () -> Boolean if A has FINAALG(R)
+--R associatorDependence : () -> List(Vector(R)) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R basis : () -> Vector(%) if A has FRNAALG(R)
+--R commutative? : () -> Boolean if A has FINAALG(R)
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(R)) if A has FINAALG(R)
+--R conditionsForIdempotents : () -> List(Polynomial(R)) if A has FRNAALG(R)
+--R convert : % -> Vector(R) if A has FRNAALG(R)
+--R convert : Vector(R) -> % if A has FRNAALG(R)
+--R coordinates : (%,Vector(%)) -> Vector(R) if A has FINAALG(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R coordinates : % -> Vector(R) if A has FRNAALG(R)
+--R coordinates : Vector(%) -> Matrix(R) if A has FRNAALG(R)
+--R ?.? : (%,Integer) -> R if A has FRNAALG(R)
+--R flexible? : () -> Boolean if A has FINAALG(R)
+--R jacobiIdentity? : () -> Boolean if A has FINAALG(R)
+--R jordanAdmissible? : () -> Boolean if A has FINAALG(R)
+--R jordanAlgebra? : () -> Boolean if A has FINAALG(R)
+--R leftAlternative? : () -> Boolean if A has FINAALG(R)
+--R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R)
+--R leftDiscriminant : Vector(%) -> R if A has FINAALG(R)
+--R leftDiscriminant : () -> R if A has FRNAALG(R)
+--R leftMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftNorm : % -> R if A has FINAALG(R)
 --R leftPower : (%,PositiveInteger) -> %
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if A has FRNAALG R and R has FIELD
---R leftRecip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftRegularRepresentation : (%,Vector %) -> Matrix R if A has FINAALG R
---R leftRegularRepresentation : % -> Matrix R if A has FRNAALG R
---R leftTrace : % -> R if A has FINAALG R
---R leftTraceMatrix : Vector % -> Matrix R if A has FINAALG R
---R leftTraceMatrix : () -> Matrix R if A has FRNAALG R
---R leftUnit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftUnits : () -> Union(Record(particular: %,basis: List %),"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R lieAdmissible? : () -> Boolean if A has FINAALG R
---R lieAlgebra? : () -> Boolean if A has FINAALG R
---R noncommutativeJordanAlgebra? : () -> Boolean if A has FINAALG R
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if A has FRNAALG(R) and R has FIELD
+--R leftRecip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftRegularRepresentation : (%,Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R leftRegularRepresentation : % -> Matrix(R) if A has FRNAALG(R)
+--R leftTrace : % -> R if A has FINAALG(R)
+--R leftTraceMatrix : Vector(%) -> Matrix(R) if A has FINAALG(R)
+--R leftTraceMatrix : () -> Matrix(R) if A has FRNAALG(R)
+--R leftUnit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R lieAdmissible? : () -> Boolean if A has FINAALG(R)
+--R lieAlgebra? : () -> Boolean if A has FINAALG(R)
+--R noncommutativeJordanAlgebra? : () -> Boolean if A has FINAALG(R)
 --R plenaryPower : (%,PositiveInteger) -> %
---R powerAssociative? : () -> Boolean if A has FINAALG R
---R rank : () -> PositiveInteger if A has FINAALG R
---R recip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R represents : (Vector R,Vector %) -> % if A has FINAALG R
---R represents : Vector R -> % if A has FRNAALG R
---R rightAlternative? : () -> Boolean if A has FINAALG R
---R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R
---R rightDiscriminant : Vector % -> R if A has FINAALG R
---R rightDiscriminant : () -> R if A has FRNAALG R
---R rightMinimalPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightNorm : % -> R if A has FINAALG R
+--R powerAssociative? : () -> Boolean if A has FINAALG(R)
+--R rank : () -> PositiveInteger if A has FINAALG(R)
+--R recip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R represents : (Vector(R),Vector(%)) -> % if A has FINAALG(R)
+--R represents : Vector(R) -> % if A has FRNAALG(R)
+--R rightAlternative? : () -> Boolean if A has FINAALG(R)
+--R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R)
+--R rightDiscriminant : Vector(%) -> R if A has FINAALG(R)
+--R rightDiscriminant : () -> R if A has FRNAALG(R)
+--R rightMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightNorm : % -> R if A has FINAALG(R)
 --R rightPower : (%,PositiveInteger) -> %
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if A has FRNAALG R and R has FIELD
---R rightRecip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightRegularRepresentation : (%,Vector %) -> Matrix R if A has FINAALG R
---R rightRegularRepresentation : % -> Matrix R if A has FRNAALG R
---R rightTrace : % -> R if A has FINAALG R
---R rightTraceMatrix : Vector % -> Matrix R if A has FINAALG R
---R rightTraceMatrix : () -> Matrix R if A has FRNAALG R
---R rightUnit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightUnits : () -> Union(Record(particular: %,basis: List %),"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R someBasis : () -> Vector % if A has FINAALG R
---R structuralConstants : Vector % -> Vector Matrix R if A has FINAALG R
---R structuralConstants : () -> Vector Matrix R if A has FRNAALG R
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if A has FRNAALG(R) and R has FIELD
+--R rightRecip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightRegularRepresentation : (%,Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R rightRegularRepresentation : % -> Matrix(R) if A has FRNAALG(R)
+--R rightTrace : % -> R if A has FINAALG(R)
+--R rightTraceMatrix : Vector(%) -> Matrix(R) if A has FINAALG(R)
+--R rightTraceMatrix : () -> Matrix(R) if A has FRNAALG(R)
+--R rightUnit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R someBasis : () -> Vector(%) if A has FINAALG(R)
+--R structuralConstants : Vector(%) -> Vector(Matrix(R)) if A has FINAALG(R)
+--R structuralConstants : () -> Vector(Matrix(R)) if A has FRNAALG(R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R unit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
+--R unit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
 --R
 --E 1
 
@@ -9787,7 +9833,8 @@ AssociatedJordanAlgebra(R:CommutativeRing,A:NonAssociativeAlgebra R):
 
 --S 1 of 1
 )show AssociatedLieAlgebra
---R AssociatedLieAlgebra(R: CommutativeRing,A: NonAssociativeAlgebra R)  is a domain constructor
+--R 
+--R AssociatedLieAlgebra(R: CommutativeRing,A: NonAssociativeAlgebra(R))  is a domain constructor
 --R Abbreviation for AssociatedLieAlgebra is LIE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for LIE 
@@ -9805,73 +9852,73 @@ AssociatedJordanAlgebra(R:CommutativeRing,A:NonAssociativeAlgebra R):
 --R latex : % -> String                   sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
---R alternative? : () -> Boolean if A has FINAALG R
---R antiAssociative? : () -> Boolean if A has FINAALG R
---R antiCommutative? : () -> Boolean if A has FINAALG R
---R apply : (Matrix R,%) -> % if A has FRNAALG R
---R associative? : () -> Boolean if A has FINAALG R
---R associatorDependence : () -> List Vector R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R basis : () -> Vector % if A has FRNAALG R
---R commutative? : () -> Boolean if A has FINAALG R
---R conditionsForIdempotents : Vector % -> List Polynomial R if A has FINAALG R
---R conditionsForIdempotents : () -> List Polynomial R if A has FRNAALG R
---R convert : % -> Vector R if A has FRNAALG R
---R convert : Vector R -> % if A has FRNAALG R
---R coordinates : (%,Vector %) -> Vector R if A has FINAALG R
---R coordinates : (Vector %,Vector %) -> Matrix R if A has FINAALG R
---R coordinates : % -> Vector R if A has FRNAALG R
---R coordinates : Vector % -> Matrix R if A has FRNAALG R
---R ?.? : (%,Integer) -> R if A has FRNAALG R
---R flexible? : () -> Boolean if A has FINAALG R
---R jacobiIdentity? : () -> Boolean if A has FINAALG R
---R jordanAdmissible? : () -> Boolean if A has FINAALG R
---R jordanAlgebra? : () -> Boolean if A has FINAALG R
---R leftAlternative? : () -> Boolean if A has FINAALG R
---R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R
---R leftDiscriminant : Vector % -> R if A has FINAALG R
---R leftDiscriminant : () -> R if A has FRNAALG R
---R leftMinimalPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftNorm : % -> R if A has FINAALG R
+--R alternative? : () -> Boolean if A has FINAALG(R)
+--R antiAssociative? : () -> Boolean if A has FINAALG(R)
+--R antiCommutative? : () -> Boolean if A has FINAALG(R)
+--R apply : (Matrix(R),%) -> % if A has FRNAALG(R)
+--R associative? : () -> Boolean if A has FINAALG(R)
+--R associatorDependence : () -> List(Vector(R)) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R basis : () -> Vector(%) if A has FRNAALG(R)
+--R commutative? : () -> Boolean if A has FINAALG(R)
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(R)) if A has FINAALG(R)
+--R conditionsForIdempotents : () -> List(Polynomial(R)) if A has FRNAALG(R)
+--R convert : % -> Vector(R) if A has FRNAALG(R)
+--R convert : Vector(R) -> % if A has FRNAALG(R)
+--R coordinates : (%,Vector(%)) -> Vector(R) if A has FINAALG(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R coordinates : % -> Vector(R) if A has FRNAALG(R)
+--R coordinates : Vector(%) -> Matrix(R) if A has FRNAALG(R)
+--R ?.? : (%,Integer) -> R if A has FRNAALG(R)
+--R flexible? : () -> Boolean if A has FINAALG(R)
+--R jacobiIdentity? : () -> Boolean if A has FINAALG(R)
+--R jordanAdmissible? : () -> Boolean if A has FINAALG(R)
+--R jordanAlgebra? : () -> Boolean if A has FINAALG(R)
+--R leftAlternative? : () -> Boolean if A has FINAALG(R)
+--R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R)
+--R leftDiscriminant : Vector(%) -> R if A has FINAALG(R)
+--R leftDiscriminant : () -> R if A has FRNAALG(R)
+--R leftMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftNorm : % -> R if A has FINAALG(R)
 --R leftPower : (%,PositiveInteger) -> %
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if A has FRNAALG R and R has FIELD
---R leftRecip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftRegularRepresentation : (%,Vector %) -> Matrix R if A has FINAALG R
---R leftRegularRepresentation : % -> Matrix R if A has FRNAALG R
---R leftTrace : % -> R if A has FINAALG R
---R leftTraceMatrix : Vector % -> Matrix R if A has FINAALG R
---R leftTraceMatrix : () -> Matrix R if A has FRNAALG R
---R leftUnit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R leftUnits : () -> Union(Record(particular: %,basis: List %),"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R lieAdmissible? : () -> Boolean if A has FINAALG R
---R lieAlgebra? : () -> Boolean if A has FINAALG R
---R noncommutativeJordanAlgebra? : () -> Boolean if A has FINAALG R
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if A has FRNAALG(R) and R has FIELD
+--R leftRecip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftRegularRepresentation : (%,Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R leftRegularRepresentation : % -> Matrix(R) if A has FRNAALG(R)
+--R leftTrace : % -> R if A has FINAALG(R)
+--R leftTraceMatrix : Vector(%) -> Matrix(R) if A has FINAALG(R)
+--R leftTraceMatrix : () -> Matrix(R) if A has FRNAALG(R)
+--R leftUnit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R lieAdmissible? : () -> Boolean if A has FINAALG(R)
+--R lieAlgebra? : () -> Boolean if A has FINAALG(R)
+--R noncommutativeJordanAlgebra? : () -> Boolean if A has FINAALG(R)
 --R plenaryPower : (%,PositiveInteger) -> %
---R powerAssociative? : () -> Boolean if A has FINAALG R
---R rank : () -> PositiveInteger if A has FINAALG R
---R recip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R represents : (Vector R,Vector %) -> % if A has FINAALG R
---R represents : Vector R -> % if A has FRNAALG R
---R rightAlternative? : () -> Boolean if A has FINAALG R
---R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R
---R rightDiscriminant : Vector % -> R if A has FINAALG R
---R rightDiscriminant : () -> R if A has FRNAALG R
---R rightMinimalPolynomial : % -> SparseUnivariatePolynomial R if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightNorm : % -> R if A has FINAALG R
+--R powerAssociative? : () -> Boolean if A has FINAALG(R)
+--R rank : () -> PositiveInteger if A has FINAALG(R)
+--R recip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R represents : (Vector(R),Vector(%)) -> % if A has FINAALG(R)
+--R represents : Vector(R) -> % if A has FRNAALG(R)
+--R rightAlternative? : () -> Boolean if A has FINAALG(R)
+--R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R)
+--R rightDiscriminant : Vector(%) -> R if A has FINAALG(R)
+--R rightDiscriminant : () -> R if A has FRNAALG(R)
+--R rightMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightNorm : % -> R if A has FINAALG(R)
 --R rightPower : (%,PositiveInteger) -> %
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if A has FRNAALG R and R has FIELD
---R rightRecip : % -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightRegularRepresentation : (%,Vector %) -> Matrix R if A has FINAALG R
---R rightRegularRepresentation : % -> Matrix R if A has FRNAALG R
---R rightTrace : % -> R if A has FINAALG R
---R rightTraceMatrix : Vector % -> Matrix R if A has FINAALG R
---R rightTraceMatrix : () -> Matrix R if A has FRNAALG R
---R rightUnit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R rightUnits : () -> Union(Record(particular: %,basis: List %),"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
---R someBasis : () -> Vector % if A has FINAALG R
---R structuralConstants : Vector % -> Vector Matrix R if A has FINAALG R
---R structuralConstants : () -> Vector Matrix R if A has FRNAALG R
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if A has FRNAALG(R) and R has FIELD
+--R rightRecip : % -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightRegularRepresentation : (%,Vector(%)) -> Matrix(R) if A has FINAALG(R)
+--R rightRegularRepresentation : % -> Matrix(R) if A has FRNAALG(R)
+--R rightTrace : % -> R if A has FINAALG(R)
+--R rightTraceMatrix : Vector(%) -> Matrix(R) if A has FINAALG(R)
+--R rightTraceMatrix : () -> Matrix(R) if A has FRNAALG(R)
+--R rightUnit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
+--R someBasis : () -> Vector(%) if A has FINAALG(R)
+--R structuralConstants : Vector(%) -> Vector(Matrix(R)) if A has FINAALG(R)
+--R structuralConstants : () -> Vector(Matrix(R)) if A has FRNAALG(R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R unit : () -> Union(%,"failed") if A has FINAALG R and R has INTDOM or A has FRNAALG R and R has INTDOM
+--R unit : () -> Union(%,"failed") if A has FINAALG(R) and R has INTDOM or A has FRNAALG(R) and R has INTDOM
 --R
 --E 1
 
@@ -10723,7 +10770,8 @@ AttributeButtons(): E == I where
 
 --S 1 of 1
 )show Automorphism
---R Automorphism R: Ring  is a domain constructor
+--R 
+--R Automorphism(R: Ring)  is a domain constructor
 --R Abbreviation for Automorphism is AUTOMOR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for AUTOMOR 
@@ -11231,7 +11279,8 @@ BalancedBinaryTree(S: SetCategory): Exports == Implementation where
 
 --S 1 of 1
 )show BalancedPAdicInteger
---R BalancedPAdicInteger p: Integer  is a domain constructor
+--R 
+--R BalancedPAdicInteger(p: Integer)  is a domain constructor
 --R Abbreviation for BalancedPAdicInteger is BPADIC 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for BPADIC 
@@ -11245,10 +11294,10 @@ BalancedBinaryTree(S: SetCategory): Exports == Implementation where
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R digits : % -> Stream Integer          extend : (%,Integer) -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R digits : % -> Stream(Integer)         extend : (%,Integer) -> %
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R moduloP : % -> Integer                modulus : () -> Integer
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
 --R ?quo? : (%,%) -> %                    quotientByP : % -> %
@@ -11264,14 +11313,14 @@ BalancedBinaryTree(S: SetCategory): Exports == Implementation where
 --R characteristic : () -> NonNegativeInteger
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R root : (SparseUnivariatePolynomial Integer,Integer) -> %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R root : (SparseUnivariatePolynomial(Integer),Integer) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -11387,13 +11436,14 @@ BalancedPAdicInteger(p:Integer) == InnerPAdicInteger(p,false$Boolean)
 
 --S 1 of 1
 )show BalancedPAdicRational
---R BalancedPAdicRational p: Integer  is a domain constructor
+--R 
+--R BalancedPAdicRational(p: Integer)  is a domain constructor
 --R Abbreviation for BalancedPAdicRational is BPADICRT 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for BPADICRT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -11401,111 +11451,111 @@ BalancedPAdicInteger(p:Integer) == InnerPAdicInteger(p,false$Boolean)
 --R ?/? : (%,%) -> %                      ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
---R associates? : (%,%) -> Boolean        coerce : Fraction Integer -> %
+--R associates? : (%,%) -> Boolean        coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              denominator : % -> %
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R numerator : % -> %                    one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R removeZeroes : (Integer,%) -> %       removeZeroes : % -> %
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (%,BalancedPAdicInteger p) -> %
---R ?*? : (BalancedPAdicInteger p,%) -> %
+--R ?*? : (%,BalancedPAdicInteger(p)) -> %
+--R ?*? : (BalancedPAdicInteger(p),%) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R ?/? : (BalancedPAdicInteger p,BalancedPAdicInteger p) -> %
---R ?<? : (%,%) -> Boolean if BalancedPAdicInteger p has ORDSET
---R ?<=? : (%,%) -> Boolean if BalancedPAdicInteger p has ORDSET
---R ?>? : (%,%) -> Boolean if BalancedPAdicInteger p has ORDSET
---R ?>=? : (%,%) -> Boolean if BalancedPAdicInteger p has ORDSET
---R D : (%,(BalancedPAdicInteger p -> BalancedPAdicInteger p)) -> %
---R D : (%,(BalancedPAdicInteger p -> BalancedPAdicInteger p),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R D : (%,List Symbol) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R D : (%,Symbol) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R D : (%,NonNegativeInteger) -> % if BalancedPAdicInteger p has DIFRING
---R D : % -> % if BalancedPAdicInteger p has DIFRING
+--R ?/? : (BalancedPAdicInteger(p),BalancedPAdicInteger(p)) -> %
+--R ?<? : (%,%) -> Boolean if BalancedPAdicInteger(p) has ORDSET
+--R ?<=? : (%,%) -> Boolean if BalancedPAdicInteger(p) has ORDSET
+--R ?>? : (%,%) -> Boolean if BalancedPAdicInteger(p) has ORDSET
+--R ?>=? : (%,%) -> Boolean if BalancedPAdicInteger(p) has ORDSET
+--R D : (%,(BalancedPAdicInteger(p) -> BalancedPAdicInteger(p))) -> %
+--R D : (%,(BalancedPAdicInteger(p) -> BalancedPAdicInteger(p)),NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,NonNegativeInteger) -> % if BalancedPAdicInteger(p) has DIFRING
+--R D : % -> % if BalancedPAdicInteger(p) has DIFRING
 --R ?^? : (%,NonNegativeInteger) -> %
---R abs : % -> % if BalancedPAdicInteger p has OINTDOM
---R approximate : (%,Integer) -> Fraction Integer
---R ceiling : % -> BalancedPAdicInteger p if BalancedPAdicInteger p has INS
+--R abs : % -> % if BalancedPAdicInteger(p) has OINTDOM
+--R approximate : (%,Integer) -> Fraction(Integer)
+--R ceiling : % -> BalancedPAdicInteger(p) if BalancedPAdicInteger(p) has INS
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and BalancedPAdicInteger p has PFECAT or BalancedPAdicInteger p has CHARNZ
---R coerce : Symbol -> % if BalancedPAdicInteger p has RETRACT SYMBOL
---R coerce : BalancedPAdicInteger p -> %
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and BalancedPAdicInteger p has PFECAT
---R continuedFraction : % -> ContinuedFraction Fraction Integer
---R convert : % -> DoubleFloat if BalancedPAdicInteger p has REAL
---R convert : % -> Float if BalancedPAdicInteger p has REAL
---R convert : % -> InputForm if BalancedPAdicInteger p has KONVERT INFORM
---R convert : % -> Pattern Float if BalancedPAdicInteger p has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if BalancedPAdicInteger p has KONVERT PATTERN INT
---R denom : % -> BalancedPAdicInteger p
---R differentiate : (%,(BalancedPAdicInteger p -> BalancedPAdicInteger p)) -> %
---R differentiate : (%,(BalancedPAdicInteger p -> BalancedPAdicInteger p),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if BalancedPAdicInteger p has PDRING SYMBOL
---R differentiate : (%,NonNegativeInteger) -> % if BalancedPAdicInteger p has DIFRING
---R differentiate : % -> % if BalancedPAdicInteger p has DIFRING
+--R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and BalancedPAdicInteger(p) has PFECAT or BalancedPAdicInteger(p) has CHARNZ
+--R coerce : Symbol -> % if BalancedPAdicInteger(p) has RETRACT(SYMBOL)
+--R coerce : BalancedPAdicInteger(p) -> %
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and BalancedPAdicInteger(p) has PFECAT
+--R continuedFraction : % -> ContinuedFraction(Fraction(Integer))
+--R convert : % -> DoubleFloat if BalancedPAdicInteger(p) has REAL
+--R convert : % -> Float if BalancedPAdicInteger(p) has REAL
+--R convert : % -> InputForm if BalancedPAdicInteger(p) has KONVERT(INFORM)
+--R convert : % -> Pattern(Float) if BalancedPAdicInteger(p) has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if BalancedPAdicInteger(p) has KONVERT(PATTERN(INT))
+--R denom : % -> BalancedPAdicInteger(p)
+--R differentiate : (%,(BalancedPAdicInteger(p) -> BalancedPAdicInteger(p))) -> %
+--R differentiate : (%,(BalancedPAdicInteger(p) -> BalancedPAdicInteger(p)),NonNegativeInteger) -> %
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if BalancedPAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,NonNegativeInteger) -> % if BalancedPAdicInteger(p) has DIFRING
+--R differentiate : % -> % if BalancedPAdicInteger(p) has DIFRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
---R ?.? : (%,BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has ELTAB(BPADIC p,BPADIC p)
+--R ?.? : (%,BalancedPAdicInteger(p)) -> % if BalancedPAdicInteger(p) has ELTAB(BPADIC(p),BPADIC(p))
 --R euclideanSize : % -> NonNegativeInteger
---R eval : (%,Symbol,BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has IEVALAB(SYMBOL,BPADIC p)
---R eval : (%,List Symbol,List BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has IEVALAB(SYMBOL,BPADIC p)
---R eval : (%,List Equation BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has EVALAB BPADIC p
---R eval : (%,Equation BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has EVALAB BPADIC p
---R eval : (%,BalancedPAdicInteger p,BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has EVALAB BPADIC p
---R eval : (%,List BalancedPAdicInteger p,List BalancedPAdicInteger p) -> % if BalancedPAdicInteger p has EVALAB BPADIC p
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,Symbol,BalancedPAdicInteger(p)) -> % if BalancedPAdicInteger(p) has IEVALAB(SYMBOL,BPADIC(p))
+--R eval : (%,List(Symbol),List(BalancedPAdicInteger(p))) -> % if BalancedPAdicInteger(p) has IEVALAB(SYMBOL,BPADIC(p))
+--R eval : (%,List(Equation(BalancedPAdicInteger(p)))) -> % if BalancedPAdicInteger(p) has EVALAB(BPADIC(p))
+--R eval : (%,Equation(BalancedPAdicInteger(p))) -> % if BalancedPAdicInteger(p) has EVALAB(BPADIC(p))
+--R eval : (%,BalancedPAdicInteger(p),BalancedPAdicInteger(p)) -> % if BalancedPAdicInteger(p) has EVALAB(BPADIC(p))
+--R eval : (%,List(BalancedPAdicInteger(p)),List(BalancedPAdicInteger(p))) -> % if BalancedPAdicInteger(p) has EVALAB(BPADIC(p))
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if BalancedPAdicInteger p has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if BalancedPAdicInteger p has PFECAT
---R floor : % -> BalancedPAdicInteger p if BalancedPAdicInteger p has INS
---R fractionPart : % -> % if BalancedPAdicInteger p has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R init : () -> % if BalancedPAdicInteger p has STEP
---R map : ((BalancedPAdicInteger p -> BalancedPAdicInteger p),%) -> %
---R max : (%,%) -> % if BalancedPAdicInteger p has ORDSET
---R min : (%,%) -> % if BalancedPAdicInteger p has ORDSET
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R negative? : % -> Boolean if BalancedPAdicInteger p has OINTDOM
---R nextItem : % -> Union(%,"failed") if BalancedPAdicInteger p has STEP
---R numer : % -> BalancedPAdicInteger p
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if BalancedPAdicInteger p has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if BalancedPAdicInteger p has PATMAB INT
---R positive? : % -> Boolean if BalancedPAdicInteger p has OINTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if BalancedPAdicInteger p has INS
---R reducedSystem : Matrix % -> Matrix BalancedPAdicInteger p
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix BalancedPAdicInteger p,vec: Vector BalancedPAdicInteger p)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if BalancedPAdicInteger p has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if BalancedPAdicInteger p has LINEXP INT
---R retract : % -> Integer if BalancedPAdicInteger p has RETRACT INT
---R retract : % -> Fraction Integer if BalancedPAdicInteger p has RETRACT INT
---R retract : % -> Symbol if BalancedPAdicInteger p has RETRACT SYMBOL
---R retract : % -> BalancedPAdicInteger p
---R retractIfCan : % -> Union(Integer,"failed") if BalancedPAdicInteger p has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if BalancedPAdicInteger p has RETRACT INT
---R retractIfCan : % -> Union(Symbol,"failed") if BalancedPAdicInteger p has RETRACT SYMBOL
---R retractIfCan : % -> Union(BalancedPAdicInteger p,"failed")
---R sign : % -> Integer if BalancedPAdicInteger p has OINTDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if BalancedPAdicInteger p has PFECAT
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if BalancedPAdicInteger p has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if BalancedPAdicInteger(p) has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if BalancedPAdicInteger(p) has PFECAT
+--R floor : % -> BalancedPAdicInteger(p) if BalancedPAdicInteger(p) has INS
+--R fractionPart : % -> % if BalancedPAdicInteger(p) has EUCDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R init : () -> % if BalancedPAdicInteger(p) has STEP
+--R map : ((BalancedPAdicInteger(p) -> BalancedPAdicInteger(p)),%) -> %
+--R max : (%,%) -> % if BalancedPAdicInteger(p) has ORDSET
+--R min : (%,%) -> % if BalancedPAdicInteger(p) has ORDSET
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R negative? : % -> Boolean if BalancedPAdicInteger(p) has OINTDOM
+--R nextItem : % -> Union(%,"failed") if BalancedPAdicInteger(p) has STEP
+--R numer : % -> BalancedPAdicInteger(p)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if BalancedPAdicInteger(p) has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if BalancedPAdicInteger(p) has PATMAB(INT)
+--R positive? : % -> Boolean if BalancedPAdicInteger(p) has OINTDOM
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if BalancedPAdicInteger(p) has INS
+--R reducedSystem : Matrix(%) -> Matrix(BalancedPAdicInteger(p))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(BalancedPAdicInteger(p)),vec: Vector(BalancedPAdicInteger(p)))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if BalancedPAdicInteger(p) has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if BalancedPAdicInteger(p) has LINEXP(INT)
+--R retract : % -> Integer if BalancedPAdicInteger(p) has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if BalancedPAdicInteger(p) has RETRACT(INT)
+--R retract : % -> Symbol if BalancedPAdicInteger(p) has RETRACT(SYMBOL)
+--R retract : % -> BalancedPAdicInteger(p)
+--R retractIfCan : % -> Union(Integer,"failed") if BalancedPAdicInteger(p) has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if BalancedPAdicInteger(p) has RETRACT(INT)
+--R retractIfCan : % -> Union(Symbol,"failed") if BalancedPAdicInteger(p) has RETRACT(SYMBOL)
+--R retractIfCan : % -> Union(BalancedPAdicInteger(p),"failed")
+--R sign : % -> Integer if BalancedPAdicInteger(p) has OINTDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if BalancedPAdicInteger(p) has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if BalancedPAdicInteger(p) has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R wholePart : % -> BalancedPAdicInteger p if BalancedPAdicInteger p has EUCDOM
+--R wholePart : % -> BalancedPAdicInteger(p) if BalancedPAdicInteger(p) has EUCDOM
 --R
 --E 1
 
@@ -11657,16 +11707,17 @@ BalancedPAdicRational(p:Integer) ==
 
 --S 1 of 1
 )show BasicFunctions
+--R 
 --R BasicFunctions  is a domain constructor
 --R Abbreviation for BasicFunctions is BFUNCT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for BFUNCT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                bfKeys : () -> List Symbol
+--R ?=? : (%,%) -> Boolean                bfKeys : () -> List(Symbol)
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   ?~=? : (%,%) -> Boolean
---R bfEntry : Symbol -> Record(zeros: Stream DoubleFloat,ones: Stream DoubleFloat,singularities: Stream DoubleFloat)
+--R bfEntry : Symbol -> Record(zeros: Stream(DoubleFloat),ones: Stream(DoubleFloat),singularities: Stream(DoubleFloat))
 --R
 --E 1
 
@@ -11795,7 +11846,7 @@ deq := D(y x, x, 2) + D(y x, x) + y x = 0
 --R         ,,       ,
 --R   (2)  y  (x) + y (x) + y(x)= 0
 --R
---R                                            Type: Equation Expression Integer
+--R                                          Type: Equation(Expression(Integer))
 --E 2
 
 --S 3 of 18
@@ -11807,7 +11858,7 @@ solve(deq, y, x)
 --R                                   x\|3      2     2    x\|3
 --R   (3)  [particular= 0,basis= [cos(-----)%e   ,%e   sin(-----)]]
 --R                                     2                    2
---RType: Union(Record(particular: Expression Integer,basis: List Expression Integer),...)
+--IType: Union(Record(particular: Expression(Integer),basis: ...
 --E 3
 
 --S 4 of 18
@@ -12843,7 +12894,7 @@ r + binary(6/7)
 --R    0.000000100111011, 0.000000100111,
 --R       ____________________________________________________
 --R    0.00000010011010100100001110011111011001010110111100011]
---R                                                   Type: List BinaryExpansion
+--R                                                  Type: List(BinaryExpansion)
 --E 3
 
 --S 4 of 7
@@ -12869,7 +12920,7 @@ p := binary(1/4)*x**2 + binary(2/3)*x + binary(4/9)
 --R
 --R             2     __      ______
 --R   (5)  0.01x  + 0.10x + 0.011100
---R                                             Type: Polynomial BinaryExpansion
+--R                                            Type: Polynomial(BinaryExpansion)
 --E 5
 
 --S 6 of 7
@@ -12878,7 +12929,7 @@ q := D(p, x)
 --R
 --R                 __
 --R   (6)  0.1x + 0.10
---R                                             Type: Polynomial BinaryExpansion
+--R                                            Type: Polynomial(BinaryExpansion)
 --E 6
 
 --S 7 of 7
@@ -12887,7 +12938,7 @@ g := gcd(p, q)
 --R
 --R              __
 --R   (7)  x + 1.01
---R                                             Type: Polynomial BinaryExpansion
+--R                                            Type: Polynomial(BinaryExpansion)
 --E 7
 )spool
 )lisp (bye)
@@ -13299,7 +13350,7 @@ lv := [8,3,5,4,6,2,1,5,7]
 --R 
 --R
 --R   (1)  [8,3,5,4,6,2,1,5,7]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 1
 
 --S 2 of 12
@@ -13307,7 +13358,7 @@ t := binarySearchTree lv
 --R 
 --R
 --R   (2)  [[[1,2,.],3,[4,5,[5,6,7]]],8,.]
---R                                       Type: BinarySearchTree PositiveInteger
+--R                                      Type: BinarySearchTree(PositiveInteger)
 --E 2
 
 --S 3 of 12
@@ -13315,7 +13366,7 @@ emptybst := empty()$BSTREE(INT)
 --R 
 --R
 --R   (3)  []
---R                                               Type: BinarySearchTree Integer
+--R                                              Type: BinarySearchTree(Integer)
 --E 3
 
 --S 4 of 12
@@ -13323,7 +13374,7 @@ t1 := insert!(8,emptybst)
 --R 
 --R
 --R   (4)  8
---R                                               Type: BinarySearchTree Integer
+--R                                              Type: BinarySearchTree(Integer)
 --E 4
 
 --S 5 of 12
@@ -13331,7 +13382,7 @@ insert!(3,t1)
 --R 
 --R
 --R   (5)  [3,8,.]
---R                                               Type: BinarySearchTree Integer
+--R                                              Type: BinarySearchTree(Integer)
 --E 5
 
 --S 6 of 12
@@ -13339,7 +13390,7 @@ leaves t
 --R 
 --R
 --R   (6)  [1,4,5,7]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 6
 
 --S 7 of 12
@@ -13347,7 +13398,7 @@ split(3,t)
 --R 
 --R
 --R   (7)  [less= [1,2,.],greater= [[.,3,[4,5,[5,6,7]]],8,.]]
---RType: Record(less: BinarySearchTree PositiveInteger,greater: BinarySearchTree PositiveInteger)
+--IType: Record(less: BinarySearchTree(PositiveInteger),greater: ...
 --E 7
 
 --S 8 of 12
@@ -13373,13 +13424,13 @@ buildFromRoot ls == reduce(insertRoot,ls,emptybst)
 --S 11 of 12
 rt := buildFromRoot reverse lv
 --R 
---R   Compiling function buildFromRoot with type List PositiveInteger -> 
---R      BinarySearchTree Integer 
---R   Compiling function insertRoot with type (Integer,BinarySearchTree 
---R      Integer) -> BinarySearchTree Integer 
+--R   Compiling function buildFromRoot with type List(PositiveInteger) -> 
+--R      BinarySearchTree(Integer) 
+--R   Compiling function insertRoot with type (Integer,BinarySearchTree(
+--R      Integer)) -> BinarySearchTree(Integer) 
 --R
 --R   (11)  [[[1,2,.],3,[4,5,[5,6,7]]],8,.]
---R                                               Type: BinarySearchTree Integer
+--R                                              Type: BinarySearchTree(Integer)
 --E 11
 
 --S 12 of 12
@@ -13646,21 +13697,22 @@ both BinaryTree(S)
 
 --S 1 of 1
 )show BinaryTournament
---R BinaryTournament S: OrderedSet  is a domain constructor
+--R 
+--R BinaryTournament(S: OrderedSet)  is a domain constructor
 --R Abbreviation for BinaryTournament is BTOURN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for BTOURN 
 --R
 --R------------------------------- Operations --------------------------------
---R binaryTournament : List S -> %        children : % -> List %
+--R binaryTournament : List(S) -> %       children : % -> List(%)
 --R copy : % -> %                         cyclic? : % -> Boolean
 --R distance : (%,%) -> Integer           ?.right : (%,right) -> %
 --R ?.left : (%,left) -> %                ?.value : (%,value) -> S
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                insert! : (S,%) -> %
---R leaf? : % -> Boolean                  leaves : % -> List S
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
 --R left : % -> %                         map : ((S -> S),%) -> %
---R node : (%,S,%) -> %                   nodes : % -> List %
+--R node : (%,S,%) -> %                   nodes : % -> List(%)
 --R right : % -> %                        sample : () -> %
 --R value : % -> S                       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -13670,21 +13722,21 @@ both BinaryTree(S)
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R parts : % -> List(S) if $ has finiteAggregate
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,right,%) -> % if $ has shallowlyMutable
 --R setelt : (%,left,%) -> % if $ has shallowlyMutable
 --R setelt : (%,value,S) -> S if $ has shallowlyMutable
@@ -13826,21 +13878,22 @@ BinaryTournament(S: OrderedSet): Exports == Implementation where
 
 --S 1 of 1
 )show BinaryTree
---R BinaryTree S: SetCategory  is a domain constructor
+--R 
+--R BinaryTree(S: SetCategory)  is a domain constructor
 --R Abbreviation for BinaryTree is BTREE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for BTREE 
 --R
 --R------------------------------- Operations --------------------------------
 --R binaryTree : (%,S,%) -> %             binaryTree : S -> %
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                distance : (%,%) -> Integer
 --R ?.right : (%,right) -> %              ?.left : (%,left) -> %
 --R ?.value : (%,value) -> S              empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R leaf? : % -> Boolean                  leaves : % -> List S
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
 --R left : % -> %                         map : ((S -> S),%) -> %
---R node : (%,S,%) -> %                   nodes : % -> List %
+--R node : (%,S,%) -> %                   nodes : % -> List(%)
 --R right : % -> %                        sample : () -> %
 --R value : % -> S                       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -13850,21 +13903,21 @@ BinaryTournament(S: OrderedSet): Exports == Implementation where
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R parts : % -> List(S) if $ has finiteAggregate
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,right,%) -> % if $ has shallowlyMutable
 --R setelt : (%,left,%) -> % if $ has shallowlyMutable
 --R setelt : (%,value,S) -> S if $ has shallowlyMutable
@@ -14022,6 +14075,7 @@ BinaryTree(S: SetCategory): Exports == Implementation where
 
 --S 1 of 1
 )show Bits
+--R 
 --R Bits  is a domain constructor
 --R Abbreviation for Bits is BITS 
 --R This constructor is exposed in this frame.
@@ -14034,13 +14088,13 @@ BinaryTree(S: SetCategory): Exports == Implementation where
 --R ?\/? : (%,%) -> %                     ^? : % -> %
 --R ?and? : (%,%) -> %                    coerce : % -> OutputForm
 --R concat : (%,Boolean) -> %             concat : (Boolean,%) -> %
---R concat : (%,%) -> %                   concat : List % -> %
---R construct : List Boolean -> %         copy : % -> %
+--R concat : (%,%) -> %                   concat : List(%) -> %
+--R construct : List(Boolean) -> %        copy : % -> %
 --R delete : (%,Integer) -> %             ?.? : (%,Integer) -> Boolean
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Boolean           eq? : (%,%) -> Boolean
+--R entries : % -> List(Boolean)          eq? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R latex : % -> String                   max : (%,%) -> %
 --R min : (%,%) -> %                      nand : (%,%) -> %
 --R nor : (%,%) -> %                      not? : % -> %
@@ -14051,18 +14105,18 @@ BinaryTree(S: SetCategory): Exports == Implementation where
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((Boolean -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R bits : (NonNegativeInteger,Boolean) -> %
---R convert : % -> InputForm if Boolean has KONVERT INFORM
+--R convert : % -> InputForm if Boolean has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : ((Boolean -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Boolean,%) -> NonNegativeInteger if $ has finiteAggregate and Boolean has SETCAT
---R delete : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
 --R elt : (%,Integer,Boolean) -> Boolean
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (Boolean,%) -> Boolean if $ has finiteAggregate and Boolean has SETCAT
---R eval : (%,List Equation Boolean) -> % if Boolean has EVALAB BOOLEAN and Boolean has SETCAT
---R eval : (%,Equation Boolean) -> % if Boolean has EVALAB BOOLEAN and Boolean has SETCAT
---R eval : (%,Boolean,Boolean) -> % if Boolean has EVALAB BOOLEAN and Boolean has SETCAT
---R eval : (%,List Boolean,List Boolean) -> % if Boolean has EVALAB BOOLEAN and Boolean has SETCAT
+--R eval : (%,List(Equation(Boolean))) -> % if Boolean has EVALAB(BOOLEAN) and Boolean has SETCAT
+--R eval : (%,Equation(Boolean)) -> % if Boolean has EVALAB(BOOLEAN) and Boolean has SETCAT
+--R eval : (%,Boolean,Boolean) -> % if Boolean has EVALAB(BOOLEAN) and Boolean has SETCAT
+--R eval : (%,List(Boolean),List(Boolean)) -> % if Boolean has EVALAB(BOOLEAN) and Boolean has SETCAT
 --R every? : ((Boolean -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,Boolean) -> % if $ has shallowlyMutable
 --R find : ((Boolean -> Boolean),%) -> Union(Boolean,"failed")
@@ -14074,13 +14128,13 @@ BinaryTree(S: SetCategory): Exports == Implementation where
 --R map! : ((Boolean -> Boolean),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Boolean,%) -> Boolean if $ has finiteAggregate and Boolean has SETCAT
---R members : % -> List Boolean if $ has finiteAggregate
+--R members : % -> List(Boolean) if $ has finiteAggregate
 --R merge : (((Boolean,Boolean) -> Boolean),%,%) -> %
 --R merge : (%,%) -> % if Boolean has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,Boolean) -> %
---R parts : % -> List Boolean if $ has finiteAggregate
+--R parts : % -> List(Boolean) if $ has finiteAggregate
 --R position : ((Boolean -> Boolean),%) -> Integer
 --R position : (Boolean,%) -> Integer if Boolean has SETCAT
 --R position : (Boolean,%,Integer) -> Integer if Boolean has SETCAT
@@ -14094,7 +14148,7 @@ BinaryTree(S: SetCategory): Exports == Implementation where
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((Boolean -> Boolean),%) -> % if $ has finiteAggregate
 --R setelt : (%,Integer,Boolean) -> Boolean if $ has shallowlyMutable
---R setelt : (%,UniversalSegment Integer,Boolean) -> Boolean if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),Boolean) -> Boolean if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : (((Boolean,Boolean) -> Boolean),%) -> %
 --R sort : % -> % if Boolean has ORDSET
@@ -14241,6 +14295,7 @@ Bits(): Exports == Implementation where
 
 --S 1 of 1
 )show BlowUpWithHamburgerNoether
+--R 
 --R BlowUpWithHamburgerNoether  is a domain constructor
 --R Abbreviation for BlowUpWithHamburgerNoether is BLHN 
 --R This constructor is exposed in this frame.
@@ -14248,7 +14303,7 @@ Bits(): Exports == Implementation where
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                chartCoord : % -> Integer
---R coerce : List Integer -> %            coerce : % -> OutputForm
+--R coerce : List(Integer) -> %           coerce : % -> OutputForm
 --R excepCoord : % -> Integer             hash : % -> SingleInteger
 --R infClsPt? : % -> Boolean              latex : % -> String
 --R quotValuation : % -> Integer          ramifMult : % -> Integer
@@ -14347,6 +14402,7 @@ BlowUpWithHamburgerNoether: Exports == Implementation where
 
 --S 1 of 1
 )show BlowUpWithQuadTrans
+--R 
 --R BlowUpWithQuadTrans  is a domain constructor
 --R Abbreviation for BlowUpWithQuadTrans is BLQT 
 --R This constructor is exposed in this frame.
@@ -14354,7 +14410,7 @@ BlowUpWithHamburgerNoether: Exports == Implementation where
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                chartCoord : % -> Integer
---R coerce : List Integer -> %            coerce : % -> OutputForm
+--R coerce : List(Integer) -> %           coerce : % -> OutputForm
 --R excepCoord : % -> Integer             hash : % -> SingleInteger
 --R infClsPt? : % -> Boolean              latex : % -> String
 --R quotValuation : % -> Integer          ramifMult : % -> Integer
@@ -14726,7 +14782,7 @@ countable? A1
 --R 
 --R
 --R   (12)  [4,Aleph(1)]
---R                                                    Type: List CardinalNumber
+--R                                                   Type: List(CardinalNumber)
 --E 12
 
 --S 13 of 20
@@ -14734,7 +14790,7 @@ countable? A1
 --R 
 --R
 --R   (13)  [0,2,4,0,Aleph(1),Aleph(1),Aleph(1)]
---R                                                    Type: List CardinalNumber
+--R                                                   Type: List(CardinalNumber)
 --E 13
 
 --S 14 of 20
@@ -14742,7 +14798,7 @@ countable? A1
 --R 
 --R
 --R   (14)  [1,2,4,1,Aleph(1),Aleph(1)]
---R                                                    Type: List CardinalNumber
+--R                                                   Type: List(CardinalNumber)
 --E 14
 
 --S 15 of 20
@@ -14750,7 +14806,7 @@ countable? A1
 --R 
 --R
 --R   (15)  [1,0,"failed",Aleph(1),Aleph(1),"failed"]
---R                                    Type: List Union(CardinalNumber,"failed")
+--R                                   Type: List(Union(CardinalNumber,"failed"))
 --E 15
 
 --S 16 of 20
@@ -14766,7 +14822,7 @@ generalizedContinuumHypothesisAssumed true
 --R 
 --R
 --R   (17)  [0,1,Aleph(1),Aleph(1),Aleph(2),Aleph(1),Aleph(2)]
---R                                                    Type: List CardinalNumber
+--R                                                   Type: List(CardinalNumber)
 --E 17
 
 --S 18 of 20
@@ -15355,7 +15411,7 @@ Tmv = m * v
 --R 
 --R
 --R   (19)  [11,32]= [11,32]
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 19
 
 --S 20 of 48
@@ -15465,7 +15521,7 @@ contract(Tmn,1,2) = trace(m) * n
 --R         +12  18+  +12  18+
 --R   (32)  |      |= |      |
 --R         +0   6 +  +0   6 +
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 32
 
 --S 33 of 48
@@ -15475,7 +15531,7 @@ contract(Tmn,1,3) = transpose(m) * n
 --R         +2  7 +  +2  7 +
 --R   (33)  |     |= |     |
 --R         +4  11+  +4  11+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 33
 
 --S 34 of 48
@@ -15485,7 +15541,7 @@ contract(Tmn,1,4) = transpose(m) * transpose(n)
 --R         +14  4+  +14  4+
 --R   (34)  |     |= |     |
 --R         +19  5+  +19  5+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 34
 
 --S 35 of 48
@@ -15495,7 +15551,7 @@ contract(Tmn,2,3) = m * n
 --R         +2  5 +  +2  5 +
 --R   (35)  |     |= |     |
 --R         +8  17+  +8  17+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 35
 
 --S 36 of 48
@@ -15505,7 +15561,7 @@ contract(Tmn,2,4) = m * transpose(n)
 --R         +8   2+  +8   2+
 --R   (36)  |     |= |     |
 --R         +23  5+  +23  5+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 36
 
 --S 37 of 48
@@ -15515,7 +15571,7 @@ contract(Tmn,3,4) = trace(n) * m
 --R         +3   6 +  +3   6 +
 --R   (37)  |      |= |      |
 --R         +12  15+  +12  15+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 37
 
 --S 38 of 48
@@ -15553,7 +15609,7 @@ transpose Tm = transpose m
 --R         +1  4+  +1  4+
 --R   (40)  |    |= |    |
 --R         +2  5+  +2  5+
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 40
 
 --S 41 of 48
@@ -15623,7 +15679,7 @@ contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2])
 --R         |+8   10+  +0  0+|  |+8   10+  +0  0+|
 --R         ||      |  |    ||  ||      |  |    ||
 --R         ++12  15+  +4  5++  ++12  15+  +4  5++
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 46
 
 --S 47 of 48
@@ -15641,7 +15697,7 @@ contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m
 --R 
 --R
 --R   (48)  - 6= - 6
---R                                  Type: Equation CartesianTensor(1,2,Integer)
+--R                                 Type: Equation(CartesianTensor(1,2,Integer))
 --E 48
 )spool
 )lisp (bye)
@@ -16783,7 +16839,7 @@ chars := [char "a", char "A", char "X", char "8", char "+"]
 --R 
 --R
 --R   (1)  [a,A,X,8,+]
---R                                                         Type: List Character
+--R                                                        Type: List(Character)
 --E 1
 
 --S 2 of 13
@@ -16815,7 +16871,7 @@ escape()
 --R 
 --R
 --R   (5)  [97,65,88,56,43]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 5
 
 --S 6 of 13
@@ -16823,7 +16879,7 @@ escape()
 --R 
 --R
 --R   (6)  [A,A,X,8,+]
---R                                                         Type: List Character
+--R                                                        Type: List(Character)
 --E 6
 
 --S 7 of 13
@@ -16831,7 +16887,7 @@ escape()
 --R 
 --R
 --R   (7)  [a,a,x,8,+]
---R                                                         Type: List Character
+--R                                                        Type: List(Character)
 --E 7
 
 --S 8 of 13
@@ -16839,7 +16895,7 @@ escape()
 --R 
 --R
 --R   (8)  [true,true,true,false,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 8
 
 --S 9 of 13
@@ -16847,7 +16903,7 @@ escape()
 --R 
 --R
 --R   (9)  [false,true,true,false,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 9
 
 --S 10 of 13
@@ -16855,7 +16911,7 @@ escape()
 --R 
 --R
 --R   (10)  [true,false,false,false,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 10
 
 --S 11 of 13
@@ -16863,7 +16919,7 @@ escape()
 --R 
 --R
 --R   (11)  [false,false,false,true,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 11
 
 --S 12 of 13
@@ -16871,7 +16927,7 @@ escape()
 --R 
 --R
 --R   (12)  [true,true,false,true,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 12
 
 --S 13 of 13
@@ -16879,7 +16935,7 @@ escape()
 --R 
 --R
 --R   (13)  [true,true,true,true,false]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 13
 )spool
 )lisp (bye)
@@ -17786,7 +17842,7 @@ $\mathbb{R}_{m,m}$      & --------$>$ & $\mathbb{R}^{4^m}$ \\
 K := Fraction Polynomial Integer
 --R 
 --R
---R   (1)  Fraction Polynomial Integer
+--R   (1)  Fraction(Polynomial(Integer))
 --R                                                                 Type: Domain
 --E 1
 
@@ -17795,14 +17851,14 @@ m := matrix [ [-1] ]
 --R 
 --R
 --R   (2)  [- 1]
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 2
 
 --S 3 of 36
 C := CliffordAlgebra(1, K, quadraticForm m)
 --R 
 --R
---R   (3)  CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
+--R   (3)  CliffordAlgebra(1,Fraction(Polynomial(Integer)),[[-1]])
 --R                                                                 Type: Domain
 --E 3
 
@@ -17812,7 +17868,7 @@ i: C := e(1)
 --R
 --R   (4)  e
 --R         1
---R                  Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
+--R                Type: CliffordAlgebra(1,Fraction(Polynomial(Integer)),[[-1]])
 --E 4
 
 --S 5 of 36
@@ -17821,7 +17877,7 @@ x := a + b * i
 --R
 --R   (5)  a + b e
 --R               1
---R                  Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
+--R                Type: CliffordAlgebra(1,Fraction(Polynomial(Integer)),[[-1]])
 --E 5
 
 --S 6 of 36
@@ -17830,7 +17886,7 @@ y := c + d * i
 --R
 --R   (6)  c + d e
 --R               1
---R                  Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
+--R                Type: CliffordAlgebra(1,Fraction(Polynomial(Integer)),[[-1]])
 --E 6
 
 --S 7 of 36
@@ -17839,7 +17895,7 @@ x * y
 --R
 --R   (7)  - b d + a c + (a d + b c)e
 --R                                  1
---R                  Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
+--R                Type: CliffordAlgebra(1,Fraction(Polynomial(Integer)),[[-1]])
 --E 7
 )clear all
  
@@ -17847,7 +17903,7 @@ x * y
 K := Fraction Polynomial Integer
 --R 
 --R
---R   (1)  Fraction Polynomial Integer
+--R   (1)  Fraction(Polynomial(Integer))
 --R                                                                 Type: Domain
 --E 8
 
@@ -17858,14 +17914,14 @@ m := matrix [ [-1,0],[0,-1] ]
 --R        +- 1   0 +
 --R   (2)  |        |
 --R        + 0   - 1+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 9
 
 --S 10 of 36
 H  := CliffordAlgebra(2, K, quadraticForm m)
 --R 
 --R
---R   (3)  CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R   (3)  CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --R                                                                 Type: Domain
 --E 10
 
@@ -17875,7 +17931,7 @@ i: H  := e(1)
 --R
 --R   (4)  e
 --R         1
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 11
 
 --S 12 of 36
@@ -17884,7 +17940,7 @@ j: H  := e(2)
 --R
 --R   (5)  e
 --R         2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 12
 
 --S 13 of 36
@@ -17893,7 +17949,7 @@ k: H  := i * j
 --R
 --R   (6)  e e
 --R         1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 13
 
 --S 14 of 36
@@ -17902,7 +17958,7 @@ x := a + b * i + c * j + d * k
 --R
 --R   (7)  a + b e  + c e  + d e e
 --R               1      2      1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 14
 
 --S 15 of 36
@@ -17911,7 +17967,7 @@ y := e + f * i + g * j + h * k
 --R
 --R   (8)  e + f e  + g e  + h e e
 --R               1      2      1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 15
 
 --S 16 of 36
@@ -17920,7 +17976,7 @@ x + y
 --R
 --R   (9)  e + a + (f + b)e  + (g + c)e  + (h + d)e e
 --R                        1           2           1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 16
 
 --S 17 of 36
@@ -17933,7 +17989,7 @@ x * y
 --R   + 
 --R     (- b h + a g + d f + c e)e  + (a h + b g - c f + d e)e e
 --R                               2                           1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 17
 
 --S 18 of 36
@@ -17946,7 +18002,7 @@ y * x
 --R   + 
 --R     (b h + a g - d f + c e)e  + (a h - b g + c f + d e)e e
 --R                             2                           1 2
---R                  Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
+--R       Type: CliffordAlgebra(2,Fraction(Polynomial(Integer)),[[-1,0],[0,-1]])
 --E 18
 )clear all
  
@@ -17954,7 +18010,7 @@ y * x
 K := Fraction Polynomial Integer
 --R 
 --R
---R   (1)  Fraction Polynomial Integer
+--R   (1)  Fraction(Polynomial(Integer))
 --R                                                                 Type: Domain
 --E 19
 
@@ -17962,7 +18018,8 @@ K := Fraction Polynomial Integer
 Ext := CliffordAlgebra(3, K, quadraticForm 0)
 --R 
 --R
---R   (2)  CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--R   (2)
+--R   CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --R                                                                 Type: Domain
 --E 20
 
@@ -17972,7 +18029,7 @@ i: Ext := e(1)
 --R
 --R   (3)  e
 --R         1
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 21
 
 --S 22 of 36
@@ -17981,7 +18038,7 @@ j: Ext := e(2)
 --R
 --R   (4)  e
 --R         2
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 22
 
 --S 23 of 36
@@ -17990,7 +18047,7 @@ k: Ext := e(3)
 --R
 --R   (5)  e
 --R         3
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 23
 
 --S 24 of 36
@@ -17999,7 +18056,7 @@ x := x1*i + x2*j + x3*k
 --R
 --R   (6)  x1 e  + x2 e  + x3 e
 --R            1       2       3
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 24
 
 --S 25 of 36
@@ -18008,7 +18065,7 @@ y := y1*i + y2*j + y3*k
 --R
 --R   (7)  y1 e  + y2 e  + y3 e
 --R            1       2       3
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 25
 
 --S 26 of 36
@@ -18017,7 +18074,7 @@ x + y
 --R
 --R   (8)  (y1 + x1)e  + (y2 + x2)e  + (y3 + x3)e
 --R                  1             2             3
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 26
 
 --S 27 of 36
@@ -18025,7 +18082,7 @@ x * y + y * x
 --R 
 --R
 --R   (9)  0
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 27
 
 --S 28 of 36
@@ -18037,13 +18094,14 @@ dual2 a == coefficient(a,[2,3]) * i + coefficient(a,[3,1]) * j + coefficient(a,[
 --S 29 of 36
 dual2(x*y)
 --R 
---R   Compiling function dual2 with type CliffordAlgebra(3,Fraction 
---R      Polynomial Integer,MATRIX) -> CliffordAlgebra(3,Fraction 
---R      Polynomial Integer,MATRIX) 
+--R   Compiling function dual2 with type CliffordAlgebra(3,Fraction(
+--R      Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]]) -> 
+--R      CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],
+--R      [0,0,0]]) 
 --R
 --R   (11)  (x2 y3 - x3 y2)e  + (- x1 y3 + x3 y1)e  + (x1 y2 - x2 y1)e
 --R                         1                     2                   3
---R                  Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
+--RType: CliffordAlgebra(3,Fraction(Polynomial(Integer)),[[0,0,0],[0,0,0],[0,0,0]])
 --E 29
 )clear all
  
@@ -18051,7 +18109,7 @@ dual2(x*y)
 K := Fraction Integer
 --R 
 --R
---R   (1)  Fraction Integer
+--R   (1)  Fraction(Integer)
 --R                                                                 Type: Domain
 --E 30
 
@@ -18066,14 +18124,16 @@ g := matrix [ [1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1] ]
 --R        |0   0   - 1   0 |
 --R        |                |
 --R        +0   0    0   - 1+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 31
 
 --S 32 of 36
 D := CliffordAlgebra(4,K, quadraticForm g)
 --R 
 --R
---R   (3)  CliffordAlgebra(4,Fraction Integer,MATRIX)
+--R   (3)
+--R  CliffordAlgebra(4,Fraction(Integer),[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-
+--R  1]])
 --R                                                                 Type: Domain
 --E 32
 
@@ -18083,7 +18143,7 @@ gam := [e(i)$D for i in 1..4]
 --R
 --R   (4)  [e ,e ,e ,e ]
 --R          1  2  3  4
---R                        Type: List CliffordAlgebra(4,Fraction Integer,MATRIX)
+--RType: List(CliffordAlgebra(4,Fraction(Integer),[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]]))
 --E 33
 
 --S 34 of 36
@@ -18099,7 +18159,7 @@ lhs := reduce(+, [reduce(+, [ g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) f
 --R
 --R   (6)  - 4e e e e
 --R            1 2 3 4
---R                             Type: CliffordAlgebra(4,Fraction Integer,MATRIX)
+--RType: CliffordAlgebra(4,Fraction(Integer),[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]])
 --E 35
 
 --S 36 of 36
@@ -18108,7 +18168,7 @@ rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s)
 --R
 --R   (7)  - 4e e e e
 --R            1 2 3 4
---R                             Type: CliffordAlgebra(4,Fraction Integer,MATRIX)
+--RType: CliffordAlgebra(4,Fraction(Integer),[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]])
 --E 36
 )spool
 )lisp (bye)
@@ -18925,7 +18985,7 @@ a := complex(4/3,5/2)
 --R        4   5
 --R   (1)  - + - %i
 --R        3   2
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 1
 
 --S 2 of 16
@@ -18935,7 +18995,7 @@ b := complex(4/3,-5/2)
 --R        4   5
 --R   (2)  - - - %i
 --R        3   2
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 2
 
 --S 3 of 16
@@ -18945,7 +19005,7 @@ a + b
 --R        8
 --R   (3)  -
 --R        3
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 3
 
 --S 4 of 16
@@ -18953,7 +19013,7 @@ a - b
 --R 
 --R
 --R   (4)  5%i
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 4
 
 --S 5 of 16
@@ -18963,7 +19023,7 @@ a * b
 --R        289
 --R   (5)  ---
 --R         36
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 5
 
 --S 6 of 16
@@ -18973,7 +19033,7 @@ a / b
 --R          161   240
 --R   (6)  - --- + --- %i
 --R          289   289
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 6
 
 --S 7 of 16
@@ -18983,7 +19043,7 @@ a / b
 --R        - 15 + 8%i
 --R   (7)  ----------
 --R         15 + 8%i
---R                                               Type: Fraction Complex Integer
+--R                                             Type: Fraction(Complex(Integer))
 --E 7
 
 --S 8 of 16
@@ -18991,7 +19051,7 @@ a / b
 --R 
 --R
 --R   (8)  3.4 + 6.7 %i
---R                                                          Type: Complex Float
+--R                                                         Type: Complex(Float)
 --E 8
 
 --S 9 of 16
@@ -19001,7 +19061,7 @@ conjugate a
 --R        4   5
 --R   (9)  - - - %i
 --R        3   2
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 9
 
 --S 10 of 16
@@ -19011,7 +19071,7 @@ norm a
 --R         289
 --R   (10)  ---
 --R          36
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 10
 
 --S 11 of 16
@@ -19021,7 +19081,7 @@ real a
 --R         4
 --R   (11)  -
 --R         3
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 16
@@ -19031,7 +19091,7 @@ imag a
 --R         5
 --R   (12)  -
 --R         2
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 12
 
 --S 13 of 16
@@ -19039,7 +19099,7 @@ gcd(13 - 13*%i,31 + 27*%i)
 --R 
 --R
 --R   (13)  5 + %i
---R                                                        Type: Complex Integer
+--R                                                       Type: Complex(Integer)
 --E 13
 
 --S 14 of 16
@@ -19047,7 +19107,7 @@ lcm(13 - 13*%i,31 + 27*%i)
 --R 
 --R
 --R   (14)  143 - 39%i
---R                                                        Type: Complex Integer
+--R                                                       Type: Complex(Integer)
 --E 14
 
 --S 15 of 16
@@ -19055,7 +19115,7 @@ factor(13 - 13*%i)
 --R 
 --R
 --R   (15)  - (1 + %i)(2 + 3%i)(3 + 2%i)
---R                                               Type: Factored Complex Integer
+--R                                             Type: Factored(Complex(Integer))
 --E 15
 
 --S 16 of 16
@@ -19064,7 +19124,7 @@ factor complex(2,0)
 --R
 --R                      2
 --R   (16)  - %i (1 + %i)
---R                                               Type: Factored Complex Integer
+--R                                             Type: Factored(Complex(Integer))
 --E 16
 )spool
 )lisp (bye)
@@ -19439,6 +19499,7 @@ Complex(R:CommutativeRing): ComplexCategory(R) with
 
 --S 1 of 6
 )show ComplexDoubleFloatMatrix
+--R 
 --R ComplexDoubleFloatMatrix  is a domain constructor
 --R Abbreviation for ComplexDoubleFloatMatrix is CDFMAT 
 --R This constructor is exposed in this frame.
@@ -19449,7 +19510,7 @@ Complex(R:CommutativeRing): ComplexCategory(R) with
 --R ?+? : (%,%) -> %                      -? : % -> %
 --R ?-? : (%,%) -> %                      antisymmetric? : % -> Boolean
 --R copy : % -> %                         diagonal? : % -> Boolean
---R diagonalMatrix : List % -> %          empty : () -> %
+--R diagonalMatrix : List(%) -> %         empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R horizConcat : (%,%) -> %              maxColIndex : % -> Integer
 --R maxRowIndex : % -> Integer            minColIndex : % -> Integer
@@ -19461,60 +19522,60 @@ Complex(R:CommutativeRing): ComplexCategory(R) with
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?*? : (ComplexDoubleFloatVector,%) -> ComplexDoubleFloatVector
 --R ?*? : (%,ComplexDoubleFloatVector) -> ComplexDoubleFloatVector
---R ?*? : (%,Complex DoubleFloat) -> %
---R ?*? : (Complex DoubleFloat,%) -> %
---R ?**? : (%,Integer) -> % if Complex DoubleFloat has FIELD
+--R ?*? : (%,Complex(DoubleFloat)) -> %
+--R ?*? : (Complex(DoubleFloat),%) -> %
+--R ?**? : (%,Integer) -> % if Complex(DoubleFloat) has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
---R ?/? : (%,Complex DoubleFloat) -> % if Complex DoubleFloat has FIELD
---R ?=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT
---R any? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R ?/? : (%,Complex(DoubleFloat)) -> % if Complex(DoubleFloat) has FIELD
+--R ?=? : (%,%) -> Boolean if Complex(DoubleFloat) has SETCAT
+--R any? : ((Complex(DoubleFloat) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : ComplexDoubleFloatVector -> %
---R coerce : % -> OutputForm if Complex DoubleFloat has SETCAT
+--R coerce : % -> OutputForm if Complex(DoubleFloat) has SETCAT
 --R column : (%,Integer) -> ComplexDoubleFloatVector
---R columnSpace : % -> List ComplexDoubleFloatVector if Complex DoubleFloat has EUCDOM
---R count : (Complex DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R count : ((Complex DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R determinant : % -> Complex DoubleFloat if Complex DoubleFloat has commutative *
---R diagonalMatrix : List Complex DoubleFloat -> %
---R elt : (%,List Integer,List Integer) -> %
---R elt : (%,Integer,Integer,Complex DoubleFloat) -> Complex DoubleFloat
---R elt : (%,Integer,Integer) -> Complex DoubleFloat
---R eval : (%,List Complex DoubleFloat,List Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,Complex DoubleFloat,Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,List Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R every? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
---R exquo : (%,Complex DoubleFloat) -> Union(%,"failed") if Complex DoubleFloat has INTDOM
---R fill! : (%,Complex DoubleFloat) -> %
---R hash : % -> SingleInteger if Complex DoubleFloat has SETCAT
---R inverse : % -> Union(%,"failed") if Complex DoubleFloat has FIELD
---R latex : % -> String if Complex DoubleFloat has SETCAT
+--R columnSpace : % -> List(ComplexDoubleFloatVector) if Complex(DoubleFloat) has EUCDOM
+--R count : (Complex(DoubleFloat),%) -> NonNegativeInteger if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R count : ((Complex(DoubleFloat) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
+--R determinant : % -> Complex(DoubleFloat) if Complex(DoubleFloat) has commutative(*)
+--R diagonalMatrix : List(Complex(DoubleFloat)) -> %
+--R elt : (%,List(Integer),List(Integer)) -> %
+--R elt : (%,Integer,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat)
+--R elt : (%,Integer,Integer) -> Complex(DoubleFloat)
+--R eval : (%,List(Complex(DoubleFloat)),List(Complex(DoubleFloat))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,Complex(DoubleFloat),Complex(DoubleFloat)) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,Equation(Complex(DoubleFloat))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,List(Equation(Complex(DoubleFloat)))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R every? : ((Complex(DoubleFloat) -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R exquo : (%,Complex(DoubleFloat)) -> Union(%,"failed") if Complex(DoubleFloat) has INTDOM
+--R fill! : (%,Complex(DoubleFloat)) -> %
+--R hash : % -> SingleInteger if Complex(DoubleFloat) has SETCAT
+--R inverse : % -> Union(%,"failed") if Complex(DoubleFloat) has FIELD
+--R latex : % -> String if Complex(DoubleFloat) has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
---R listOfLists : % -> List List Complex DoubleFloat
---R map : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,%,Complex DoubleFloat) -> %
---R map : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,%) -> %
---R map : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> %
---R map! : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> %
---R matrix : List List Complex DoubleFloat -> %
---R member? : (Complex DoubleFloat,%) -> Boolean if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R members : % -> List Complex DoubleFloat if $ has finiteAggregate
---R minordet : % -> Complex DoubleFloat if Complex DoubleFloat has commutative *
+--R listOfLists : % -> List(List(Complex(DoubleFloat)))
+--R map : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%,%,Complex(DoubleFloat)) -> %
+--R map : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%,%) -> %
+--R map : ((Complex(DoubleFloat) -> Complex(DoubleFloat)),%) -> %
+--R map! : ((Complex(DoubleFloat) -> Complex(DoubleFloat)),%) -> %
+--R matrix : List(List(Complex(DoubleFloat))) -> %
+--R member? : (Complex(DoubleFloat),%) -> Boolean if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R members : % -> List(Complex(DoubleFloat)) if $ has finiteAggregate
+--R minordet : % -> Complex(DoubleFloat) if Complex(DoubleFloat) has commutative(*)
 --R more? : (%,NonNegativeInteger) -> Boolean
---R new : (NonNegativeInteger,NonNegativeInteger,Complex DoubleFloat) -> %
---R nullSpace : % -> List ComplexDoubleFloatVector if Complex DoubleFloat has INTDOM
---R nullity : % -> NonNegativeInteger if Complex DoubleFloat has INTDOM
---R parts : % -> List Complex DoubleFloat
---R pfaffian : % -> Complex DoubleFloat if Complex DoubleFloat has COMRING
---R qelt : (%,Integer,Integer) -> Complex DoubleFloat
---R qsetelt! : (%,Integer,Integer,Complex DoubleFloat) -> Complex DoubleFloat
---R rank : % -> NonNegativeInteger if Complex DoubleFloat has INTDOM
+--R new : (NonNegativeInteger,NonNegativeInteger,Complex(DoubleFloat)) -> %
+--R nullSpace : % -> List(ComplexDoubleFloatVector) if Complex(DoubleFloat) has INTDOM
+--R nullity : % -> NonNegativeInteger if Complex(DoubleFloat) has INTDOM
+--R parts : % -> List(Complex(DoubleFloat))
+--R pfaffian : % -> Complex(DoubleFloat) if Complex(DoubleFloat) has COMRING
+--R qelt : (%,Integer,Integer) -> Complex(DoubleFloat)
+--R qsetelt! : (%,Integer,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat)
+--R rank : % -> NonNegativeInteger if Complex(DoubleFloat) has INTDOM
 --R row : (%,Integer) -> ComplexDoubleFloatVector
---R rowEchelon : % -> % if Complex DoubleFloat has EUCDOM
---R scalarMatrix : (NonNegativeInteger,Complex DoubleFloat) -> %
+--R rowEchelon : % -> % if Complex(DoubleFloat) has EUCDOM
+--R scalarMatrix : (NonNegativeInteger,Complex(DoubleFloat)) -> %
 --R setColumn! : (%,Integer,ComplexDoubleFloatVector) -> %
 --R setRow! : (%,Integer,ComplexDoubleFloatVector) -> %
---R setelt : (%,List Integer,List Integer,%) -> %
---R setelt : (%,Integer,Integer,Complex DoubleFloat) -> Complex DoubleFloat
+--R setelt : (%,List(Integer),List(Integer),%) -> %
+--R setelt : (%,Integer,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R setsubMatrix! : (%,Integer,Integer,%) -> %
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R subMatrix : (%,Integer,Integer,Integer,Integer) -> %
@@ -19522,7 +19583,7 @@ Complex(R:CommutativeRing): ComplexCategory(R) with
 --R swapRows! : (%,Integer,Integer) -> %
 --R transpose : ComplexDoubleFloatVector -> %
 --R zero : (NonNegativeInteger,NonNegativeInteger) -> %
---R ?~=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT
+--R ?~=? : (%,%) -> Boolean if Complex(DoubleFloat) has SETCAT
 --R
 --E 1
  
@@ -19539,7 +19600,7 @@ a:CDFMAT:=qnew(2,3)
 qsetelt!(a,1,1,1.0+2*%i)
 --R
 --R   (2)  1. + 2. %i
---R                                                    Type: Complex DoubleFloat
+--R                                                   Type: Complex(DoubleFloat)
 --E 3
 
 --S 4 of 6
@@ -19555,7 +19616,7 @@ a
 qsetelt!(a,0,0,2.0+4*%i)
 --R
 --R   (4)  2. + 4. %i
---R                                                    Type: Complex DoubleFloat
+--R                                                   Type: Complex(DoubleFloat)
 --E 5
 
 --S 6 of 6
@@ -19755,103 +19816,104 @@ ComplexDoubleFloatMatrix : MatrixCategory(Complex DoubleFloat,
 
 --S 1 of 6
 )show ComplexDoubleFloatVector
+--R 
 --R ComplexDoubleFloatVector  is a domain constructor
 --R Abbreviation for ComplexDoubleFloatVector is CDFVEC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for CDFVEC 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R copy : % -> %                         delete : (%,Integer) -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R qnew : Integer -> %                   reverse : % -> %
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
---R ?*? : (%,Complex DoubleFloat) -> % if Complex DoubleFloat has MONOID
---R ?*? : (Complex DoubleFloat,%) -> % if Complex DoubleFloat has MONOID
---R ?*? : (Integer,%) -> % if Complex DoubleFloat has ABELGRP
---R ?+? : (%,%) -> % if Complex DoubleFloat has ABELSG
---R ?-? : (%,%) -> % if Complex DoubleFloat has ABELGRP
---R -? : % -> % if Complex DoubleFloat has ABELGRP
---R ?<? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET
---R ?<=? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET
---R ?=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT
---R ?>? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET
---R ?>=? : (%,%) -> Boolean if Complex DoubleFloat has ORDSET
---R any? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
---R coerce : % -> OutputForm if Complex DoubleFloat has SETCAT
---R concat : (Complex DoubleFloat,%) -> %
---R concat : (%,Complex DoubleFloat) -> %
---R construct : List Complex DoubleFloat -> %
---R convert : % -> InputForm if Complex DoubleFloat has KONVERT INFORM
+--R ?*? : (%,Complex(DoubleFloat)) -> % if Complex(DoubleFloat) has MONOID
+--R ?*? : (Complex(DoubleFloat),%) -> % if Complex(DoubleFloat) has MONOID
+--R ?*? : (Integer,%) -> % if Complex(DoubleFloat) has ABELGRP
+--R ?+? : (%,%) -> % if Complex(DoubleFloat) has ABELSG
+--R ?-? : (%,%) -> % if Complex(DoubleFloat) has ABELGRP
+--R -? : % -> % if Complex(DoubleFloat) has ABELGRP
+--R ?<? : (%,%) -> Boolean if Complex(DoubleFloat) has ORDSET
+--R ?<=? : (%,%) -> Boolean if Complex(DoubleFloat) has ORDSET
+--R ?=? : (%,%) -> Boolean if Complex(DoubleFloat) has SETCAT
+--R ?>? : (%,%) -> Boolean if Complex(DoubleFloat) has ORDSET
+--R ?>=? : (%,%) -> Boolean if Complex(DoubleFloat) has ORDSET
+--R any? : ((Complex(DoubleFloat) -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R coerce : % -> OutputForm if Complex(DoubleFloat) has SETCAT
+--R concat : (Complex(DoubleFloat),%) -> %
+--R concat : (%,Complex(DoubleFloat)) -> %
+--R construct : List(Complex(DoubleFloat)) -> %
+--R convert : % -> InputForm if Complex(DoubleFloat) has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
---R count : (Complex DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R count : ((Complex DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R cross : (%,%) -> % if Complex DoubleFloat has RING
---R delete : (%,UniversalSegment Integer) -> %
---R dot : (%,%) -> Complex DoubleFloat if Complex DoubleFloat has RING
---R ?.? : (%,UniversalSegment Integer) -> %
---R ?.? : (%,Integer) -> Complex DoubleFloat
---R elt : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat
---R entries : % -> List Complex DoubleFloat
---R entry? : (Complex DoubleFloat,%) -> Boolean if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R eval : (%,List Complex DoubleFloat,List Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,Complex DoubleFloat,Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R eval : (%,List Equation Complex DoubleFloat) -> % if Complex DoubleFloat has EVALAB COMPLEX DFLOAT and Complex DoubleFloat has SETCAT
---R every? : ((Complex DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
---R fill! : (%,Complex DoubleFloat) -> % if $ has shallowlyMutable
---R find : ((Complex DoubleFloat -> Boolean),%) -> Union(Complex DoubleFloat,"failed")
---R first : % -> Complex DoubleFloat if Integer has ORDSET
---R hash : % -> SingleInteger if Complex DoubleFloat has SETCAT
---R insert : (Complex DoubleFloat,%,Integer) -> %
---R latex : % -> String if Complex DoubleFloat has SETCAT
---R length : % -> Complex DoubleFloat if Complex DoubleFloat has RADCAT and Complex DoubleFloat has RING
+--R count : (Complex(DoubleFloat),%) -> NonNegativeInteger if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R count : ((Complex(DoubleFloat) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
+--R cross : (%,%) -> % if Complex(DoubleFloat) has RING
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R dot : (%,%) -> Complex(DoubleFloat) if Complex(DoubleFloat) has RING
+--R ?.? : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,Integer) -> Complex(DoubleFloat)
+--R elt : (%,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat)
+--R entries : % -> List(Complex(DoubleFloat))
+--R entry? : (Complex(DoubleFloat),%) -> Boolean if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R eval : (%,List(Complex(DoubleFloat)),List(Complex(DoubleFloat))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,Complex(DoubleFloat),Complex(DoubleFloat)) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,Equation(Complex(DoubleFloat))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R eval : (%,List(Equation(Complex(DoubleFloat)))) -> % if Complex(DoubleFloat) has EVALAB(COMPLEX(DFLOAT)) and Complex(DoubleFloat) has SETCAT
+--R every? : ((Complex(DoubleFloat) -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R fill! : (%,Complex(DoubleFloat)) -> % if $ has shallowlyMutable
+--R find : ((Complex(DoubleFloat) -> Boolean),%) -> Union(Complex(DoubleFloat),"failed")
+--R first : % -> Complex(DoubleFloat) if Integer has ORDSET
+--R hash : % -> SingleInteger if Complex(DoubleFloat) has SETCAT
+--R insert : (Complex(DoubleFloat),%,Integer) -> %
+--R latex : % -> String if Complex(DoubleFloat) has SETCAT
+--R length : % -> Complex(DoubleFloat) if Complex(DoubleFloat) has RADCAT and Complex(DoubleFloat) has RING
 --R less? : (%,NonNegativeInteger) -> Boolean
---R magnitude : % -> Complex DoubleFloat if Complex DoubleFloat has RADCAT and Complex DoubleFloat has RING
---R map : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,%) -> %
---R map : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> %
---R map! : ((Complex DoubleFloat -> Complex DoubleFloat),%) -> % if $ has shallowlyMutable
---R max : (%,%) -> % if Complex DoubleFloat has ORDSET
+--R magnitude : % -> Complex(DoubleFloat) if Complex(DoubleFloat) has RADCAT and Complex(DoubleFloat) has RING
+--R map : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%,%) -> %
+--R map : ((Complex(DoubleFloat) -> Complex(DoubleFloat)),%) -> %
+--R map! : ((Complex(DoubleFloat) -> Complex(DoubleFloat)),%) -> % if $ has shallowlyMutable
+--R max : (%,%) -> % if Complex(DoubleFloat) has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
---R member? : (Complex DoubleFloat,%) -> Boolean if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R members : % -> List Complex DoubleFloat if $ has finiteAggregate
---R merge : (%,%) -> % if Complex DoubleFloat has ORDSET
---R merge : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%,%) -> %
---R min : (%,%) -> % if Complex DoubleFloat has ORDSET
+--R member? : (Complex(DoubleFloat),%) -> Boolean if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R members : % -> List(Complex(DoubleFloat)) if $ has finiteAggregate
+--R merge : (%,%) -> % if Complex(DoubleFloat) has ORDSET
+--R merge : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Boolean),%,%) -> %
+--R min : (%,%) -> % if Complex(DoubleFloat) has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R new : (NonNegativeInteger,Complex DoubleFloat) -> %
---R outerProduct : (%,%) -> Matrix Complex DoubleFloat if Complex DoubleFloat has RING
---R parts : % -> List Complex DoubleFloat if $ has finiteAggregate
---R position : (Complex DoubleFloat,%,Integer) -> Integer if Complex DoubleFloat has SETCAT
---R position : (Complex DoubleFloat,%) -> Integer if Complex DoubleFloat has SETCAT
---R position : ((Complex DoubleFloat -> Boolean),%) -> Integer
---R qelt : (%,Integer) -> Complex DoubleFloat
---R qsetelt! : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable
---R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%) -> Complex DoubleFloat if $ has finiteAggregate
---R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,Complex DoubleFloat) -> Complex DoubleFloat if $ has finiteAggregate
---R reduce : (((Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat),%,Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R remove : ((Complex DoubleFloat -> Boolean),%) -> % if $ has finiteAggregate
---R remove : (Complex DoubleFloat,%) -> % if $ has finiteAggregate and Complex DoubleFloat has SETCAT
---R removeDuplicates : % -> % if $ has finiteAggregate and Complex DoubleFloat has SETCAT
+--R new : (NonNegativeInteger,Complex(DoubleFloat)) -> %
+--R outerProduct : (%,%) -> Matrix(Complex(DoubleFloat)) if Complex(DoubleFloat) has RING
+--R parts : % -> List(Complex(DoubleFloat)) if $ has finiteAggregate
+--R position : (Complex(DoubleFloat),%,Integer) -> Integer if Complex(DoubleFloat) has SETCAT
+--R position : (Complex(DoubleFloat),%) -> Integer if Complex(DoubleFloat) has SETCAT
+--R position : ((Complex(DoubleFloat) -> Boolean),%) -> Integer
+--R qelt : (%,Integer) -> Complex(DoubleFloat)
+--R qsetelt! : (%,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat) if $ has shallowlyMutable
+--R reduce : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%) -> Complex(DoubleFloat) if $ has finiteAggregate
+--R reduce : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%,Complex(DoubleFloat)) -> Complex(DoubleFloat) if $ has finiteAggregate
+--R reduce : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)),%,Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat) if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R remove : ((Complex(DoubleFloat) -> Boolean),%) -> % if $ has finiteAggregate
+--R remove : (Complex(DoubleFloat),%) -> % if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
+--R removeDuplicates : % -> % if $ has finiteAggregate and Complex(DoubleFloat) has SETCAT
 --R reverse! : % -> % if $ has shallowlyMutable
---R select : ((Complex DoubleFloat -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable
---R setelt : (%,Integer,Complex DoubleFloat) -> Complex DoubleFloat if $ has shallowlyMutable
+--R select : ((Complex(DoubleFloat) -> Boolean),%) -> % if $ has finiteAggregate
+--R setelt : (%,UniversalSegment(Integer),Complex(DoubleFloat)) -> Complex(DoubleFloat) if $ has shallowlyMutable
+--R setelt : (%,Integer,Complex(DoubleFloat)) -> Complex(DoubleFloat) if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
---R sort : % -> % if Complex DoubleFloat has ORDSET
---R sort : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> %
---R sort! : % -> % if $ has shallowlyMutable and Complex DoubleFloat has ORDSET
---R sort! : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> % if $ has shallowlyMutable
---R sorted? : % -> Boolean if Complex DoubleFloat has ORDSET
---R sorted? : (((Complex DoubleFloat,Complex DoubleFloat) -> Boolean),%) -> Boolean
+--R sort : % -> % if Complex(DoubleFloat) has ORDSET
+--R sort : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Boolean),%) -> %
+--R sort! : % -> % if $ has shallowlyMutable and Complex(DoubleFloat) has ORDSET
+--R sort! : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Boolean),%) -> % if $ has shallowlyMutable
+--R sorted? : % -> Boolean if Complex(DoubleFloat) has ORDSET
+--R sorted? : (((Complex(DoubleFloat),Complex(DoubleFloat)) -> Boolean),%) -> Boolean
 --R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
---R vector : List Complex DoubleFloat -> %
---R zero : NonNegativeInteger -> % if Complex DoubleFloat has ABELMON
---R ?~=? : (%,%) -> Boolean if Complex DoubleFloat has SETCAT
+--R vector : List(Complex(DoubleFloat)) -> %
+--R zero : NonNegativeInteger -> % if Complex(DoubleFloat) has ABELMON
+--R ?~=? : (%,%) -> Boolean if Complex(DoubleFloat) has SETCAT
 --R
 --E 1
  
@@ -19867,7 +19929,7 @@ t1:CDFVEC:=qnew(5)
 t1.1:=1.0+2*%i
 --R
 --R   (2)  1. + 2. %i
---R                                                    Type: Complex DoubleFloat
+--R                                                   Type: Complex(DoubleFloat)
 --E 3
 
 --S 4 of 6
@@ -19881,7 +19943,7 @@ t1
 t1.0:=3.0+4.0*%i
 --R
 --R   (4)  3. + 4. %i
---R                                                    Type: Complex DoubleFloat
+--R                                                   Type: Complex(DoubleFloat)
 --E 5
 
 --S 6 of 6
@@ -20079,7 +20141,7 @@ c := continuedFraction(314159/100000)
 --R              1 |     1  |     1 |     1  |     1 |     1 |     1 |
 --R   (1)  3 + +---+ + +----+ + +---+ + +----+ + +---+ + +---+ + +---+
 --R            | 7     | 15     | 1     | 25     | 1     | 7     | 4
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 1
 
 --S 2 of 22
@@ -20087,7 +20149,7 @@ partialQuotients c
 --R 
 --R
 --R   (2)  [3,7,15,1,25,1,7,4]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 2
 
 --S 3 of 22
@@ -20097,7 +20159,7 @@ convergents c
 --R           22 333 355 9208 9563 76149 314159
 --R   (3)  [3,--,---,---,----,----,-----,------]
 --R            7 106 113 2931 3044 24239 100000
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 3
 
 --S 4 of 22
@@ -20108,7 +20170,7 @@ approximants c
 --R           22 333 355 9208 9563 76149 314159
 --R   (4)  [3,--,---,---,----,----,-----,------]
 --R            7 106 113 2931 3044 24239 100000
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 4
 
 --S 5 of 22
@@ -20116,7 +20178,7 @@ pq := partialQuotients(1/c)
 --R 
 --R
 --R   (5)  [0,3,7,15,1,25,1,7,4]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 5
 
 --S 6 of 22
@@ -20126,7 +20188,7 @@ continuedFraction(first pq,repeating [1],rest pq)
 --R          1 |     1 |     1  |     1 |     1  |     1 |     1 |     1 |
 --R   (6)  +---+ + +---+ + +----+ + +---+ + +----+ + +---+ + +---+ + +---+
 --R        | 3     | 7     | 15     | 1     | 25     | 1     | 7     | 4
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 6
 
 --S 7 of 22
@@ -20141,7 +20203,7 @@ z:=continuedFraction(3,repeating [1],repeating [3,6])
 --R       1 |
 --R     +---+ + ...
 --R     | 6
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 7
 
 --S 8 of 22
@@ -20149,7 +20211,7 @@ dens:Stream Integer := cons(1,generate((x+->x+4),6))
 --R 
 --R
 --R   (8)  [1,6,10,14,18,22,26,30,34,38,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 8
 
 --S 9 of 22
@@ -20164,7 +20226,7 @@ cf := continuedFraction(0,repeating [1],dens)
 --R       1  |     1  |
 --R     +----+ + +----+ + ...
 --R     | 34     | 38
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 9
 
 --S 10 of 22
@@ -20174,7 +20236,7 @@ ccf := convergents cf
 --R              6 61  860 15541 342762  8927353 268163352  9126481321
 --R   (10)  [0,1,-,--,----,-----,------,--------,---------,-----------,...]
 --R              7 71 1001 18089 398959 10391023 312129649 10622799089
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 10
 
 --S 11 of 22
@@ -20184,7 +20246,7 @@ eConvergents := [2*e + 1 for e in ccf]
 --R              19 193 2721 49171 1084483 28245729 848456353 28875761731
 --R   (11)  [1,3,--,---,----,-----,-------,--------,---------,-----------,...]
 --R               7  71 1001 18089  398959 10391023 312129649 10622799089
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 11
 
 --S 12 of 22
@@ -20196,7 +20258,7 @@ eConvergents :: Stream Float
 --R    2.7182817182 817182817, 2.7182818287 356957267, 2.7182818284 585634113,
 --R    2.7182818284 590458514, 2.7182818284 590452348, 2.7182818284 590452354,
 --R    ...]
---R                                                           Type: Stream Float
+--R                                                          Type: Stream(Float)
 --E 12
 
 --S 13 of 22
@@ -20219,7 +20281,7 @@ cf := continuedFraction(1,[(2*i+1)**2 for i in 0..],repeating [2])
 --R       289 |     361 |
 --R     +-----+ + +-----+ + ...
 --R     |  2      |  2
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 14
 
 --S 15 of 22
@@ -20229,7 +20291,7 @@ ccf := convergents cf
 --R            3 15 105 315 3465 45045 45045 765765 14549535
 --R   (15)  [1,-,--,---,---,----,-----,-----,------,--------,...]
 --R            2 13  76 263 2578 36979 33976 622637 11064338
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 15
 
 --S 16 of 22
@@ -20239,7 +20301,7 @@ piConvergents := [4/p for p in ccf]
 --R            8 52 304 1052 10312 147916 135904 2490548 44257352
 --R   (16)  [4,-,--,---,----,-----,------,------,-------,--------,...]
 --R            3 15 105  315  3465  45045  45045  765765 14549535
---R                                                Type: Stream Fraction Integer
+--R                                              Type: Stream(Fraction(Integer))
 --E 16
 
 --S 17 of 22
@@ -20251,7 +20313,7 @@ piConvergents :: Stream Float
 --R    2.8952380952 380952381, 3.3396825396 825396825, 2.9760461760 461760462,
 --R    3.2837384837 384837385, 3.0170718170 718170718, 3.2523659347 188758953,
 --R    3.0418396189 294022111, ...]
---R                                                           Type: Stream Float
+--R                                                          Type: Stream(Float)
 --E 17
 
 --S 18 of 22
@@ -20261,7 +20323,7 @@ continuedFraction((- 122 + 597*%i)/(4 - 4*%i))
 --R                            1    |         1     |
 --R   (18)  - 90 + 59%i + +---------+ + +-----------+
 --R                       | 1 - 2%i     | - 1 + 2%i
---R                                      Type: ContinuedFraction Complex Integer
+--R                                    Type: ContinuedFraction(Complex(Integer))
 --E 18
 
 --S 19 of 22
@@ -20279,7 +20341,7 @@ r := ((x - 1) * (x - 2)) / ((x-3) * (x-4))
 --R   (20)  ------------
 --R          2
 --R         x  - 7x + 12
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 20
 
 --S 21 of 22
@@ -20291,7 +20353,7 @@ continuedFraction r
 --R             | 1     9     | 16     40
 --R             | - x - -     | -- x - --
 --R             | 4     8     |  3      3
---R             Type: ContinuedFraction UnivariatePolynomial(x,Fraction Integer)
+--R           Type: ContinuedFraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 21
 
 --S 22 of 22
@@ -20303,7 +20365,7 @@ continuedFraction r
 --R    10.9999860763 98799786, 11.0000006979 29731039, 10.9999999650 15834446,
 --R    11.0000000017 53603304, 10.9999999999 12099531, 11.0000000000 04406066,
 --R    ...]
---R                                                           Type: Stream Float
+--R                                                          Type: Stream(Float)
 --E 22
 )spool
 )lisp (bye)
@@ -21023,7 +21085,8 @@ ContinuedFraction(R): Exports == Implementation where
 
 --S 1 of 1
 )show Database
---R Database S where 
+--R 
+--R Database(S) where 
 --R   S: OrderedSet with 
 --R       ?.? : (%,Symbol) -> String
 --R       display : % -> Void
@@ -21034,12 +21097,12 @@ ContinuedFraction(R): Exports == Implementation where
 --R
 --R------------------------------- Operations --------------------------------
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
---R ?=? : (%,%) -> Boolean                coerce : List S -> %
+--R ?=? : (%,%) -> Boolean                coerce : List(S) -> %
 --R coerce : % -> OutputForm              display : % -> Void
 --R ?.? : (%,QueryEquation) -> %          fullDisplay : % -> Void
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R ?.? : (%,Symbol) -> DataList String
+--R ?.? : (%,Symbol) -> DataList(String)
 --R fullDisplay : (%,PositiveInteger,PositiveInteger) -> Void
 --R
 --E 1
@@ -21149,35 +21212,36 @@ Database(S): Exports == Implementation where
 
 --S 1 of 1
 )show DataList
---R DataList S: OrderedSet  is a domain constructor
+--R 
+--R DataList(S: OrderedSet)  is a domain constructor
 --R Abbreviation for DataList is DLIST 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DLIST 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                coerce : % -> List S
---R coerce : List S -> %                  concat : (%,S) -> %
---R concat : List % -> %                  concat : (S,%) -> %
+--R children : % -> List(%)               coerce : % -> List(S)
+--R coerce : List(S) -> %                 concat : (%,S) -> %
+--R concat : List(%) -> %                 concat : (S,%) -> %
 --R concat : (%,%) -> %                   concat! : (%,S) -> %
---R concat! : (%,%) -> %                  construct : List S -> %
+--R concat! : (%,%) -> %                  construct : List(S) -> %
 --R copy : % -> %                         cycleEntry : % -> %
 --R cycleTail : % -> %                    cyclic? : % -> Boolean
---R datalist : List S -> %                delete : (%,Integer) -> %
+--R datalist : List(S) -> %               delete : (%,Integer) -> %
 --R delete! : (%,Integer) -> %            distance : (%,%) -> Integer
 --R ?.sort : (%,sort) -> %                ?.unique : (%,unique) -> %
 --R elt : (%,Integer,S) -> S              ?.? : (%,Integer) -> S
 --R ?.last : (%,last) -> S                ?.rest : (%,rest) -> %
 --R ?.first : (%,first) -> S              ?.value : (%,value) -> S
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List S                 eq? : (%,%) -> Boolean
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
 --R explicitlyFinite? : % -> Boolean      first : % -> S
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R insert : (S,%,Integer) -> %           insert : (%,%,Integer) -> %
 --R insert! : (S,%,Integer) -> %          insert! : (%,%,Integer) -> %
 --R last : % -> S                         leaf? : % -> Boolean
---R leaves : % -> List S                  list : S -> %
+--R leaves : % -> List(S)                 list : S -> %
 --R map : (((S,S) -> S),%,%) -> %         map : ((S -> S),%) -> %
---R new : (NonNegativeInteger,S) -> %     nodes : % -> List %
+--R new : (NonNegativeInteger,S) -> %     nodes : % -> List(%)
 --R possiblyInfinite? : % -> Boolean      qelt : (%,Integer) -> S
 --R rest : % -> %                         reverse : % -> %
 --R sample : () -> %                      second : % -> S
@@ -21192,21 +21256,21 @@ Database(S): Exports == Implementation where
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R child? : (%,%) -> Boolean if S has SETCAT
 --R coerce : % -> OutputForm if S has SETCAT
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---R delete : (%,UniversalSegment Integer) -> %
---R delete! : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R delete! : (%,UniversalSegment(Integer)) -> %
 --R ?.count : (%,count) -> NonNegativeInteger
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
@@ -21219,7 +21283,7 @@ Database(S): Exports == Implementation where
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R merge : (((S,S) -> Boolean),%,%) -> %
 --R merge : (%,%) -> % if S has ORDSET
 --R merge! : (((S,S) -> Boolean),%,%) -> %
@@ -21228,7 +21292,7 @@ Database(S): Exports == Implementation where
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R position : ((S -> Boolean),%) -> Integer
 --R position : (S,%) -> Integer if S has SETCAT
 --R position : (S,%,Integer) -> Integer if S has SETCAT
@@ -21246,9 +21310,9 @@ Database(S): Exports == Implementation where
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((S -> Boolean),%) -> % if $ has finiteAggregate
 --R select! : ((S -> Boolean),%) -> %
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
---R setelt : (%,UniversalSegment Integer,S) -> S if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),S) -> S if $ has shallowlyMutable
 --R setelt : (%,last,S) -> S if $ has shallowlyMutable
 --R setelt : (%,rest,%) -> % if $ has shallowlyMutable
 --R setelt : (%,first,S) -> S if $ has shallowlyMutable
@@ -21472,7 +21536,7 @@ r + decimal(6/7)
 --R   [0.00285714, 0.002849, 0.0028409, 0.00283286118980169971671388101983,
 --R       __________________________________________________________
 --R    0.00282485875706214689265536723163841807909604519774011299435]
---R                                                  Type: List DecimalExpansion
+--R                                                 Type: List(DecimalExpansion)
 --E 3
 
 --S 4 of 7
@@ -21496,7 +21560,7 @@ p := decimal(1/4)*x**2 + decimal(2/3)*x + decimal(4/9)
 --R
 --R             2     _      _
 --R   (5)  0.25x  + 0.6x + 0.4
---R                                            Type: Polynomial DecimalExpansion
+--R                                           Type: Polynomial(DecimalExpansion)
 --E 5
 
 --S 6 of 7
@@ -21505,7 +21569,7 @@ q := differentiate(p, x)
 --R
 --R                 _
 --R   (6)  0.5x + 0.6
---R                                            Type: Polynomial DecimalExpansion
+--R                                           Type: Polynomial(DecimalExpansion)
 --E 6
 
 --S 7 of 7
@@ -21514,7 +21578,7 @@ g := gcd(p, q)
 --R
 --R              _
 --R   (7)  x + 1.3
---R                                            Type: Polynomial DecimalExpansion
+--R                                           Type: Polynomial(DecimalExpansion)
 --E 7
 )spool
 )lisp (bye)
@@ -23505,7 +23569,7 @@ a:Dequeue INT:= dequeue [1,2,3,4,5]
 --R 
 --R
 --R   (1)  [1,2,3,4,5]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 1
 
 --S 2 of 63
@@ -23521,7 +23585,7 @@ a
 --R 
 --R
 --R   (3)  [2,3,4,5]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 3
 
 --S 4 of 63
@@ -23537,7 +23601,7 @@ a
 --R 
 --R
 --R   (5)  [3,4,5]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 5
 
 --S 6 of 63
@@ -23553,7 +23617,7 @@ a
 --R 
 --R
 --R   (7)  [3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 7
 
 --S 8 of 63
@@ -23561,7 +23625,7 @@ insert!(8,a)
 --R 
 --R
 --R   (8)  [3,4,5,9,8]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 8
 
 --S 9 of 63
@@ -23569,7 +23633,7 @@ a
 --R 
 --R
 --R   (9)  [3,4,5,9,8]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 9
 
 --S 10 of 63
@@ -23601,7 +23665,7 @@ a
 --R 
 --R
 --R   (13)  [3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 13
 
 --S 14 of 63
@@ -23633,7 +23697,7 @@ a
 --R 
 --R
 --R   (17)  [3,4,5,9,6]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 17
 
 --S 18 of 63
@@ -23649,7 +23713,7 @@ a
 --R 
 --R
 --R   (19)  [3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 19
 
 --S 20 of 63
@@ -23665,7 +23729,7 @@ a
 --R 
 --R
 --R   (21)  [7,3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 21
 
 --S 22 of 63
@@ -23681,7 +23745,7 @@ a
 --R 
 --R
 --R   (23)  [3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 23
 
 --S 24 of 63
@@ -23697,7 +23761,7 @@ a
 --R 
 --R
 --R   (25)  [3,4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 25
 
 --S 26 of 63
@@ -23713,7 +23777,7 @@ a
 --R 
 --R
 --R   (27)  [4,5,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 27
 
 --S 28 of 63
@@ -23721,7 +23785,7 @@ reverse! a
 --R 
 --R
 --R   (28)  [9,5,4]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 28
 
 --S 29 of 63
@@ -23729,7 +23793,7 @@ rotate! a
 --R 
 --R
 --R   (29)  [5,4,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 29
 
 --S 30 of 63
@@ -23801,7 +23865,7 @@ parts a
 --R 
 --R
 --R   (38)  [5,4,9]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 38
 
 --S 39 of 63
@@ -23809,7 +23873,7 @@ bag([1,2,3,4,5])$Dequeue(INT)
 --R 
 --R
 --R   (39)  [1,2,3,4,5]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 39
 
 --S 40 of 63
@@ -23817,7 +23881,7 @@ b:=empty()$(Dequeue INT)
 --R 
 --R
 --R   (40)  []
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 40
 
 --S 41 of 63
@@ -23833,7 +23897,7 @@ sample()$Dequeue(INT)
 --R 
 --R
 --R   (42)  []
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 42
 
 --S 43 of 63
@@ -23841,7 +23905,7 @@ c:=copy a
 --R 
 --R
 --R   (43)  [5,4,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 43
 
 --S 44 of 63
@@ -23929,7 +23993,7 @@ map(x+->x+10,a)
 --R 
 --R
 --R   (54)  [15,14,19]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 54
 
 --S 55 of 63
@@ -23937,7 +24001,7 @@ a
 --R 
 --R
 --R   (55)  [5,4,9]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 55
 
 --S 56 of 63
@@ -23945,7 +24009,7 @@ map!(x+->x+10,a)
 --R 
 --R
 --R   (56)  [15,14,19]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 56
 
 --S 57 of 63
@@ -23953,7 +24017,7 @@ a
 --R 
 --R
 --R   (57)  [15,14,19]
---R                                                        Type: Dequeue Integer
+--R                                                       Type: Dequeue(Integer)
 --E 57
 
 --S 58 of 63
@@ -23961,7 +24025,7 @@ members a
 --R 
 --R
 --R   (58)  [15,14,19]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 58
 
 --S 59 of 63
@@ -23999,15 +24063,15 @@ latex a
 --S 63 of 63
 )show Dequeue
 --R 
---R Dequeue S: SetCategory  is a domain constructor
+--R Dequeue(S: SetCategory)  is a domain constructor
 --R Abbreviation for Dequeue is DEQUEUE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DEQUEUE 
 --R
 --R------------------------------- Operations --------------------------------
---R back : % -> S                         bag : List S -> %
+--R back : % -> S                         bag : List(S) -> %
 --R bottom! : % -> S                      copy : % -> %
---R depth : % -> NonNegativeInteger       dequeue : List S -> %
+--R depth : % -> NonNegativeInteger       dequeue : List(S) -> %
 --R dequeue : () -> %                     dequeue! : % -> S
 --R empty : () -> %                       empty? : % -> Boolean
 --R enqueue! : (S,%) -> S                 eq? : (%,%) -> Boolean
@@ -24026,19 +24090,19 @@ latex a
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R ?~=? : (%,%) -> Boolean if S has SETCAT
 --R
@@ -24722,7 +24786,7 @@ lv : List Symbol := [x,y,z]
 --R 
 --R
 --R   (2)  [x,y,z]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 34
@@ -24737,7 +24801,7 @@ der := DERHAM(coefRing,lv)
 R := Expression coefRing
 --R 
 --R
---R   (4)  Expression Integer
+--R   (4)  Expression(Integer)
 --R                                                                 Type: Domain
 --E 4
 
@@ -24747,7 +24811,7 @@ f : R := x**2*y*z-5*x**3*y**2*z**5
 --R
 --R            3 2 5    2
 --R   (5)  - 5x y z  + x y z
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 5
 
 --S 6 of 34
@@ -24756,7 +24820,7 @@ g : R := z**2*y*cos(z)-7*sin(x**3*y**2)*z**2
 --R
 --R            2     3 2       2
 --R   (6)  - 7z sin(x y ) + y z cos(z)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 6
 
 --S 7 of 34
@@ -24765,7 +24829,7 @@ h : R :=x*y*z-2*x**3*y*z**2
 --R
 --R            3   2
 --R   (7)  - 2x y z  + x y z
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 7
 
 --S 8 of 34
@@ -24797,7 +24861,7 @@ dz : der := generator(3)
 --R 
 --R
 --R   (11)  [dx,dy,dz]
---R                                    Type: List DeRhamComplex(Integer,[x,y,z])
+--R                                   Type: List(DeRhamComplex(Integer,[x,y,z]))
 --E 11
 
 --S 12 of 34
@@ -24997,7 +25061,7 @@ coefficient(gamma, dx*dy)
 --R
 --R            2     3 2       2                                   4 2 5    3
 --R   (31)  (7z sin(x y ) - y z cos(z))cos(tan(x y z) + x y z) - 5x y z  + x y z
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 31
 
 --S 32 of 34
@@ -25005,7 +25069,7 @@ coefficient(gamma, one)
 --R 
 --R
 --R   (32)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 32
 
 --S 33 of 34
@@ -25013,7 +25077,7 @@ coefficient(g1,one)
 --R 
 --R
 --R   (33)  a(x,t,y,u,v,z,e)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 33
 
 --S 34 of 34
@@ -25455,22 +25519,23 @@ DeRhamComplex(CoefRing,listIndVar:List Symbol): Export == Implement where
 
 --S 1 of 1
 )show DesingTree
---R DesingTree S: SetCategory  is a domain constructor
+--R 
+--R DesingTree(S: SetCategory)  is a domain constructor
 --R Abbreviation for DesingTree is DSTREE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DSTREE 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                distance : (%,%) -> Integer
 --R ?.value : (%,value) -> S              empty : () -> %
 --R empty? : % -> Boolean                 encode : % -> String
 --R eq? : (%,%) -> Boolean                fullOut : % -> OutputForm
 --R fullOutput : () -> Boolean            fullOutput : Boolean -> Boolean
---R leaf? : % -> Boolean                  leaves : % -> List S
---R map : ((S -> S),%) -> %               nodes : % -> List %
---R sample : () -> %                      tree : List S -> %
---R tree : S -> %                         tree : (S,List %) -> %
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
+--R map : ((S -> S),%) -> %               nodes : % -> List(%)
+--R sample : () -> %                      tree : List(S) -> %
+--R tree : S -> %                         tree : (S,List(%)) -> %
 --R value : % -> S                       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -25479,21 +25544,21 @@ DeRhamComplex(CoefRing,listIndVar:List Symbol): Export == Implement where
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R parts : % -> List(S) if $ has finiteAggregate
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,value,S) -> S if $ has shallowlyMutable
 --R setvalue! : (%,S) -> S if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -25653,7 +25718,8 @@ DesingTree(S: SetCategory): T==C where
 
 --S 1 of 1
 )show DifferentialSparseMultivariatePolynomial
---R DifferentialSparseMultivariatePolynomial(R: Ring,S: OrderedSet,V: DifferentialVariableCategory S)  is a domain constructor
+--R 
+--R DifferentialSparseMultivariatePolynomial(R: Ring,S: OrderedSet,V: DifferentialVariableCategory(S))  is a domain constructor
 --R Abbreviation for DifferentialSparseMultivariatePolynomial is DSMP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DSMP 
@@ -25665,32 +25731,31 @@ DesingTree(S: SetCategory): T==C where
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R D : (%,(R -> R)) -> %                 D : % -> % if R has DIFRING
---R D : (%,List V) -> %                   D : (%,V) -> %
+--R D : (%,List(V)) -> %                  D : (%,V) -> %
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List R
+--R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List(R)
 --R coerce : S -> %                       coerce : V -> %
 --R coerce : R -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              degree : % -> IndexedExponents V
---R differentiate : (%,List V) -> %       differentiate : (%,V) -> %
---R eval : (%,List V,List %) -> %         eval : (%,V,%) -> %
---R eval : (%,List V,List R) -> %         eval : (%,V,R) -> %
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
+--R coerce : % -> OutputForm              degree : % -> IndexedExponents(V)
+--R differentiate : (%,List(V)) -> %      differentiate : (%,V) -> %
+--R eval : (%,List(V),List(%)) -> %       eval : (%,V,%) -> %
+--R eval : (%,List(V),List(R)) -> %       eval : (%,V,R) -> %
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
 --R ground : % -> R                       ground? : % -> Boolean
 --R hash : % -> SingleInteger             initial : % -> %
 --R isobaric? : % -> Boolean              latex : % -> String
 --R leader : % -> V                       leadingCoefficient : % -> R
 --R leadingMonomial : % -> %              map : ((R -> R),%) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
---R primitiveMonomials : % -> List %      recip : % -> Union(%,"failed")
---R reductum : % -> %                     retract : % -> S
---R retract : % -> V                      retract : % -> R
---R sample : () -> %                      separant : % -> %
---R variables : % -> List V               weight : % -> NonNegativeInteger
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (Fraction Integer,%) -> % if R has ALGEBRA FRAC INT
---R ?*? : (%,Fraction Integer) -> % if R has ALGEBRA FRAC INT
+--R recip : % -> Union(%,"failed")        reductum : % -> %
+--R retract : % -> S                      retract : % -> V
+--R retract : % -> R                      sample : () -> %
+--R separant : % -> %                     variables : % -> List(V)
+--R weight : % -> NonNegativeInteger      zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
+--R ?*? : (Fraction(Integer),%) -> % if R has ALGEBRA(FRAC(INT))
+--R ?*? : (%,Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
@@ -25699,114 +25764,117 @@ DesingTree(S: SetCategory): T==C where
 --R ?>? : (%,%) -> Boolean if R has ORDSET
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
 --R D : (%,(R -> R),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,List Symbol) -> % if R has PDRING SYMBOL
---R D : (%,Symbol) -> % if R has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if R has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if R has DIFRING
---R D : (%,List V,List NonNegativeInteger) -> %
+--R D : (%,List(V),List(NonNegativeInteger)) -> %
 --R D : (%,V,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R associates? : (%,%) -> Boolean if R has INTDOM
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and R has PFECAT or R has CHARNZ
---R coefficient : (%,List V,List NonNegativeInteger) -> %
+--R coefficient : (%,List(V),List(NonNegativeInteger)) -> %
 --R coefficient : (%,V,NonNegativeInteger) -> %
---R coefficient : (%,IndexedExponents V) -> R
+--R coefficient : (%,IndexedExponents(V)) -> R
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT)) or R has RETRACT(FRAC(INT))
 --R coerce : SparseMultivariatePolynomial(R,S) -> %
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and R has PFECAT
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and R has PFECAT
 --R content : (%,V) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> InputForm if R has KONVERT INFORM and V has KONVERT INFORM
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT and V has KONVERT PATTERN INT
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT and V has KONVERT PATTERN FLOAT
+--R convert : % -> InputForm if R has KONVERT(INFORM) and V has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT)) and V has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT)) and V has KONVERT(PATTERN(FLOAT))
 --R degree : (%,S) -> NonNegativeInteger
---R degree : (%,List V) -> List NonNegativeInteger
+--R degree : (%,List(V)) -> List(NonNegativeInteger)
 --R degree : (%,V) -> NonNegativeInteger
---R differentialVariables : % -> List S
+--R differentialVariables : % -> List(S)
 --R differentiate : (%,(R -> R)) -> %
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if R has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if R has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if R has DIFRING
 --R differentiate : % -> % if R has DIFRING
---R differentiate : (%,List V,List NonNegativeInteger) -> %
+--R differentiate : (%,List(V),List(NonNegativeInteger)) -> %
 --R differentiate : (%,V,NonNegativeInteger) -> %
 --R discriminant : (%,V) -> % if R has COMRING
---R eval : (%,List S,List R) -> % if R has DIFRING
+--R eval : (%,List(S),List(R)) -> % if R has DIFRING
 --R eval : (%,S,R) -> % if R has DIFRING
---R eval : (%,List S,List %) -> % if R has DIFRING
+--R eval : (%,List(S),List(%)) -> % if R has DIFRING
 --R eval : (%,S,%) -> % if R has DIFRING
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
---R factor : % -> Factored % if R has PFECAT
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R factor : % -> Factored(%) if R has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R gcd : (%,%) -> % if R has GCDDOM
---R gcd : List % -> % if R has GCDDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM
+--R gcd : List(%) -> % if R has GCDDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GCDDOM
 --R isExpt : % -> Union(Record(var: V,exponent: NonNegativeInteger),"failed")
---R isPlus : % -> Union(List %,"failed")
---R isTimes : % -> Union(List %,"failed")
+--R isPlus : % -> Union(List(%),"failed")
+--R isTimes : % -> Union(List(%),"failed")
 --R lcm : (%,%) -> % if R has GCDDOM
---R lcm : List % -> % if R has GCDDOM
+--R lcm : List(%) -> % if R has GCDDOM
 --R mainVariable : % -> Union(V,"failed")
 --R makeVariable : % -> (NonNegativeInteger -> %) if R has DIFRING
 --R makeVariable : S -> (NonNegativeInteger -> %)
---R mapExponents : ((IndexedExponents V -> IndexedExponents V),%) -> %
+--R mapExponents : ((IndexedExponents(V) -> IndexedExponents(V)),%) -> %
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---R minimumDegree : (%,List V) -> List NonNegativeInteger
+--R minimumDegree : (%,List(V)) -> List(NonNegativeInteger)
 --R minimumDegree : (%,V) -> NonNegativeInteger
---R minimumDegree : % -> IndexedExponents V
+--R minimumDegree : % -> IndexedExponents(V)
 --R monicDivide : (%,%,V) -> Record(quotient: %,remainder: %)
---R monomial : (%,List V,List NonNegativeInteger) -> %
+--R monomial : (%,List(V),List(NonNegativeInteger)) -> %
 --R monomial : (%,V,NonNegativeInteger) -> %
---R monomial : (R,IndexedExponents V) -> %
---R multivariate : (SparseUnivariatePolynomial %,V) -> %
---R multivariate : (SparseUnivariatePolynomial R,V) -> %
+--R monomial : (R,IndexedExponents(V)) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),V) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),V) -> %
 --R numberOfMonomials : % -> NonNegativeInteger
 --R order : (%,S) -> NonNegativeInteger
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT and V has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT and V has PATMAB FLOAT
---R pomopo! : (%,R,IndexedExponents V,%) -> %
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT) and V has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT) and V has PATMAB(FLOAT)
+--R pomopo! : (%,R,IndexedExponents(V),%) -> %
 --R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,V) -> % if R has GCDDOM
 --R primitivePart : % -> % if R has GCDDOM
---R reducedSystem : Matrix % -> Matrix R
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
+--R reducedSystem : Matrix(%) -> Matrix(R)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
 --R resultant : (%,%,V) -> % if R has COMRING
 --R retract : % -> SparseMultivariatePolynomial(R,S)
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(SparseMultivariatePolynomial(R,S),"failed")
 --R retractIfCan : % -> Union(S,"failed")
 --R retractIfCan : % -> Union(V,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(R,"failed")
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has PFECAT
---R squareFree : % -> Factored % if R has GCDDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if R has PFECAT
+--R squareFree : % -> Factored(%) if R has GCDDOM
 --R squareFreePart : % -> % if R has GCDDOM
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R totalDegree : (%,List V) -> NonNegativeInteger
+--R totalDegree : (%,List(V)) -> NonNegativeInteger
 --R totalDegree : % -> NonNegativeInteger
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM
---R univariate : % -> SparseUnivariatePolynomial R
---R univariate : (%,V) -> SparseUnivariatePolynomial %
+--R univariate : % -> SparseUnivariatePolynomial(R)
+--R univariate : (%,V) -> SparseUnivariatePolynomial(%)
 --R weight : (%,S) -> NonNegativeInteger
---R weights : (%,S) -> List NonNegativeInteger
---R weights : % -> List NonNegativeInteger
+--R weights : (%,S) -> List(NonNegativeInteger)
+--R weights : % -> List(NonNegativeInteger)
 --R
 --E 1
 
@@ -25990,6 +26058,7 @@ DifferentialSparseMultivariatePolynomial(R, S, V):
 
 --S 1 of 1
 )show DirectProduct
+--R 
 --R DirectProduct(dim: NonNegativeInteger,R: Type)  is a domain constructor
 --R Abbreviation for DirectProduct is DIRPROD 
 --R This constructor is not exposed in this frame.
@@ -25997,12 +26066,12 @@ DifferentialSparseMultivariatePolynomial(R, S, V):
 --R
 --R------------------------------- Operations --------------------------------
 --R -? : % -> % if R has RING             1 : () -> % if R has MONOID
---R 0 : () -> % if R has CABMON           coerce : % -> Vector R
---R copy : % -> %                         directProduct : Vector R -> %
+--R 0 : () -> % if R has CABMON           coerce : % -> Vector(R)
+--R copy : % -> %                         directProduct : Vector(R) -> %
 --R ?.? : (%,Integer) -> R                elt : (%,Integer,R) -> R
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List R                 eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(R)                eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R map : ((R -> R),%) -> %               qelt : (%,Integer) -> R
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -26024,10 +26093,10 @@ DifferentialSparseMultivariatePolynomial(R, S, V):
 --R ?>=? : (%,%) -> Boolean if R has OAMONS or R has ORDRING
 --R D : (%,(R -> R)) -> % if R has RING
 --R D : (%,(R -> R),NonNegativeInteger) -> % if R has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL and R has RING
---R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL and R has RING
---R D : (%,List Symbol) -> % if R has PDRING SYMBOL and R has RING
---R D : (%,Symbol) -> % if R has PDRING SYMBOL and R has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL) and R has RING
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL) and R has RING
+--R D : (%,List(Symbol)) -> % if R has PDRING(SYMBOL) and R has RING
+--R D : (%,Symbol) -> % if R has PDRING(SYMBOL) and R has RING
 --R D : (%,NonNegativeInteger) -> % if R has DIFRING and R has RING
 --R D : % -> % if R has DIFRING and R has RING
 --R ?^? : (%,PositiveInteger) -> % if R has MONOID
@@ -26036,26 +26105,26 @@ DifferentialSparseMultivariatePolynomial(R, S, V):
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R characteristic : () -> NonNegativeInteger if R has RING
 --R coerce : R -> % if R has SETCAT
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT and R has SETCAT
---R coerce : Integer -> % if R has RETRACT INT and R has SETCAT or R has RING
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) and R has SETCAT
+--R coerce : Integer -> % if R has RETRACT(INT) and R has SETCAT or R has RING
 --R coerce : % -> OutputForm if R has SETCAT
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R differentiate : (%,(R -> R)) -> % if R has RING
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> % if R has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL and R has RING
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL and R has RING
---R differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL and R has RING
---R differentiate : (%,Symbol) -> % if R has PDRING SYMBOL and R has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL) and R has RING
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL) and R has RING
+--R differentiate : (%,List(Symbol)) -> % if R has PDRING(SYMBOL) and R has RING
+--R differentiate : (%,Symbol) -> % if R has PDRING(SYMBOL) and R has RING
 --R differentiate : (%,NonNegativeInteger) -> % if R has DIFRING and R has RING
 --R differentiate : % -> % if R has DIFRING and R has RING
 --R dimension : () -> CardinalNumber if R has FIELD
 --R dot : (%,%) -> R if R has RING
 --R entry? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,R) -> % if $ has shallowlyMutable
 --R first : % -> R if Integer has ORDSET
@@ -26068,27 +26137,27 @@ DifferentialSparseMultivariatePolynomial(R, S, V):
 --R max : (%,%) -> % if R has OAMONS or R has ORDRING
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R min : (%,%) -> % if R has OAMONS or R has ORDRING
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R negative? : % -> Boolean if R has ORDRING
 --R one? : % -> Boolean if R has MONOID
---R parts : % -> List R if $ has finiteAggregate
+--R parts : % -> List(R) if $ has finiteAggregate
 --R positive? : % -> Boolean if R has ORDRING
 --R qsetelt! : (%,Integer,R) -> R if $ has shallowlyMutable
 --R random : () -> % if R has FINITE
 --R recip : % -> Union(%,"failed") if R has MONOID
---R reducedSystem : Matrix % -> Matrix R if R has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R) if R has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT and R has RING
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT and R has RING
+--R reducedSystem : Matrix(%) -> Matrix(R) if R has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R)) if R has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT) and R has RING
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT) and R has RING
 --R retract : % -> R if R has SETCAT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT and R has SETCAT
---R retract : % -> Integer if R has RETRACT INT and R has SETCAT
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT)) and R has SETCAT
+--R retract : % -> Integer if R has RETRACT(INT) and R has SETCAT
 --R retractIfCan : % -> Union(R,"failed") if R has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT and R has SETCAT
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT and R has SETCAT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT)) and R has SETCAT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT) and R has SETCAT
 --R setelt : (%,Integer,R) -> R if $ has shallowlyMutable
 --R sign : % -> Integer if R has ORDRING
 --R size : () -> NonNegativeInteger if R has FINITE
@@ -26317,7 +26386,8 @@ DirectProduct(dim:NonNegativeInteger, R:Type):
 
 --S 1 of 1
 )show DirectProductMatrixModule
---R DirectProductMatrixModule(n: PositiveInteger,R: Ring,M: SquareMatrixCategory(n,R,DirectProduct(n,R),DirectProduct(n,R)),S: LeftModule R)  is a domain constructor
+--R 
+--R DirectProductMatrixModule(n: PositiveInteger,R: Ring,M: SquareMatrixCategory(n,R,DirectProduct(n,R),DirectProduct(n,R)),S: LeftModule(R))  is a domain constructor
 --R Abbreviation for DirectProductMatrixModule is DPMM 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DPMM 
@@ -26328,22 +26398,22 @@ DirectProduct(dim:NonNegativeInteger, R:Type):
 --R ?+? : (%,%) -> %                      -? : % -> %
 --R ?-? : (%,%) -> %                      ?=? : (%,%) -> Boolean
 --R 0 : () -> %                           coerce : % -> OutputForm
---R coerce : % -> Vector S                copy : % -> %
---R directProduct : Vector S -> %         ?.? : (%,Integer) -> S
+--R coerce : % -> Vector(S)               copy : % -> %
+--R directProduct : Vector(S) -> %        ?.? : (%,Integer) -> S
 --R elt : (%,Integer,S) -> S              empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List S
+--R empty? : % -> Boolean                 entries : % -> List(S)
 --R eq? : (%,%) -> Boolean                hash : % -> SingleInteger
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R latex : % -> String                   map : ((S -> S),%) -> %
 --R qelt : (%,Integer) -> S               sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
---R ?*? : (%,%) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R ?*? : (%,%) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R ?*? : (S,%) -> % if S has RING
 --R ?*? : (%,S) -> % if S has RING
 --R ?*? : (NonNegativeInteger,%) -> %
---R ?**? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?**? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R ?**? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?**? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R ?/? : (%,S) -> % if S has FIELD
 --R ?<? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R ?<=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
@@ -26351,38 +26421,38 @@ DirectProduct(dim:NonNegativeInteger, R:Type):
 --R ?>=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R D : % -> % if S has DIFRING and S has RING
 --R D : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
---R D : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
+--R D : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
 --R D : (%,(S -> S)) -> % if S has RING
 --R D : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R 1 : () -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?^? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?^? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R 1 : () -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?^? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?^? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R abs : % -> % if S has ORDRING
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R characteristic : () -> NonNegativeInteger if S has RING
---R coerce : Fraction Integer -> % if S has RETRACT FRAC INT and S has SETCAT
---R coerce : Integer -> % if S has RETRACT INT and S has SETCAT or S has RING
+--R coerce : Fraction(Integer) -> % if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R coerce : Integer -> % if S has RETRACT(INT) and S has SETCAT or S has RING
 --R coerce : S -> % if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R differentiate : % -> % if S has DIFRING and S has RING
 --R differentiate : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
---R differentiate : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
+--R differentiate : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
 --R differentiate : (%,(S -> S)) -> % if S has RING
 --R differentiate : (%,(S -> S),NonNegativeInteger) -> % if S has RING
 --R dimension : () -> CardinalNumber if S has FIELD
 --R dot : (%,%) -> S if S has RING
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R first : % -> S if Integer has ORDSET
@@ -26393,26 +26463,26 @@ DirectProduct(dim:NonNegativeInteger, R:Type):
 --R max : (%,%) -> % if S has OAMONS or S has ORDRING
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R min : (%,%) -> % if S has OAMONS or S has ORDRING
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R negative? : % -> Boolean if S has ORDRING
---R one? : % -> Boolean if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R parts : % -> List S if $ has finiteAggregate
+--R one? : % -> Boolean if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R parts : % -> List(S) if $ has finiteAggregate
 --R positive? : % -> Boolean if S has ORDRING
 --R qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R random : () -> % if S has FINITE
---R recip : % -> Union(%,"failed") if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT and S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT and S has RING
---R reducedSystem : Matrix % -> Matrix S if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S) if S has RING
---R retract : % -> Fraction Integer if S has RETRACT FRAC INT and S has SETCAT
---R retract : % -> Integer if S has RETRACT INT and S has SETCAT
+--R recip : % -> Union(%,"failed") if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if S has LINEXP(INT) and S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if S has LINEXP(INT) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(S) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(S),vec: Vector(S)) if S has RING
+--R retract : % -> Fraction(Integer) if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retract : % -> Integer if S has RETRACT(INT) and S has SETCAT
 --R retract : % -> S if S has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT FRAC INT and S has SETCAT
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT and S has SETCAT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT) and S has SETCAT
 --R retractIfCan : % -> Union(S,"failed") if S has SETCAT
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R sign : % -> Integer if S has ORDRING
@@ -26575,7 +26645,8 @@ DirectProductMatrixModule(n, R, M, S): DPcategory == DPcapsule where
 
 --S 1 of 1
 )show DirectProductModule
---R DirectProductModule(n: NonNegativeInteger,R: Ring,S: LeftModule R)  is a domain constructor
+--R 
+--R DirectProductModule(n: NonNegativeInteger,R: Ring,S: LeftModule(R))  is a domain constructor
 --R Abbreviation for DirectProductModule is DPMO 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DPMO 
@@ -26585,23 +26656,23 @@ DirectProductMatrixModule(n, R, M, S): DPcategory == DPcapsule where
 --R ?*? : (R,%) -> %                      ?+? : (%,%) -> %
 --R -? : % -> %                           ?-? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                0 : () -> %
---R coerce : % -> OutputForm              coerce : % -> Vector S
---R copy : % -> %                         directProduct : Vector S -> %
+--R coerce : % -> OutputForm              coerce : % -> Vector(S)
+--R copy : % -> %                         directProduct : Vector(S) -> %
 --R ?.? : (%,Integer) -> S                elt : (%,Integer,S) -> S
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List S                 eq? : (%,%) -> Boolean
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           latex : % -> String
+--R indices : % -> List(Integer)          latex : % -> String
 --R map : ((S -> S),%) -> %               qelt : (%,Integer) -> S
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
---R ?*? : (%,%) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R ?*? : (%,%) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R ?*? : (S,%) -> % if S has RING
 --R ?*? : (%,S) -> % if S has RING
 --R ?*? : (NonNegativeInteger,%) -> %
---R ?**? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?**? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R ?**? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?**? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R ?/? : (%,S) -> % if S has FIELD
 --R ?<? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R ?<=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
@@ -26609,38 +26680,38 @@ DirectProductMatrixModule(n, R, M, S): DPcategory == DPcapsule where
 --R ?>=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R D : % -> % if S has DIFRING and S has RING
 --R D : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
---R D : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
+--R D : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
 --R D : (%,(S -> S)) -> % if S has RING
 --R D : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R 1 : () -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?^? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R ?^? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
+--R 1 : () -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?^? : (%,PositiveInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R ?^? : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
 --R abs : % -> % if S has ORDRING
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R characteristic : () -> NonNegativeInteger if S has RING
---R coerce : Fraction Integer -> % if S has RETRACT FRAC INT and S has SETCAT
---R coerce : Integer -> % if S has RETRACT INT and S has SETCAT or S has RING
+--R coerce : Fraction(Integer) -> % if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R coerce : Integer -> % if S has RETRACT(INT) and S has SETCAT or S has RING
 --R coerce : S -> % if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R differentiate : % -> % if S has DIFRING and S has RING
 --R differentiate : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
---R differentiate : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
+--R differentiate : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
 --R differentiate : (%,(S -> S)) -> % if S has RING
 --R differentiate : (%,(S -> S),NonNegativeInteger) -> % if S has RING
 --R dimension : () -> CardinalNumber if S has FIELD
 --R dot : (%,%) -> S if S has RING
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R first : % -> S if Integer has ORDSET
@@ -26651,26 +26722,26 @@ DirectProductMatrixModule(n, R, M, S): DPcategory == DPcapsule where
 --R max : (%,%) -> % if S has OAMONS or S has ORDRING
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R min : (%,%) -> % if S has OAMONS or S has ORDRING
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R negative? : % -> Boolean if S has ORDRING
---R one? : % -> Boolean if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R parts : % -> List S if $ has finiteAggregate
+--R one? : % -> Boolean if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R parts : % -> List(S) if $ has finiteAggregate
 --R positive? : % -> Boolean if S has ORDRING
 --R qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R random : () -> % if S has FINITE
---R recip : % -> Union(%,"failed") if S has DIFRING and S has RING or S has LINEXP INT and S has RING or S has MONOID or S has PDRING SYMBOL and S has RING
---R reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT and S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT and S has RING
---R reducedSystem : Matrix % -> Matrix S if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S) if S has RING
---R retract : % -> Fraction Integer if S has RETRACT FRAC INT and S has SETCAT
---R retract : % -> Integer if S has RETRACT INT and S has SETCAT
+--R recip : % -> Union(%,"failed") if S has DIFRING and S has RING or S has LINEXP(INT) and S has RING or S has MONOID or S has PDRING(SYMBOL) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if S has LINEXP(INT) and S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if S has LINEXP(INT) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(S) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(S),vec: Vector(S)) if S has RING
+--R retract : % -> Fraction(Integer) if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retract : % -> Integer if S has RETRACT(INT) and S has SETCAT
 --R retract : % -> S if S has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT FRAC INT and S has SETCAT
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT and S has SETCAT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT) and S has SETCAT
 --R retractIfCan : % -> Union(S,"failed") if S has SETCAT
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R sign : % -> Integer if S has ORDRING
@@ -26850,7 +26921,7 @@ t1:DIRRING INT := (n:PI):INT +-> moebiusMu n
 --R 
 --R
 --R   (1)  [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
---R                                                  Type: DirichletRing Integer
+--R                                                 Type: DirichletRing(Integer)
 --E 1
 
 --S 2 of 21
@@ -26858,7 +26929,7 @@ t1:DIRRING INT := (n:PI):INT +-> moebiusMu n
 --R 
 --R
 --R   (2)  [1,- 1,- 1,0]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 2
 
 --S 3 of 21
@@ -26866,7 +26937,7 @@ t2:DIRRING INT := [moebiusMu n for n in 1..]
 --R 
 --R
 --R   (3)  [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
---R                                                  Type: DirichletRing Integer
+--R                                                 Type: DirichletRing(Integer)
 --E 3
 
 --S 4 of 21
@@ -26874,7 +26945,7 @@ t2:DIRRING INT := [moebiusMu n for n in 1..]
 --R 
 --R
 --R   (4)  [1,- 1,- 1,0]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 4
 
 --S 5 of 21
@@ -26890,7 +26961,7 @@ mu:DIRRING FRAC INT := (n:PI):FRAC INT +-> moebiusMu n
 --R 
 --R
 --R   (6)  [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
---R                                         Type: DirichletRing Fraction Integer
+--R                                       Type: DirichletRing(Fraction(Integer))
 --E 6
 
 --S 7 of 21
@@ -26898,7 +26969,7 @@ phi:DIRRING FRAC INT := (n:PI):FRAC INT +-> eulerPhi n
 --R 
 --R
 --R   (7)  [1,1,2,2,4,2,6,4,6,4,...]
---R                                         Type: DirichletRing Fraction Integer
+--R                                       Type: DirichletRing(Fraction(Integer))
 --E 7
 
 --S 8 of 21
@@ -26906,7 +26977,7 @@ t3:=[(recip mu * phi).n for n in 1..10]
 --R 
 --R
 --R   (8)  [1,2,3,4,5,6,7,8,9,10]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 8
 
 --S 9 of 21
@@ -26914,7 +26985,7 @@ t4:=[(phi * recip mu).n for n in 1..10]
 --R 
 --R
 --R   (9)  [1,2,3,4,5,6,7,8,9,10]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 9
 
 --S 10 of 21
@@ -26940,7 +27011,7 @@ t5:=[(1/2 * phi).n for n in 1..10]
 --R          1 1
 --R   (12)  [-,-,1,1,2,1,3,2,3,2]
 --R          2 2
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 12
 
 --S 13 of 21
@@ -26950,7 +27021,7 @@ t6:=[eulerPhi n/2 for n in 1..10]
 --R          1 1
 --R   (13)  [-,-,1,1,2,1,3,2,3,2]
 --R          2 2
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 13
 
 --S 14 of 21
@@ -26966,7 +27037,7 @@ t7:=[(recip mu).n for n in 1..10]
 --R 
 --R
 --R   (15)  [1,1,1,1,1,1,1,1,1,1]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 15
 
 --S 16 of 21
@@ -26974,7 +27045,7 @@ t8:=[1 for n in 1..10]
 --R 
 --R
 --R   (16)  [1,1,1,1,1,1,1,1,1,1]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 16
 
 --S 17 of 21
@@ -26990,7 +27061,7 @@ t9:=[(recip mu * phi).n for n in 1..10]
 --R 
 --R
 --R   (18)  [1,2,3,4,5,6,7,8,9,10]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 18
 
 --S 19 of 21
@@ -26998,7 +27069,7 @@ t10:=[n for n in 1..10]
 --R 
 --R
 --R   (19)  [1,2,3,4,5,6,7,8,9,10]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 19
 
 --S 20 of 21
@@ -27011,7 +27082,8 @@ reduce(_and,[(x = y)@Boolean for x in t9 for y in t10])
 
 --S 21 of 21
 )show DirichletRing
---R DirichletRing Coef: Ring  is a domain constructor
+--R 
+--R DirichletRing(Coef: Ring)  is a domain constructor
 --R Abbreviation for DirichletRing is DIRRING 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DIRRING 
@@ -27022,8 +27094,8 @@ reduce(_and,[(x = y)@Boolean for x in t9 for y in t10])
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coerce : % -> Stream Coef
---R coerce : Stream Coef -> %             coerce : Integer -> %
+--R ?^? : (%,PositiveInteger) -> %        coerce : % -> Stream(Coef)
+--R coerce : Stream(Coef) -> %            coerce : Integer -> %
 --R coerce : % -> OutputForm              ?.? : (%,PositiveInteger) -> Coef
 --R hash : % -> SingleInteger             latex : % -> String
 --R one? : % -> Boolean                   recip : % -> Union(%,"failed")
@@ -27259,7 +27331,7 @@ d1 := -4*z + 4*y**2*x + 16*x**2 + 1
 --R
 --R                 2       2
 --R   (2)  - 4z + 4y x + 16x  + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 2
 
 --S 3 of 10
@@ -27268,7 +27340,7 @@ d2 := 2*z*y**2 + 4*x + 1
 --R
 --R            2
 --R   (3)  2z y  + 4x + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 3
 
 --S 4 of 10
@@ -27277,7 +27349,7 @@ d3 := 2*z*x**2 - 2*y**2 - x
 --R
 --R            2     2
 --R   (4)  2z x  - 2y  - x
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 4
 
 --S 5 of 10
@@ -27294,7 +27366,7 @@ groebner [d1,d2,d3]
 --R     7   29  6   17  4   11  3    1  2   15     1
 --R    x  + -- x  - -- x  - -- x  + -- x  + -- x + -]
 --R          4      16       8      32      16     4
---R       Type: List DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R     Type: List(DistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 5
 
 --S 6 of 10
@@ -27309,7 +27381,7 @@ n1 := d1
 --R
 --R          2       2
 --R   (7)  4y x + 16x  - 4z + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 7
 
 --S 8 of 10
@@ -27318,7 +27390,7 @@ n2 := d2
 --R
 --R            2
 --R   (8)  2z y  + 4x + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 8
 
 --S 9 of 10
@@ -27327,7 +27399,7 @@ n3 := d3
 --R
 --R            2     2
 --R   (9)  2z x  - 2y  - x
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 9
 
 --S 10 of 10
@@ -27344,7 +27416,7 @@ groebner [n1,n2,n3]
 --R     2     2     2   1     3
 --R    z  - 4y  + 2x  - - z - - x]
 --R                     4     2
---RType: List HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 10
 )spool
 )lisp (bye)
@@ -27600,7 +27672,8 @@ DistributedMultivariatePolynomial(vl,R): public == private where
 
 --S 1 of 1
 )show Divisor
---R Divisor S: SetCategoryWithDegree  is a domain constructor
+--R 
+--R Divisor(S: SetCategoryWithDegree)  is a domain constructor
 --R Abbreviation for Divisor is DIV 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DIV 
@@ -27621,9 +27694,9 @@ DistributedMultivariatePolynomial(vl,R): public == private where
 --R mapGen : ((S -> S),%) -> %            nthCoef : (%,Integer) -> Integer
 --R nthFactor : (%,Integer) -> S          reductum : % -> %
 --R retract : % -> S                      sample : () -> %
---R size : % -> NonNegativeInteger        split : % -> List %
---R supp : % -> List S                    suppOfPole : % -> List S
---R suppOfZero : % -> List S              zero? : % -> Boolean
+--R size : % -> NonNegativeInteger        split : % -> List(%)
+--R supp : % -> List(S)                   suppOfPole : % -> List(S)
+--R suppOfZero : % -> List(S)             zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R head : % -> Record(gen: S,exp: Integer)
@@ -27631,7 +27704,7 @@ DistributedMultivariatePolynomial(vl,R): public == private where
 --R mapCoef : ((Integer -> Integer),%) -> %
 --R retractIfCan : % -> Union(S,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> List Record(gen: S,exp: Integer)
+--R terms : % -> List(Record(gen: S,exp: Integer))
 --R
 --E 1
 
@@ -28054,7 +28127,7 @@ avg l ==
 --S 7 of 13
 avg []
 --R 
---R   Compiling function avg with type List DoubleFloat -> DoubleFloat 
+--R   Compiling function avg with type List(DoubleFloat) -> DoubleFloat 
 --R
 --R   (7)  0.
 --R                                                            Type: DoubleFloat
@@ -28097,7 +28170,7 @@ integerDecode a
 --R 
 --R
 --R   (12)  [6004799503160662,- 54,- 1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 12
 
 --S 13 of 13
@@ -28107,7 +28180,7 @@ machineFraction a
 --R           3002399751580331
 --R   (13)  - ----------------
 --R           9007199254740992
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 13
  
 )spool
@@ -28715,6 +28788,7 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
 
 --S 1 of 6
 )show DoubleFloatMatrix
+--R 
 --R DoubleFloatMatrix  is a domain constructor
 --R Abbreviation for DoubleFloatMatrix is DFMAT 
 --R This constructor is exposed in this frame.
@@ -28726,13 +28800,13 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
 --R ?+? : (%,%) -> %                      -? : % -> %
 --R ?-? : (%,%) -> %                      antisymmetric? : % -> Boolean
 --R coerce : DoubleFloatVector -> %       copy : % -> %
---R diagonal? : % -> Boolean              diagonalMatrix : List % -> %
+--R diagonal? : % -> Boolean              diagonalMatrix : List(%) -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                fill! : (%,DoubleFloat) -> %
 --R horizConcat : (%,%) -> %              maxColIndex : % -> Integer
 --R maxRowIndex : % -> Integer            minColIndex : % -> Integer
 --R minRowIndex : % -> Integer            ncols : % -> NonNegativeInteger
---R nrows : % -> NonNegativeInteger       parts : % -> List DoubleFloat
+--R nrows : % -> NonNegativeInteger       parts : % -> List(DoubleFloat)
 --R qnew : (Integer,Integer) -> %         sample : () -> %
 --R square? : % -> Boolean                squareTop : % -> %
 --R symmetric? : % -> Boolean             transpose : % -> %
@@ -28747,36 +28821,36 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
 --R any? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if DoubleFloat has SETCAT
 --R column : (%,Integer) -> DoubleFloatVector
---R columnSpace : % -> List DoubleFloatVector if DoubleFloat has EUCDOM
+--R columnSpace : % -> List(DoubleFloatVector) if DoubleFloat has EUCDOM
 --R count : (DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and DoubleFloat has SETCAT
 --R count : ((DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R determinant : % -> DoubleFloat if DoubleFloat has commutative *
---R diagonalMatrix : List DoubleFloat -> %
---R elt : (%,List Integer,List Integer) -> %
+--R determinant : % -> DoubleFloat if DoubleFloat has commutative(*)
+--R diagonalMatrix : List(DoubleFloat) -> %
+--R elt : (%,List(Integer),List(Integer)) -> %
 --R elt : (%,Integer,Integer,DoubleFloat) -> DoubleFloat
 --R elt : (%,Integer,Integer) -> DoubleFloat
---R eval : (%,List DoubleFloat,List DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,DoubleFloat,DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,List Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
+--R eval : (%,List(DoubleFloat),List(DoubleFloat)) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,DoubleFloat,DoubleFloat) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,Equation(DoubleFloat)) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,List(Equation(DoubleFloat))) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
 --R every? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R exquo : (%,DoubleFloat) -> Union(%,"failed") if DoubleFloat has INTDOM
 --R hash : % -> SingleInteger if DoubleFloat has SETCAT
 --R inverse : % -> Union(%,"failed") if DoubleFloat has FIELD
 --R latex : % -> String if DoubleFloat has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
---R listOfLists : % -> List List DoubleFloat
+--R listOfLists : % -> List(List(DoubleFloat))
 --R map : (((DoubleFloat,DoubleFloat) -> DoubleFloat),%,%,DoubleFloat) -> %
 --R map : (((DoubleFloat,DoubleFloat) -> DoubleFloat),%,%) -> %
 --R map : ((DoubleFloat -> DoubleFloat),%) -> %
 --R map! : ((DoubleFloat -> DoubleFloat),%) -> %
---R matrix : List List DoubleFloat -> %
+--R matrix : List(List(DoubleFloat)) -> %
 --R member? : (DoubleFloat,%) -> Boolean if $ has finiteAggregate and DoubleFloat has SETCAT
---R members : % -> List DoubleFloat if $ has finiteAggregate
---R minordet : % -> DoubleFloat if DoubleFloat has commutative *
+--R members : % -> List(DoubleFloat) if $ has finiteAggregate
+--R minordet : % -> DoubleFloat if DoubleFloat has commutative(*)
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,NonNegativeInteger,DoubleFloat) -> %
---R nullSpace : % -> List DoubleFloatVector if DoubleFloat has INTDOM
+--R nullSpace : % -> List(DoubleFloatVector) if DoubleFloat has INTDOM
 --R nullity : % -> NonNegativeInteger if DoubleFloat has INTDOM
 --R pfaffian : % -> DoubleFloat if DoubleFloat has COMRING
 --R qelt : (%,Integer,Integer) -> DoubleFloat
@@ -28787,7 +28861,7 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
 --R scalarMatrix : (NonNegativeInteger,DoubleFloat) -> %
 --R setColumn! : (%,Integer,DoubleFloatVector) -> %
 --R setRow! : (%,Integer,DoubleFloatVector) -> %
---R setelt : (%,List Integer,List Integer,%) -> %
+--R setelt : (%,List(Integer),List(Integer),%) -> %
 --R setelt : (%,Integer,Integer,DoubleFloat) -> DoubleFloat
 --R setsubMatrix! : (%,Integer,Integer,%) -> %
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -29038,22 +29112,22 @@ DoubleFloatMatrix : MatrixCategory(DoubleFloat,
 
 --S 1 of 6
 )show DoubleFloatVector
+--R 
 --R DoubleFloatVector  is a domain constructor
 --R Abbreviation for DoubleFloatVector is DFVEC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for DFVEC 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R concat : (DoubleFloat,%) -> %         concat : (%,DoubleFloat) -> %
---R construct : List DoubleFloat -> %     copy : % -> %
---R delete : (%,Integer) -> %             ?.? : (%,Integer) -> DoubleFloat
---R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List DoubleFloat       eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
---R insert : (%,%,Integer) -> %           qelt : (%,Integer) -> DoubleFloat
---R qnew : Integer -> %                   reverse : % -> %
---R sample : () -> %                     
+--R copy : % -> %                         delete : (%,Integer) -> %
+--R ?.? : (%,Integer) -> DoubleFloat      empty : () -> %
+--R empty? : % -> Boolean                 entries : % -> List(DoubleFloat)
+--R eq? : (%,%) -> Boolean                index? : (Integer,%) -> Boolean
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
+--R qelt : (%,Integer) -> DoubleFloat     qnew : Integer -> %
+--R reverse : % -> %                      sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?*? : (%,DoubleFloat) -> % if DoubleFloat has MONOID
 --R ?*? : (DoubleFloat,%) -> % if DoubleFloat has MONOID
@@ -29068,20 +29142,21 @@ DoubleFloatMatrix : MatrixCategory(DoubleFloat,
 --R ?>=? : (%,%) -> Boolean if DoubleFloat has ORDSET
 --R any? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if DoubleFloat has SETCAT
---R convert : % -> InputForm if DoubleFloat has KONVERT INFORM
+--R construct : List(DoubleFloat) -> %
+--R convert : % -> InputForm if DoubleFloat has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (DoubleFloat,%) -> NonNegativeInteger if $ has finiteAggregate and DoubleFloat has SETCAT
 --R count : ((DoubleFloat -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cross : (%,%) -> % if DoubleFloat has RING
---R delete : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
 --R dot : (%,%) -> DoubleFloat if DoubleFloat has RING
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R elt : (%,Integer,DoubleFloat) -> DoubleFloat
 --R entry? : (DoubleFloat,%) -> Boolean if $ has finiteAggregate and DoubleFloat has SETCAT
---R eval : (%,List DoubleFloat,List DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,DoubleFloat,DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
---R eval : (%,List Equation DoubleFloat) -> % if DoubleFloat has EVALAB DFLOAT and DoubleFloat has SETCAT
+--R eval : (%,List(DoubleFloat),List(DoubleFloat)) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,DoubleFloat,DoubleFloat) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,Equation(DoubleFloat)) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
+--R eval : (%,List(Equation(DoubleFloat))) -> % if DoubleFloat has EVALAB(DFLOAT) and DoubleFloat has SETCAT
 --R every? : ((DoubleFloat -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,DoubleFloat) -> % if $ has shallowlyMutable
 --R find : ((DoubleFloat -> Boolean),%) -> Union(DoubleFloat,"failed")
@@ -29098,15 +29173,15 @@ DoubleFloatMatrix : MatrixCategory(DoubleFloat,
 --R max : (%,%) -> % if DoubleFloat has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (DoubleFloat,%) -> Boolean if $ has finiteAggregate and DoubleFloat has SETCAT
---R members : % -> List DoubleFloat if $ has finiteAggregate
+--R members : % -> List(DoubleFloat) if $ has finiteAggregate
 --R merge : (%,%) -> % if DoubleFloat has ORDSET
 --R merge : (((DoubleFloat,DoubleFloat) -> Boolean),%,%) -> %
 --R min : (%,%) -> % if DoubleFloat has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,DoubleFloat) -> %
---R outerProduct : (%,%) -> Matrix DoubleFloat if DoubleFloat has RING
---R parts : % -> List DoubleFloat if $ has finiteAggregate
+--R outerProduct : (%,%) -> Matrix(DoubleFloat) if DoubleFloat has RING
+--R parts : % -> List(DoubleFloat) if $ has finiteAggregate
 --R position : (DoubleFloat,%,Integer) -> Integer if DoubleFloat has SETCAT
 --R position : (DoubleFloat,%) -> Integer if DoubleFloat has SETCAT
 --R position : ((DoubleFloat -> Boolean),%) -> Integer
@@ -29119,7 +29194,7 @@ DoubleFloatMatrix : MatrixCategory(DoubleFloat,
 --R removeDuplicates : % -> % if $ has finiteAggregate and DoubleFloat has SETCAT
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((DoubleFloat -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,DoubleFloat) -> DoubleFloat if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),DoubleFloat) -> DoubleFloat if $ has shallowlyMutable
 --R setelt : (%,Integer,DoubleFloat) -> DoubleFloat if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if DoubleFloat has ORDSET
@@ -29347,6 +29422,7 @@ DoubleFloatVector : VectorCategory DoubleFloat with
 
 --S 1 of 1
 )show DrawOption
+--R 
 --R DrawOption  is a domain constructor
 --R Abbreviation for DrawOption is DROPT 
 --R This constructor is exposed in this frame.
@@ -29354,25 +29430,26 @@ DoubleFloatVector : VectorCategory DoubleFloat with
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                adaptive : Boolean -> %
---R clip : List Segment Float -> %        clip : Boolean -> %
+--R clip : List(Segment(Float)) -> %      clip : Boolean -> %
 --R coerce : % -> OutputForm              curveColor : Palette -> %
 --R curveColor : Float -> %               hash : % -> SingleInteger
 --R latex : % -> String                   pointColor : Palette -> %
---R pointColor : Float -> %               range : List Segment Float -> %
---R ranges : List Segment Float -> %      style : String -> %
---R title : String -> %                   toScale : Boolean -> %
---R tubePoints : PositiveInteger -> %     tubeRadius : Float -> %
---R unit : List Float -> %                var1Steps : PositiveInteger -> %
---R var2Steps : PositiveInteger -> %      ?~=? : (%,%) -> Boolean
+--R pointColor : Float -> %               range : List(Segment(Float)) -> %
+--R style : String -> %                   title : String -> %
+--R toScale : Boolean -> %                tubePoints : PositiveInteger -> %
+--R tubeRadius : Float -> %               unit : List(Float) -> %
+--R var1Steps : PositiveInteger -> %      var2Steps : PositiveInteger -> %
+--R ?~=? : (%,%) -> Boolean              
 --R colorFunction : ((DoubleFloat,DoubleFloat,DoubleFloat) -> DoubleFloat) -> %
 --R colorFunction : ((DoubleFloat,DoubleFloat) -> DoubleFloat) -> %
 --R colorFunction : (DoubleFloat -> DoubleFloat) -> %
---R coord : (Point DoubleFloat -> Point DoubleFloat) -> %
---R coordinates : (Point DoubleFloat -> Point DoubleFloat) -> %
---R option : (List %,Symbol) -> Union(Any,"failed")
---R option? : (List %,Symbol) -> Boolean
---R range : List Segment Fraction Integer -> %
---R space : ThreeSpace DoubleFloat -> %
+--R coord : (Point(DoubleFloat) -> Point(DoubleFloat)) -> %
+--R coordinates : (Point(DoubleFloat) -> Point(DoubleFloat)) -> %
+--R option : (List(%),Symbol) -> Union(Any,"failed")
+--R option? : (List(%),Symbol) -> Boolean
+--R range : List(Segment(Fraction(Integer))) -> %
+--R ranges : List(Segment(Float)) -> %
+--R space : ThreeSpace(DoubleFloat) -> %
 --R viewpoint : Record(theta: DoubleFloat,phi: DoubleFloat,scale: DoubleFloat,scaleX: DoubleFloat,scaleY: DoubleFloat,scaleZ: DoubleFloat,deltaX: DoubleFloat,deltaY: DoubleFloat) -> %
 --R
 --E 1
@@ -29655,6 +29732,7 @@ DrawOption(): Exports == Implementation where
 
 --S 1 of 1
 )show d01ajfAnnaType
+--R 
 --R d01ajfAnnaType  is a domain constructor
 --R Abbreviation for d01ajfAnnaType is D01AJFA 
 --R This constructor is exposed in this frame.
@@ -29664,10 +29742,10 @@ DrawOption(): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -29772,6 +29850,7 @@ d01ajfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01akfAnnaType
+--R 
 --R d01akfAnnaType  is a domain constructor
 --R Abbreviation for d01akfAnnaType is D01AKFA 
 --R This constructor is exposed in this frame.
@@ -29781,10 +29860,10 @@ d01ajfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -29894,6 +29973,7 @@ d01akfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01alfAnnaType
+--R 
 --R d01alfAnnaType  is a domain constructor
 --R Abbreviation for d01alfAnnaType is D01ALFA 
 --R This constructor is exposed in this frame.
@@ -29903,10 +29983,10 @@ d01akfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30028,6 +30108,7 @@ d01alfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01amfAnnaType
+--R 
 --R d01amfAnnaType  is a domain constructor
 --R Abbreviation for d01amfAnnaType is D01AMFA 
 --R This constructor is exposed in this frame.
@@ -30037,10 +30118,10 @@ d01alfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30158,6 +30239,7 @@ d01amfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01anfAnnaType
+--R 
 --R d01anfAnnaType  is a domain constructor
 --R Abbreviation for d01anfAnnaType is D01ANFA 
 --R This constructor is exposed in this frame.
@@ -30167,10 +30249,10 @@ d01amfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30290,6 +30372,7 @@ d01anfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01apfAnnaType
+--R 
 --R d01apfAnnaType  is a domain constructor
 --R Abbreviation for d01apfAnnaType is D01APFA 
 --R This constructor is exposed in this frame.
@@ -30299,10 +30382,10 @@ d01anfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30435,6 +30518,7 @@ d01apfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01aqfAnnaType
+--R 
 --R d01aqfAnnaType  is a domain constructor
 --R Abbreviation for d01aqfAnnaType is D01AQFA 
 --R This constructor is exposed in this frame.
@@ -30444,10 +30528,10 @@ d01apfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30576,6 +30660,7 @@ d01aqfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01asfAnnaType
+--R 
 --R d01asfAnnaType  is a domain constructor
 --R Abbreviation for d01asfAnnaType is D01ASFA 
 --R This constructor is exposed in this frame.
@@ -30585,10 +30670,10 @@ d01aqfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30714,6 +30799,7 @@ d01asfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01fcfAnnaType
+--R 
 --R d01fcfAnnaType  is a domain constructor
 --R Abbreviation for d01fcfAnnaType is D01FCFA 
 --R This constructor is exposed in this frame.
@@ -30723,10 +30809,10 @@ d01asfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30842,6 +30928,7 @@ d01fcfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01gbfAnnaType
+--R 
 --R d01gbfAnnaType  is a domain constructor
 --R Abbreviation for d01gbfAnnaType is D01GBFA 
 --R This constructor is exposed in this frame.
@@ -30851,10 +30938,10 @@ d01fcfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -30976,6 +31063,7 @@ d01gbfAnnaType(): NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d01TransformFunctionType
+--R 
 --R d01TransformFunctionType  is a domain constructor
 --R Abbreviation for d01TransformFunctionType is D01TRNS 
 --R This constructor is exposed in this frame.
@@ -30985,10 +31073,10 @@ d01gbfAnnaType(): NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R measure : (RoutinesTable,Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
---R numericalIntegration : (Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
---R numericalIntegration : (Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R measure : (RoutinesTable,Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String,extra: Result)
+--R numericalIntegration : (Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
+--R numericalIntegration : (Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),Result) -> Result
 --R
 --E 1
 
@@ -31196,6 +31284,7 @@ d01TransformFunctionType():NumericalIntegrationCategory == Result add
 
 --S 1 of 1
 )show d02bbfAnnaType
+--R 
 --R d02bbfAnnaType  is a domain constructor
 --R Abbreviation for d02bbfAnnaType is D02BBFA 
 --R This constructor is exposed in this frame.
@@ -31205,8 +31294,8 @@ d01TransformFunctionType():NumericalIntegrationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -31347,6 +31436,7 @@ d02bbfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 
 --S 1 of 1
 )show d02bhfAnnaType
+--R 
 --R d02bhfAnnaType  is a domain constructor
 --R Abbreviation for d02bhfAnnaType is D02BHFA 
 --R This constructor is exposed in this frame.
@@ -31356,8 +31446,8 @@ d02bbfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -31495,6 +31585,7 @@ d02bhfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 
 --S 1 of 1
 )show d02cjfAnnaType
+--R 
 --R d02cjfAnnaType  is a domain constructor
 --R Abbreviation for d02cjfAnnaType is D02CJFA 
 --R This constructor is exposed in this frame.
@@ -31504,8 +31595,8 @@ d02bhfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -31636,6 +31727,7 @@ d02cjfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 
 --S 1 of 1
 )show d02ejfAnnaType
+--R 
 --R d02ejfAnnaType  is a domain constructor
 --R Abbreviation for d02ejfAnnaType is D02EJFA 
 --R This constructor is exposed in this frame.
@@ -31645,8 +31737,8 @@ d02cjfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R ODESolve : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -31808,6 +31900,7 @@ d02ejfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 
 --S 1 of 1
 )show d03eefAnnaType
+--R 
 --R d03eefAnnaType  is a domain constructor
 --R Abbreviation for d03eefAnnaType is D03EEFA 
 --R This constructor is exposed in this frame.
@@ -31817,8 +31910,8 @@ d02ejfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R PDESolve : Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R PDESolve : Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -31940,6 +32033,7 @@ d03eefAnnaType():PartialDifferentialEquationsSolverCategory == Result add
 
 --S 1 of 1
 )show d03fafAnnaType
+--R 
 --R d03fafAnnaType  is a domain constructor
 --R Abbreviation for d03fafAnnaType is D03FAFA 
 --R This constructor is exposed in this frame.
@@ -31949,8 +32043,8 @@ d03eefAnnaType():PartialDifferentialEquationsSolverCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R PDESolve : Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat) -> Result
---R measure : (RoutinesTable,Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat)) -> Record(measure: Float,explanations: String)
+--R PDESolve : Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat)) -> Record(measure: Float,explanations: String)
 --R
 --E 1
 
@@ -32043,7 +32137,7 @@ eq1 := 3*x + 4*y = 5
 --R 
 --R
 --R   (1)  4y + 3x= 5
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 1
 
 --S 2 of 12
@@ -32051,7 +32145,7 @@ eq2 := 2*x + 2*y = 3
 --R 
 --R
 --R   (2)  2y + 2x= 3
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 2
 
 --S 3 of 12
@@ -32059,7 +32153,7 @@ lhs eq1
 --R 
 --R
 --R   (3)  4y + 3x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 3
 
 --S 4 of 12
@@ -32067,7 +32161,7 @@ rhs eq1
 --R 
 --R
 --R   (4)  5
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 4
 
 --S 5 of 12
@@ -32075,7 +32169,7 @@ eq1 + eq2
 --R 
 --R
 --R   (5)  6y + 5x= 8
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 5
 
 --S 6 of 12
@@ -32084,7 +32178,7 @@ eq1 * eq2
 --R
 --R          2             2
 --R   (6)  8y  + 14x y + 6x = 15
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 6
 
 --S 7 of 12
@@ -32092,7 +32186,7 @@ eq1 * eq2
 --R 
 --R
 --R   (7)  x= 1
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 7
 
 --S 8 of 12
@@ -32101,7 +32195,7 @@ eq1**2
 --R
 --R           2             2
 --R   (8)  16y  + 24x y + 9x = 25
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 8
 
 --S 9 of 12
@@ -32117,7 +32211,7 @@ eqpol := x+1 = y
 --R 
 --R
 --R   (10)  x + 1= y
---R                                            Type: Equation Polynomial Integer
+--R                                          Type: Equation(Polynomial(Integer))
 --E 10
 
 --S 11 of 12
@@ -32501,7 +32595,7 @@ e: EqTable(List Integer, Integer) := table()
 --R 
 --R
 --R   (1)  table()
---R                                          Type: EqTable(List Integer,Integer)
+--R                                         Type: EqTable(List(Integer),Integer)
 --E 1
 
 --S 2 of 6
@@ -32509,7 +32603,7 @@ l1 := [1,2,3]
 --R 
 --R
 --R   (2)  [1,2,3]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 2
 
 --S 3 of 6
@@ -32517,7 +32611,7 @@ l2 := [1,2,3]
 --R 
 --R
 --R   (3)  [1,2,3]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 3
 
 --S 4 of 6
@@ -32702,7 +32796,8 @@ EqTable(Key: SetCategory, Entry: SetCategory) ==
 
 --S 1 of 1
 )show EuclideanModularRing
---R EuclideanModularRing(S: CommutativeRing,R: UnivariatePolynomialCategory S,Mod: AbelianMonoid,reduction: ((R,Mod) -> R),merge: ((Mod,Mod) -> Union(Mod,"failed")),exactQuo: ((R,R,Mod) -> Union(R,"failed")))  is a domain constructor
+--R 
+--R EuclideanModularRing(S: CommutativeRing,R: UnivariatePolynomialCategory(S),Mod: AbelianMonoid,reduction: ((R,Mod) -> R),merge: ((Mod,Mod) -> Union(Mod,"failed")),exactQuo: ((R,R,Mod) -> Union(R,"failed")))  is a domain constructor
 --R Abbreviation for EuclideanModularRing is EMR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for EMR 
@@ -32716,10 +32811,10 @@ EqTable(Key: SetCategory, Entry: SetCategory) ==
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> R                       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R ?.? : (%,R) -> R                      gcd : List % -> %
+--R ?.? : (%,R) -> R                      gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R modulus : % -> Mod                    one? : % -> Boolean
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
 --R reduce : (R,Mod) -> %                 ?rem? : (%,%) -> %
@@ -32733,13 +32828,13 @@ EqTable(Key: SetCategory, Entry: SetCategory) ==
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
 --R exQuo : (%,%) -> Union(%,"failed")
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -33083,13 +33178,14 @@ Exit: SetCategory == add
 
 --S 1 of 1
 )show ExponentialExpansion
---R ExponentialExpansion(R: Join(OrderedSet,RetractableTo Integer,LinearlyExplicitRingOver Integer,GcdDomain),FE: Join(AlgebraicallyClosedField,TranscendentalFunctionCategory,FunctionSpace R),var: Symbol,cen: FE)  is a domain constructor
+--R 
+--R ExponentialExpansion(R: Join(OrderedSet,RetractableTo(Integer),LinearlyExplicitRingOver(Integer),GcdDomain),FE: Join(AlgebraicallyClosedField,TranscendentalFunctionCategory,FunctionSpace(R)),var: Symbol,cen: FE)  is a domain constructor
 --R Abbreviation for ExponentialExpansion is EXPEXPAN 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for EXPEXPAN 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -33097,18 +33193,18 @@ Exit: SetCategory == add
 --R ?/? : (%,%) -> %                      ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
---R associates? : (%,%) -> Boolean        coerce : Fraction Integer -> %
+--R associates? : (%,%) -> Boolean        coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              denominator : % -> %
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R numerator : % -> %                    one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (%,UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> %
@@ -33122,10 +33218,10 @@ Exit: SetCategory == add
 --R ?>=? : (%,%) -> Boolean if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has ORDSET
 --R D : (%,(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))) -> %
 --R D : (%,(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R D : (%,List Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R D : (%,Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has DIFRING
 --R D : % -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has DIFRING
 --R ?^? : (%,NonNegativeInteger) -> %
@@ -33134,72 +33230,72 @@ Exit: SetCategory == add
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT or UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has CHARNZ
 --R coerce : UnivariatePuiseuxSeries(FE,var,cen) -> %
---R coerce : Symbol -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT SYMBOL
+--R coerce : Symbol -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(SYMBOL)
 --R coerce : UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> %
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
 --R convert : % -> DoubleFloat if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has REAL
 --R convert : % -> Float if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has REAL
---R convert : % -> InputForm if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT INFORM
---R convert : % -> Pattern Float if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT PATTERN INT
+--R convert : % -> InputForm if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT(INFORM)
+--R convert : % -> Pattern(Float) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has KONVERT(PATTERN(INT))
 --R denom : % -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)
 --R differentiate : (%,(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))) -> %
 --R differentiate : (%,(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has DIFRING
 --R differentiate : % -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has DIFRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R ?.? : (%,UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has ELTAB(UPXSSING(R,FE,var,cen),UPXSSING(R,FE,var,cen))
 --R euclideanSize : % -> NonNegativeInteger
 --R eval : (%,Symbol,UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has IEVALAB(SYMBOL,UPXSSING(R,FE,var,cen))
---R eval : (%,List Symbol,List UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has IEVALAB(SYMBOL,UPXSSING(R,FE,var,cen))
---R eval : (%,List Equation UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB UPXSSING(R,FE,var,cen)
---R eval : (%,Equation UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB UPXSSING(R,FE,var,cen)
---R eval : (%,UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen),UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB UPXSSING(R,FE,var,cen)
---R eval : (%,List UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen),List UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB UPXSSING(R,FE,var,cen)
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,List(Symbol),List(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has IEVALAB(SYMBOL,UPXSSING(R,FE,var,cen))
+--R eval : (%,List(Equation(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)))) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB(UPXSSING(R,FE,var,cen))
+--R eval : (%,Equation(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB(UPXSSING(R,FE,var,cen))
+--R eval : (%,UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen),UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB(UPXSSING(R,FE,var,cen))
+--R eval : (%,List(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)),List(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EVALAB(UPXSSING(R,FE,var,cen))
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
 --R floor : % -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has INS
 --R fractionPart : % -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R init : () -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has STEP
---R limitPlus : % -> Union(OrderedCompletion FE,"failed")
+--R limitPlus : % -> Union(OrderedCompletion(FE),"failed")
 --R map : ((UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)),%) -> %
 --R max : (%,%) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has ORDSET
 --R min : (%,%) -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has ORDSET
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R negative? : % -> Boolean if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has OINTDOM
 --R nextItem : % -> Union(%,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has STEP
 --R numer : % -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PATMAB INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PATMAB(INT)
 --R positive? : % -> Boolean if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has OINTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has INS
---R reducedSystem : Matrix % -> Matrix UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen),vec: Vector UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has LINEXP INT
+--R reducedSystem : Matrix(%) -> Matrix(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)),vec: Vector(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has LINEXP(INT)
 --R retract : % -> UnivariatePuiseuxSeries(FE,var,cen)
---R retract : % -> Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT INT
---R retract : % -> Fraction Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT INT
---R retract : % -> Symbol if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT SYMBOL
+--R retract : % -> Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(INT)
+--R retract : % -> Symbol if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(SYMBOL)
 --R retract : % -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen)
 --R retractIfCan : % -> Union(UnivariatePuiseuxSeries(FE,var,cen),"failed")
---R retractIfCan : % -> Union(Integer,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT INT
---R retractIfCan : % -> Union(Symbol,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT SYMBOL
+--R retractIfCan : % -> Union(Integer,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(INT)
+--R retractIfCan : % -> Union(Symbol,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has RETRACT(SYMBOL)
 --R retractIfCan : % -> Union(UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen),"failed")
 --R sign : % -> Integer if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has OINTDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R wholePart : % -> UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) if UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen) has EUCDOM
@@ -33480,7 +33576,7 @@ sin(x) + 3*cos(x)**2
 --R
 --R                        2
 --R   (1)  sin(x) + 3cos(x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 1
 
 --S 2 of 23
@@ -33488,7 +33584,7 @@ tan(x) - 3.45*x
 --R 
 --R
 --R   (2)  tan(x) - 3.45 x
---R                                                       Type: Expression Float
+--R                                                      Type: Expression(Float)
 --E 2
 
 --S 3 of 23
@@ -33499,7 +33595,7 @@ tan(x) - 3.45*x
 --R        - tan(\|7 )  + 2sin(\|11 )tan(\|7 ) - sin(\|11 )
 --R   (3)  -------------------------------------------------
 --R                          cos(y - x) - 4
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 3
 
 --S 4 of 23
@@ -33507,7 +33603,7 @@ log(exp  x)@Expression(Integer)
 --R 
 --R
 --R   (4)  x
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 4
 
 --S 5 of 23
@@ -33516,7 +33612,7 @@ log(exp  x)@Expression(Complex Integer)
 --R
 --R              x
 --R   (5)  log(%e )
---R                                             Type: Expression Complex Integer
+--R                                           Type: Expression(Complex(Integer))
 --E 5
 
 --S 6 of 23
@@ -33536,7 +33632,7 @@ sqrt 3 + sqrt(2 + sqrt(-5))
 --R         +----------+
 --R         | +---+         +-+
 --R   (7)  \|\|- 5  + 2  + \|3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 7
 
 --S 8 of 23
@@ -33556,7 +33652,7 @@ e := (sin(x) - 4)**2 / ( 1 - 2*y*sqrt(- y) )
 --R   (9)  ------------------------
 --R                 +---+
 --R              2y\|- y  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 9
 
 --S 10 of 23
@@ -33565,7 +33661,7 @@ numer e
 --R
 --R                 2
 --R   (10)  - sin(x)  + 8sin(x) - 16
---R        Type: SparseMultivariatePolynomial(Integer,Kernel Expression Integer)
+--R      Type: SparseMultivariatePolynomial(Integer,Kernel(Expression(Integer)))
 --E 10
 
 --S 11 of 23
@@ -33574,7 +33670,7 @@ denom e
 --R
 --R            +---+
 --R   (11)  2y\|- y  - 1
---R        Type: SparseMultivariatePolynomial(Integer,Kernel Expression Integer)
+--R      Type: SparseMultivariatePolynomial(Integer,Kernel(Expression(Integer)))
 --E 11
 
 --S 12 of 23
@@ -33586,7 +33682,7 @@ D(e, x)
 --R   (12)  --------------------------------------------------------------
 --R                                  +---+     3
 --R                               4y\|- y  + 4y  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 12
 
 --S 13 of 23
@@ -33608,7 +33704,7 @@ D(e, [x, y], [1, 2])
 --R     + 
 --R          2
 --R       16y
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 13
 
 --S 14 of 23
@@ -33616,7 +33712,7 @@ complexNumeric(cos(2 - 3*%i))
 --R 
 --R
 --R   (14)  - 4.1896256909 688072301 + 9.1092278937 55336598 %i
---R                                                          Type: Complex Float
+--R                                                         Type: Complex(Float)
 --E 14
 
 --S 15 of 23
@@ -33633,7 +33729,7 @@ e2 := cos(x**2 - y + 3)
 --R
 --R                  2
 --R   (16)  cos(y - x  - 3)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 16
 
 --S 17 of 23
@@ -33642,7 +33738,7 @@ e3 := asin(e2) - %pi/2
 --R
 --R                2
 --R   (17)  - y + x  + 3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 17
 
 --S 18 of 23
@@ -33651,7 +33747,7 @@ e3 :: Polynomial Integer
 --R
 --R                2
 --R   (18)  - y + x  + 3
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 18
 
 --S 19 of 23
@@ -33668,7 +33764,7 @@ sin %pi
 --R 
 --R
 --R   (20)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 20
 
 --S 21 of 23
@@ -33679,7 +33775,7 @@ cos(%pi / 4)
 --R         \|2
 --R   (21)  ----
 --R           2
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 21
 
 --S 22 of 23
@@ -33688,7 +33784,7 @@ tan(x)**6 + 3*tan(x)**4 + 3*tan(x)**2 + 1
 --R
 --R               6          4          2
 --R   (22)  tan(x)  + 3tan(x)  + 3tan(x)  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 22
 
 --S 23 of 23
@@ -33699,7 +33795,7 @@ simplify %
 --R   (23)  -------
 --R               6
 --R         cos(x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 23
 )spool
 )lisp (bye)
@@ -34556,6 +34652,7 @@ Expression(R:OrderedSet): Exports == Implementation where
 
 --S 1 of 1
 )show ExponentialOfUnivariatePuiseuxSeries
+--R 
 --R ExponentialOfUnivariatePuiseuxSeries(FE: Join(Field,OrderedSet),var: Symbol,cen: FE)  is a domain constructor
 --R Abbreviation for ExponentialOfUnivariatePuiseuxSeries is EXPUPXS 
 --R This constructor is not exposed in this frame.
@@ -34572,120 +34669,120 @@ Expression(R:OrderedSet): Exports == Implementation where
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> FE
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R complete : % -> %                     degree : % -> Fraction Integer
---R ?.? : (%,Fraction Integer) -> FE      hash : % -> SingleInteger
+--R complete : % -> %                     degree : % -> Fraction(Integer)
+--R ?.? : (%,Fraction(Integer)) -> FE     hash : % -> SingleInteger
 --R inv : % -> % if FE has FIELD          latex : % -> String
 --R leadingCoefficient : % -> FE          leadingMonomial : % -> %
 --R map : ((FE -> FE),%) -> %             max : (%,%) -> %
 --R min : (%,%) -> %                      monomial? : % -> Boolean
---R one? : % -> Boolean                   order : % -> Fraction Integer
+--R one? : % -> Boolean                   order : % -> Fraction(Integer)
 --R pole? : % -> Boolean                  recip : % -> Union(%,"failed")
 --R reductum : % -> %                     sample : () -> %
 --R variable : % -> Symbol                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R ?*? : (%,Fraction Integer) -> % if FE has ALGEBRA FRAC INT
---R ?*? : (Fraction Integer,%) -> % if FE has ALGEBRA FRAC INT
+--R ?*? : (%,Fraction(Integer)) -> % if FE has ALGEBRA(FRAC(INT))
+--R ?*? : (Fraction(Integer),%) -> % if FE has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
---R ?**? : (%,Fraction Integer) -> % if FE has ALGEBRA FRAC INT
---R ?**? : (%,%) -> % if FE has ALGEBRA FRAC INT
+--R ?**? : (%,Fraction(Integer)) -> % if FE has ALGEBRA(FRAC(INT))
+--R ?**? : (%,%) -> % if FE has ALGEBRA(FRAC(INT))
 --R ?**? : (%,Integer) -> % if FE has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,%) -> % if FE has FIELD
 --R ?/? : (%,FE) -> % if FE has FIELD
---R D : % -> % if FE has *: (Fraction Integer,FE) -> FE
---R D : (%,NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE
---R D : (%,Symbol) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R D : (%,List Symbol) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
+--R D : % -> % if FE has *: (Fraction(Integer),FE) -> FE
+--R D : (%,NonNegativeInteger) -> % if FE has *: (Fraction(Integer),FE) -> FE
+--R D : (%,Symbol) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
 --R ?^? : (%,Integer) -> % if FE has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
---R acos : % -> % if FE has ALGEBRA FRAC INT
---R acosh : % -> % if FE has ALGEBRA FRAC INT
---R acot : % -> % if FE has ALGEBRA FRAC INT
---R acoth : % -> % if FE has ALGEBRA FRAC INT
---R acsc : % -> % if FE has ALGEBRA FRAC INT
---R acsch : % -> % if FE has ALGEBRA FRAC INT
---R approximate : (%,Fraction Integer) -> FE if FE has **: (FE,Fraction Integer) -> FE and FE has coerce: Symbol -> FE
---R asec : % -> % if FE has ALGEBRA FRAC INT
---R asech : % -> % if FE has ALGEBRA FRAC INT
---R asin : % -> % if FE has ALGEBRA FRAC INT
---R asinh : % -> % if FE has ALGEBRA FRAC INT
+--R acos : % -> % if FE has ALGEBRA(FRAC(INT))
+--R acosh : % -> % if FE has ALGEBRA(FRAC(INT))
+--R acot : % -> % if FE has ALGEBRA(FRAC(INT))
+--R acoth : % -> % if FE has ALGEBRA(FRAC(INT))
+--R acsc : % -> % if FE has ALGEBRA(FRAC(INT))
+--R acsch : % -> % if FE has ALGEBRA(FRAC(INT))
+--R approximate : (%,Fraction(Integer)) -> FE if FE has **: (FE,Fraction(Integer)) -> FE and FE has coerce: Symbol -> FE
+--R asec : % -> % if FE has ALGEBRA(FRAC(INT))
+--R asech : % -> % if FE has ALGEBRA(FRAC(INT))
+--R asin : % -> % if FE has ALGEBRA(FRAC(INT))
+--R asinh : % -> % if FE has ALGEBRA(FRAC(INT))
 --R associates? : (%,%) -> Boolean if FE has INTDOM
---R atan : % -> % if FE has ALGEBRA FRAC INT
---R atanh : % -> % if FE has ALGEBRA FRAC INT
+--R atan : % -> % if FE has ALGEBRA(FRAC(INT))
+--R atanh : % -> % if FE has ALGEBRA(FRAC(INT))
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if FE has CHARNZ
---R coefficient : (%,Fraction Integer) -> FE
+--R coefficient : (%,Fraction(Integer)) -> FE
 --R coerce : % -> % if FE has INTDOM
---R coerce : Fraction Integer -> % if FE has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if FE has ALGEBRA(FRAC(INT))
 --R coerce : FE -> % if FE has COMRING
---R cos : % -> % if FE has ALGEBRA FRAC INT
---R cosh : % -> % if FE has ALGEBRA FRAC INT
---R cot : % -> % if FE has ALGEBRA FRAC INT
---R coth : % -> % if FE has ALGEBRA FRAC INT
---R csc : % -> % if FE has ALGEBRA FRAC INT
---R csch : % -> % if FE has ALGEBRA FRAC INT
---R differentiate : % -> % if FE has *: (Fraction Integer,FE) -> FE
---R differentiate : (%,NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE
---R differentiate : (%,Symbol) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if FE has *: (Fraction Integer,FE) -> FE and FE has PDRING SYMBOL
+--R cos : % -> % if FE has ALGEBRA(FRAC(INT))
+--R cosh : % -> % if FE has ALGEBRA(FRAC(INT))
+--R cot : % -> % if FE has ALGEBRA(FRAC(INT))
+--R coth : % -> % if FE has ALGEBRA(FRAC(INT))
+--R csc : % -> % if FE has ALGEBRA(FRAC(INT))
+--R csch : % -> % if FE has ALGEBRA(FRAC(INT))
+--R differentiate : % -> % if FE has *: (Fraction(Integer),FE) -> FE
+--R differentiate : (%,NonNegativeInteger) -> % if FE has *: (Fraction(Integer),FE) -> FE
+--R differentiate : (%,Symbol) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if FE has *: (Fraction(Integer),FE) -> FE and FE has PDRING(SYMBOL)
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if FE has FIELD
---R ?.? : (%,%) -> % if Fraction Integer has SGROUP
+--R ?.? : (%,%) -> % if Fraction(Integer) has SGROUP
 --R euclideanSize : % -> NonNegativeInteger if FE has FIELD
---R eval : (%,FE) -> Stream FE if FE has **: (FE,Fraction Integer) -> FE
---R exp : % -> % if FE has ALGEBRA FRAC INT
+--R eval : (%,FE) -> Stream(FE) if FE has **: (FE,Fraction(Integer)) -> FE
+--R exp : % -> % if FE has ALGEBRA(FRAC(INT))
 --R exponent : % -> UnivariatePuiseuxSeries(FE,var,cen)
 --R exponential : UnivariatePuiseuxSeries(FE,var,cen) -> %
---R exponentialOrder : % -> Fraction Integer
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if FE has FIELD
+--R exponentialOrder : % -> Fraction(Integer)
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if FE has FIELD
 --R exquo : (%,%) -> Union(%,"failed") if FE has INTDOM
---R extend : (%,Fraction Integer) -> %
+--R extend : (%,Fraction(Integer)) -> %
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if FE has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if FE has FIELD
---R factor : % -> Factored % if FE has FIELD
+--R factor : % -> Factored(%) if FE has FIELD
 --R gcd : (%,%) -> % if FE has FIELD
---R gcd : List % -> % if FE has FIELD
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if FE has FIELD
---R integrate : (%,Symbol) -> % if FE has integrate: (FE,Symbol) -> FE and FE has variables: FE -> List Symbol and FE has ALGEBRA FRAC INT or FE has ACFS INT and FE has ALGEBRA FRAC INT and FE has PRIMCAT and FE has TRANFUN
---R integrate : % -> % if FE has ALGEBRA FRAC INT
+--R gcd : List(%) -> % if FE has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if FE has FIELD
+--R integrate : (%,Symbol) -> % if FE has integrate: (FE,Symbol) -> FE and FE has variables: FE -> List(Symbol) and FE has ALGEBRA(FRAC(INT)) or FE has ACFS(INT) and FE has ALGEBRA(FRAC(INT)) and FE has PRIMCAT and FE has TRANFUN
+--R integrate : % -> % if FE has ALGEBRA(FRAC(INT))
 --R lcm : (%,%) -> % if FE has FIELD
---R lcm : List % -> % if FE has FIELD
---R log : % -> % if FE has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List Fraction Integer) -> %
---R monomial : (%,SingletonAsOrderedSet,Fraction Integer) -> %
---R monomial : (FE,Fraction Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if FE has FIELD
---R multiplyExponents : (%,Fraction Integer) -> %
+--R lcm : List(%) -> % if FE has FIELD
+--R log : % -> % if FE has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(Fraction(Integer))) -> %
+--R monomial : (%,SingletonAsOrderedSet,Fraction(Integer)) -> %
+--R monomial : (FE,Fraction(Integer)) -> %
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if FE has FIELD
+--R multiplyExponents : (%,Fraction(Integer)) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
---R nthRoot : (%,Integer) -> % if FE has ALGEBRA FRAC INT
---R order : (%,Fraction Integer) -> Fraction Integer
---R pi : () -> % if FE has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if FE has ALGEBRA(FRAC(INT))
+--R order : (%,Fraction(Integer)) -> Fraction(Integer)
+--R pi : () -> % if FE has ALGEBRA(FRAC(INT))
 --R prime? : % -> Boolean if FE has FIELD
---R principalIdeal : List % -> Record(coef: List %,generator: %) if FE has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if FE has FIELD
 --R ?quo? : (%,%) -> % if FE has FIELD
 --R ?rem? : (%,%) -> % if FE has FIELD
---R sec : % -> % if FE has ALGEBRA FRAC INT
---R sech : % -> % if FE has ALGEBRA FRAC INT
---R series : (NonNegativeInteger,Stream Record(k: Fraction Integer,c: FE)) -> %
---R sin : % -> % if FE has ALGEBRA FRAC INT
---R sinh : % -> % if FE has ALGEBRA FRAC INT
+--R sec : % -> % if FE has ALGEBRA(FRAC(INT))
+--R sech : % -> % if FE has ALGEBRA(FRAC(INT))
+--R series : (NonNegativeInteger,Stream(Record(k: Fraction(Integer),c: FE))) -> %
+--R sin : % -> % if FE has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if FE has ALGEBRA(FRAC(INT))
 --R sizeLess? : (%,%) -> Boolean if FE has FIELD
---R sqrt : % -> % if FE has ALGEBRA FRAC INT
---R squareFree : % -> Factored % if FE has FIELD
+--R sqrt : % -> % if FE has ALGEBRA(FRAC(INT))
+--R squareFree : % -> Factored(%) if FE has FIELD
 --R squareFreePart : % -> % if FE has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if FE has ALGEBRA FRAC INT
---R tanh : % -> % if FE has ALGEBRA FRAC INT
---R terms : % -> Stream Record(k: Fraction Integer,c: FE)
---R truncate : (%,Fraction Integer,Fraction Integer) -> %
---R truncate : (%,Fraction Integer) -> %
+--R tan : % -> % if FE has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if FE has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: Fraction(Integer),c: FE))
+--R truncate : (%,Fraction(Integer),Fraction(Integer)) -> %
+--R truncate : (%,Fraction(Integer)) -> %
 --R unit? : % -> Boolean if FE has INTDOM
 --R unitCanonical : % -> % if FE has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if FE has INTDOM
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -34910,6 +35007,7 @@ ExponentialOfUnivariatePuiseuxSeries(FE,var,cen):_
 
 --S 1 of 1
 )show ExtAlgBasis
+--R 
 --R ExtAlgBasis  is a domain constructor
 --R Abbreviation for ExtAlgBasis is EAB 
 --R This constructor is not exposed in this frame.
@@ -34919,8 +35017,8 @@ ExponentialOfUnivariatePuiseuxSeries(FE,var,cen):_
 --R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
 --R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
 --R ?>=? : (%,%) -> Boolean               Nul : NonNegativeInteger -> %
---R coerce : List Integer -> %            coerce : % -> OutputForm
---R degree : % -> NonNegativeInteger      exponents : % -> List Integer
+--R coerce : List(Integer) -> %           coerce : % -> OutputForm
+--R degree : % -> NonNegativeInteger      exponents : % -> List(Integer)
 --R hash : % -> SingleInteger             latex : % -> String
 --R max : (%,%) -> %                      min : (%,%) -> %
 --R ?~=? : (%,%) -> Boolean              
@@ -35065,6 +35163,7 @@ ExtAlgBasis(): Export == Implement where
 
 --S 1 of 1
 )show e04dgfAnnaType
+--R 
 --R e04dgfAnnaType  is a domain constructor
 --R Abbreviation for e04dgfAnnaType is E04DGFA 
 --R This constructor is exposed in this frame.
@@ -35074,10 +35173,10 @@ ExtAlgBasis(): Export == Implement where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -35204,6 +35303,7 @@ e04dgfAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04fdfAnnaType
+--R 
 --R e04fdfAnnaType  is a domain constructor
 --R Abbreviation for e04fdfAnnaType is E04FDFA 
 --R This constructor is exposed in this frame.
@@ -35213,10 +35313,10 @@ e04dgfAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -35369,6 +35469,7 @@ e04fdfAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04gcfAnnaType
+--R 
 --R e04gcfAnnaType  is a domain constructor
 --R Abbreviation for e04gcfAnnaType is E04GCFA 
 --R This constructor is exposed in this frame.
@@ -35378,10 +35479,10 @@ e04fdfAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -35550,6 +35651,7 @@ e04gcfAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04jafAnnaType
+--R 
 --R e04jafAnnaType  is a domain constructor
 --R Abbreviation for e04jafAnnaType is E04JAFA 
 --R This constructor is exposed in this frame.
@@ -35559,10 +35661,10 @@ e04gcfAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -35706,6 +35808,7 @@ e04jafAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04mbfAnnaType
+--R 
 --R e04mbfAnnaType  is a domain constructor
 --R Abbreviation for e04mbfAnnaType is E04MBFA 
 --R This constructor is exposed in this frame.
@@ -35715,10 +35818,10 @@ e04jafAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -35848,6 +35951,7 @@ e04mbfAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04nafAnnaType
+--R 
 --R e04nafAnnaType  is a domain constructor
 --R Abbreviation for e04nafAnnaType is E04NAFA 
 --R This constructor is exposed in this frame.
@@ -35857,10 +35961,10 @@ e04mbfAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -36005,6 +36109,7 @@ e04nafAnnaType(): NumericalOptimizationCategory == Result add
 
 --S 1 of 1
 )show e04ucfAnnaType
+--R 
 --R e04ucfAnnaType  is a domain constructor
 --R Abbreviation for e04ucfAnnaType is E04UCFA 
 --R This constructor is exposed in this frame.
@@ -36014,10 +36119,10 @@ e04nafAnnaType(): NumericalOptimizationCategory == Result add
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R measure : (RoutinesTable,Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> Record(measure: Float,explanations: String)
---R measure : (RoutinesTable,Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat)) -> Record(measure: Float,explanations: String)
---R numericalOptimization : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> Result
---R numericalOptimization : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> Result
+--R measure : (RoutinesTable,Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> Record(measure: Float,explanations: String)
+--R measure : (RoutinesTable,Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat)))) -> Record(measure: Float,explanations: String)
+--R numericalOptimization : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> Result
+--R numericalOptimization : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> Result
 --R
 --E 1
 
@@ -36183,7 +36288,7 @@ g := factor(4312)
 --R
 --R         3 2
 --R   (1)  2 7 11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 1
 
 --S 2 of 38
@@ -36207,7 +36312,7 @@ numberOfFactors(g)
 --R 
 --R
 --R   (4)  [2,7,11]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 4
 
 --S 5 of 38
@@ -36215,7 +36320,7 @@ numberOfFactors(g)
 --R 
 --R
 --R   (5)  [3,2,1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 5
 
 --S 6 of 38
@@ -36223,7 +36328,7 @@ numberOfFactors(g)
 --R 
 --R
 --R   (6)  ["prime","prime","prime"]
---R                               Type: List Union("nil","sqfr","irred","prime")
+--R                              Type: List(Union("nil","sqfr","irred","prime"))
 --E 6
 
 --S 7 of 38
@@ -36233,7 +36338,7 @@ factorList(g)
 --R   (7)
 --R   [[flg= "prime",fctr= 2,xpnt= 3], [flg= "prime",fctr= 7,xpnt= 2],
 --R    [flg= "prime",fctr= 11,xpnt= 1]]
---RType: List Record(flg: Union("nil","sqfr","irred","prime"),fctr: Integer,xpnt: Integer)
+--RType: List(Record(flg: Union("nil","sqfr","irred","prime"),fctr: Integer,xpnt: Integer))
 --E 7
 
 --S 8 of 38
@@ -36242,7 +36347,7 @@ factors(g)
 --R
 --R   (8)
 --R   [[factor= 2,exponent= 3],[factor= 7,exponent= 2],[factor= 11,exponent= 1]]
---R                         Type: List Record(factor: Integer,exponent: Integer)
+--R                        Type: List(Record(factor: Integer,exponent: Integer))
 --E 8
 
 --S 9 of 38
@@ -36259,7 +36364,7 @@ g := factor(4312)
 --R
 --R          3 2
 --R   (10)  2 7 11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 10
 
 --S 11 of 38
@@ -36284,7 +36389,7 @@ g := factor(4312)
 --R
 --R          3 2
 --R   (13)  2 7 11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 13
 
 --S 14 of 38
@@ -36293,7 +36398,7 @@ f := factor(246960)
 --R
 --R          4 2   3
 --R   (14)  2 3 5 7
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 14
 
 --S 15 of 38
@@ -36302,7 +36407,7 @@ f * g
 --R
 --R          7 2   5
 --R   (15)  2 3 5 7 11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 15
 
 --S 16 of 38
@@ -36311,7 +36416,7 @@ f**500
 --R
 --R          2000 1000 500 1500
 --R   (16)  2    3    5   7
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 16
 
 --S 17 of 38
@@ -36320,7 +36425,7 @@ gcd(f,g)
 --R
 --R          3 2
 --R   (17)  2 7
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 17
 
 --S 18 of 38
@@ -36329,7 +36434,7 @@ lcm(f,g)
 --R
 --R          4 2   3
 --R   (18)  2 3 5 7 11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 18
 
 --S 19 of 38
@@ -36338,7 +36443,7 @@ f + g
 --R
 --R          3 2
 --R   (19)  2 7 641
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 19
 
 --S 20 of 38
@@ -36347,7 +36452,7 @@ f - g
 --R
 --R          3 2
 --R   (20)  2 7 619
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 20
 
 --S 21 of 38
@@ -36387,7 +36492,7 @@ one?(f)
 --R 
 --R
 --R   (25)  0
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 25
 
 --S 26 of 38
@@ -36395,7 +36500,7 @@ one?(f)
 --R 
 --R
 --R   (26)  1
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 26
 
 --S 27 of 38
@@ -36404,7 +36509,7 @@ nilFactor(24,2)
 --R
 --R           2
 --R   (27)  24
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 27
 
 --S 28 of 38
@@ -36421,7 +36526,7 @@ sqfrFactor(30,2)
 --R
 --R           2
 --R   (29)  30
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 29
 
 --S 30 of 38
@@ -36430,7 +36535,7 @@ irreducibleFactor(13,10)
 --R
 --R           10
 --R   (30)  13
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 30
 
 --S 31 of 38
@@ -36439,7 +36544,7 @@ primeFactor(11,5)
 --R
 --R           5
 --R   (31)  11
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 31
 
 --S 32 of 38
@@ -36448,7 +36553,7 @@ h := factor(-720)
 --R
 --R            4 2
 --R   (32)  - 2 3 5
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 32
 
 --S 33 of 38
@@ -36456,7 +36561,7 @@ h - makeFR(unit(h),factorList(h))
 --R 
 --R
 --R   (33)  0
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 33
 
 --S 34 of 38
@@ -36465,7 +36570,7 @@ p := (4*x*x-12*x+9)*y*y + (4*x*x-12*x+9)*y + 28*x*x - 84*x + 63
 --R
 --R            2            2      2                  2
 --R   (34)  (4x  - 12x + 9)y  + (4x  - 12x + 9)y + 28x  - 84x + 63
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 34
 
 --S 35 of 38
@@ -36474,7 +36579,7 @@ fp := factor(p)
 --R
 --R                 2  2
 --R   (35)  (2x - 3) (y  + y + 7)
---R                                            Type: Factored Polynomial Integer
+--R                                          Type: Factored(Polynomial(Integer))
 --E 35
 
 --S 36 of 38
@@ -36483,7 +36588,7 @@ D(p,x)
 --R
 --R                   2
 --R   (36)  (8x - 12)y  + (8x - 12)y + 56x - 84
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 36
 
 --S 37 of 38
@@ -36492,7 +36597,7 @@ D(fp,x)
 --R
 --R                    2
 --R   (37)  4(2x - 3)(y  + y + 7)
---R                                            Type: Factored Polynomial Integer
+--R                                          Type: Factored(Polynomial(Integer))
 --E 37
 
 --S 38 of 38
@@ -37424,7 +37529,7 @@ ifile:File List Integer:=open("jazz1","output")
 --R 
 --R
 --R   (1)  "jazz1"
---R                                                      Type: File List Integer
+--R                                                    Type: File(List(Integer))
 --E 1
 
 --S 2 of 12
@@ -37432,7 +37537,7 @@ write!(ifile, [-1,2,3])
 --R 
 --R
 --R   (2)  [- 1,2,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 2
 
 --S 3 of 12
@@ -37440,7 +37545,7 @@ write!(ifile, [10,-10,0,111])
 --R 
 --R
 --R   (3)  [10,- 10,0,111]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 3
 
 --S 4 of 12
@@ -37448,7 +37553,7 @@ write!(ifile, [7])
 --R 
 --R
 --R   (4)  [7]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 4
 
 --S 5 of 12
@@ -37456,7 +37561,7 @@ reopen!(ifile, "input")
 --R 
 --R
 --R   (5)  "jazz1"
---R                                                      Type: File List Integer
+--R                                                    Type: File(List(Integer))
 --E 5
 
 --S 6 of 12
@@ -37464,7 +37569,7 @@ read! ifile
 --R 
 --R
 --R   (6)  [- 1,2,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 6
 
 --S 7 of 12
@@ -37472,7 +37577,7 @@ read! ifile
 --R 
 --R
 --R   (7)  [10,- 10,0,111]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 7
 
 --S 8 of 12
@@ -37480,7 +37585,7 @@ readIfCan! ifile
 --R 
 --R
 --R   (8)  [7]
---R                                                Type: Union(List Integer,...)
+--R                                               Type: Union(List(Integer),...)
 --E 8
 
 --S 9 of 12
@@ -37512,7 +37617,7 @@ close! ifile
 --R 
 --R
 --R   (12)  "jazz1"
---R                                                      Type: File List Integer
+--R                                                    Type: File(List(Integer))
 --E 12
 )system rm jazz1
 )spool
@@ -38084,7 +38189,8 @@ FileName(): FileNameCategory == add
 
 --S 1 of 1
 )show FiniteDivisor
---R FiniteDivisor(F: Field,UP: UnivariatePolynomialCategory F,UPUP: UnivariatePolynomialCategory Fraction UP,R: FunctionFieldCategory(F,UP,UPUP))  is a domain constructor
+--R 
+--R FiniteDivisor(F: Field,UP: UnivariatePolynomialCategory(F),UPUP: UnivariatePolynomialCategory(Fraction(UP)),R: FunctionFieldCategory(F,UP,UPUP))  is a domain constructor
 --R Abbreviation for FiniteDivisor is FDIV 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FDIV 
@@ -38096,16 +38202,16 @@ FileName(): FileNameCategory == add
 --R 0 : () -> %                           coerce : % -> OutputForm
 --R divisor : (R,UP,UP,UP,F) -> %         divisor : (F,F,Integer) -> %
 --R divisor : (F,F) -> %                  divisor : R -> %
---R finiteBasis : % -> Vector R           hash : % -> SingleInteger
---R lSpaceBasis : % -> Vector R           latex : % -> String
+--R finiteBasis : % -> Vector(R)          hash : % -> SingleInteger
+--R lSpaceBasis : % -> Vector(R)          latex : % -> String
 --R principal? : % -> Boolean             reduce : % -> %
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
---R decompose : % -> Record(id: FractionalIdeal(UP,Fraction UP,UPUP,R),principalPart: R)
---R divisor : FractionalIdeal(UP,Fraction UP,UPUP,R) -> %
+--R decompose : % -> Record(id: FractionalIdeal(UP,Fraction(UP),UPUP,R),principalPart: R)
+--R divisor : FractionalIdeal(UP,Fraction(UP),UPUP,R) -> %
 --R generator : % -> Union(R,"failed")
---R ideal : % -> FractionalIdeal(UP,Fraction UP,UPUP,R)
+--R ideal : % -> FractionalIdeal(UP,Fraction(UP),UPUP,R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
 --E 1
@@ -38303,102 +38409,103 @@ FiniteDivisor(F, UP, UPUP, R): Exports == Implementation where
 
 --S 1 of 1
 )show FiniteField
+--R 
 --R FiniteField(p: PositiveInteger,n: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteField is FF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FF 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (PrimeField p,%) -> %           ?*? : (%,PrimeField p) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (PrimeField(p),%) -> %          ?*? : (%,PrimeField(p)) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
---R ?/? : (%,PrimeField p) -> %           ?/? : (%,%) -> %
+--R ?/? : (%,PrimeField(p)) -> %          ?/? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
---R associates? : (%,%) -> Boolean        basis : () -> Vector %
---R coerce : PrimeField p -> %            coerce : Fraction Integer -> %
+--R associates? : (%,%) -> Boolean        basis : () -> Vector(%)
+--R coerce : PrimeField(p) -> %           coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R norm : % -> PrimeField p              one? : % -> Boolean
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R norm : % -> PrimeField(p)             one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> PrimeField p           sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
---R squareFreePart : % -> %               trace : % -> PrimeField p
+--R retract : % -> PrimeField(p)          sample : () -> %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
+--R squareFreePart : % -> %               trace : % -> PrimeField(p)
 --R transcendent? : % -> Boolean          unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R D : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R D : % -> % if PrimeField p has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R Frobenius : % -> % if PrimeField p has FINITE
+--R D : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R D : % -> % if PrimeField(p) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R Frobenius : % -> % if PrimeField(p) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R charthRoot : % -> % if PrimeField p has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if PrimeField p has FINITE
---R coordinates : Vector % -> Matrix PrimeField p
---R coordinates : % -> Vector PrimeField p
---R createNormalElement : () -> % if PrimeField p has FINITE
---R createPrimitiveElement : () -> % if PrimeField p has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial PrimeField p
---R degree : % -> OnePointCompletion PositiveInteger
---R differentiate : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R differentiate : % -> % if PrimeField p has FINITE
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R discreteLog : % -> NonNegativeInteger if PrimeField p has FINITE
+--R charthRoot : % -> Union(%,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R charthRoot : % -> % if PrimeField(p) has FINITE
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if PrimeField(p) has FINITE
+--R coordinates : Vector(%) -> Matrix(PrimeField(p))
+--R coordinates : % -> Vector(PrimeField(p))
+--R createNormalElement : () -> % if PrimeField(p) has FINITE
+--R createPrimitiveElement : () -> % if PrimeField(p) has FINITE
+--R definingPolynomial : () -> SparseUnivariatePolynomial(PrimeField(p))
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R differentiate : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R differentiate : % -> % if PrimeField(p) has FINITE
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R discreteLog : % -> NonNegativeInteger if PrimeField(p) has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if PrimeField p has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R generator : () -> % if PrimeField p has FINITE
---R index : PositiveInteger -> % if PrimeField p has FINITE
---R init : () -> % if PrimeField p has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial PrimeField p) -> % if PrimeField p has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial PrimeField p,"failed") if PrimeField p has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R lookup : % -> PositiveInteger if PrimeField p has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if PrimeField p has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial PrimeField p
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R nextItem : % -> Union(%,"failed") if PrimeField p has FINITE
---R norm : (%,PositiveInteger) -> % if PrimeField p has FINITE
---R normal? : % -> Boolean if PrimeField p has FINITE
---R normalElement : () -> % if PrimeField p has FINITE
---R order : % -> OnePointCompletion PositiveInteger if PrimeField p has CHARNZ or PrimeField p has FINITE
---R order : % -> PositiveInteger if PrimeField p has FINITE
---R primeFrobenius : % -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primitive? : % -> Boolean if PrimeField p has FINITE
---R primitiveElement : () -> % if PrimeField p has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if PrimeField p has FINITE
---R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField p has FINITE
---R represents : Vector PrimeField p -> %
---R retractIfCan : % -> Union(PrimeField p,"failed")
---R size : () -> NonNegativeInteger if PrimeField p has FINITE
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if PrimeField(p) has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R generator : () -> % if PrimeField(p) has FINITE
+--R index : PositiveInteger -> % if PrimeField(p) has FINITE
+--R init : () -> % if PrimeField(p) has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(PrimeField(p))) -> % if PrimeField(p) has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(PrimeField(p)),"failed") if PrimeField(p) has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R lookup : % -> PositiveInteger if PrimeField(p) has FINITE
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if PrimeField(p) has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(PrimeField(p))
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R nextItem : % -> Union(%,"failed") if PrimeField(p) has FINITE
+--R norm : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
+--R normal? : % -> Boolean if PrimeField(p) has FINITE
+--R normalElement : () -> % if PrimeField(p) has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R order : % -> PositiveInteger if PrimeField(p) has FINITE
+--R primeFrobenius : % -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primitive? : % -> Boolean if PrimeField(p) has FINITE
+--R primitiveElement : () -> % if PrimeField(p) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if PrimeField(p) has FINITE
+--R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField(p) has FINITE
+--R represents : Vector(PrimeField(p)) -> %
+--R retractIfCan : % -> Union(PrimeField(p),"failed")
+--R size : () -> NonNegativeInteger if PrimeField(p) has FINITE
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField p has FINITE
---R trace : (%,PositiveInteger) -> % if PrimeField p has FINITE
+--R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField(p) has FINITE
+--R trace : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
 --R transcendenceDegree : () -> NonNegativeInteger
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -38562,103 +38669,104 @@ FiniteField(p:PositiveInteger, n:PositiveInteger): _
 
 --S 1 of 1
 )show FiniteFieldCyclicGroup
+--R 
 --R FiniteFieldCyclicGroup(p: PositiveInteger,extdeg: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteFieldCyclicGroup is FFCG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FFCG 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (PrimeField p,%) -> %           ?*? : (%,PrimeField p) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (PrimeField(p),%) -> %          ?*? : (%,PrimeField(p)) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
---R ?/? : (%,PrimeField p) -> %           ?/? : (%,%) -> %
+--R ?/? : (%,PrimeField(p)) -> %          ?/? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
---R associates? : (%,%) -> Boolean        basis : () -> Vector %
---R coerce : PrimeField p -> %            coerce : Fraction Integer -> %
+--R associates? : (%,%) -> Boolean        basis : () -> Vector(%)
+--R coerce : PrimeField(p) -> %           coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R norm : % -> PrimeField p              one? : % -> Boolean
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R norm : % -> PrimeField(p)             one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> PrimeField p           sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
---R squareFreePart : % -> %               trace : % -> PrimeField p
+--R retract : % -> PrimeField(p)          sample : () -> %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
+--R squareFreePart : % -> %               trace : % -> PrimeField(p)
 --R transcendent? : % -> Boolean          unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R D : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R D : % -> % if PrimeField p has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R Frobenius : % -> % if PrimeField p has FINITE
+--R D : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R D : % -> % if PrimeField(p) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R Frobenius : % -> % if PrimeField(p) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R charthRoot : % -> % if PrimeField p has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if PrimeField p has FINITE
---R coordinates : Vector % -> Matrix PrimeField p
---R coordinates : % -> Vector PrimeField p
---R createNormalElement : () -> % if PrimeField p has FINITE
---R createPrimitiveElement : () -> % if PrimeField p has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial PrimeField p
---R degree : % -> OnePointCompletion PositiveInteger
---R differentiate : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R differentiate : % -> % if PrimeField p has FINITE
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R discreteLog : % -> NonNegativeInteger if PrimeField p has FINITE
+--R charthRoot : % -> Union(%,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R charthRoot : % -> % if PrimeField(p) has FINITE
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if PrimeField(p) has FINITE
+--R coordinates : Vector(%) -> Matrix(PrimeField(p))
+--R coordinates : % -> Vector(PrimeField(p))
+--R createNormalElement : () -> % if PrimeField(p) has FINITE
+--R createPrimitiveElement : () -> % if PrimeField(p) has FINITE
+--R definingPolynomial : () -> SparseUnivariatePolynomial(PrimeField(p))
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R differentiate : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R differentiate : % -> % if PrimeField(p) has FINITE
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R discreteLog : % -> NonNegativeInteger if PrimeField(p) has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if PrimeField p has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R generator : () -> % if PrimeField p has FINITE
---R getZechTable : () -> PrimitiveArray SingleInteger
---R index : PositiveInteger -> % if PrimeField p has FINITE
---R init : () -> % if PrimeField p has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial PrimeField p) -> % if PrimeField p has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial PrimeField p,"failed") if PrimeField p has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R lookup : % -> PositiveInteger if PrimeField p has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if PrimeField p has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial PrimeField p
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R nextItem : % -> Union(%,"failed") if PrimeField p has FINITE
---R norm : (%,PositiveInteger) -> % if PrimeField p has FINITE
---R normal? : % -> Boolean if PrimeField p has FINITE
---R normalElement : () -> % if PrimeField p has FINITE
---R order : % -> OnePointCompletion PositiveInteger if PrimeField p has CHARNZ or PrimeField p has FINITE
---R order : % -> PositiveInteger if PrimeField p has FINITE
---R primeFrobenius : % -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primitive? : % -> Boolean if PrimeField p has FINITE
---R primitiveElement : () -> % if PrimeField p has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if PrimeField p has FINITE
---R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField p has FINITE
---R represents : Vector PrimeField p -> %
---R retractIfCan : % -> Union(PrimeField p,"failed")
---R size : () -> NonNegativeInteger if PrimeField p has FINITE
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if PrimeField(p) has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R generator : () -> % if PrimeField(p) has FINITE
+--R getZechTable : () -> PrimitiveArray(SingleInteger)
+--R index : PositiveInteger -> % if PrimeField(p) has FINITE
+--R init : () -> % if PrimeField(p) has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(PrimeField(p))) -> % if PrimeField(p) has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(PrimeField(p)),"failed") if PrimeField(p) has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R lookup : % -> PositiveInteger if PrimeField(p) has FINITE
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if PrimeField(p) has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(PrimeField(p))
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R nextItem : % -> Union(%,"failed") if PrimeField(p) has FINITE
+--R norm : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
+--R normal? : % -> Boolean if PrimeField(p) has FINITE
+--R normalElement : () -> % if PrimeField(p) has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R order : % -> PositiveInteger if PrimeField(p) has FINITE
+--R primeFrobenius : % -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primitive? : % -> Boolean if PrimeField(p) has FINITE
+--R primitiveElement : () -> % if PrimeField(p) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if PrimeField(p) has FINITE
+--R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField(p) has FINITE
+--R represents : Vector(PrimeField(p)) -> %
+--R retractIfCan : % -> Union(PrimeField(p),"failed")
+--R size : () -> NonNegativeInteger if PrimeField(p) has FINITE
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField p has FINITE
---R trace : (%,PositiveInteger) -> % if PrimeField p has FINITE
+--R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField(p) has FINITE
+--R trace : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
 --R transcendenceDegree : () -> NonNegativeInteger
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -38832,6 +38940,7 @@ FiniteFieldCyclicGroup(p,extdeg):_
 
 --S 1 of 1
 )show FiniteFieldCyclicGroupExtension
+--R 
 --R FiniteFieldCyclicGroupExtension(GF: FiniteFieldCategory,extdeg: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteFieldCyclicGroupExtension is FFCGX 
 --R This constructor is not exposed in this frame.
@@ -38839,7 +38948,7 @@ FiniteFieldCyclicGroup(p,extdeg):_
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -38849,21 +38958,21 @@ FiniteFieldCyclicGroup(p,extdeg):_
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -38873,53 +38982,53 @@ FiniteFieldCyclicGroup(p,extdeg):_
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
---R getZechTable : () -> PrimitiveArray SingleInteger
+--R getZechTable : () -> PrimitiveArray(SingleInteger)
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -39102,14 +39211,15 @@ FiniteFieldCyclicGroupExtension(GF,extdeg):_
 
 --S 1 of 1
 )show FiniteFieldCyclicGroupExtensionByPolynomial
---R FiniteFieldCyclicGroupExtensionByPolynomial(GF: FiniteFieldCategory,defpol: SparseUnivariatePolynomial GF)  is a domain constructor
+--R 
+--R FiniteFieldCyclicGroupExtensionByPolynomial(GF: FiniteFieldCategory,defpol: SparseUnivariatePolynomial(GF))  is a domain constructor
 --R Abbreviation for FiniteFieldCyclicGroupExtensionByPolynomial is FFCGP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FFCGP 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -39119,21 +39229,21 @@ FiniteFieldCyclicGroupExtension(GF,extdeg):_
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -39143,53 +39253,53 @@ FiniteFieldCyclicGroupExtension(GF,extdeg):_
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
---R getZechTable : () -> PrimitiveArray SingleInteger
+--R getZechTable : () -> PrimitiveArray(SingleInteger)
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -39638,6 +39748,7 @@ FiniteFieldCyclicGroupExtensionByPolynomial(GF,defpol):_
 
 --S 1 of 1
 )show FiniteFieldExtension
+--R 
 --R FiniteFieldExtension(GF: FiniteFieldCategory,n: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteFieldExtension is FFX 
 --R This constructor is not exposed in this frame.
@@ -39645,7 +39756,7 @@ FiniteFieldCyclicGroupExtensionByPolynomial(GF,defpol):_
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -39655,21 +39766,21 @@ FiniteFieldCyclicGroupExtensionByPolynomial(GF,defpol):_
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -39679,52 +39790,52 @@ FiniteFieldCyclicGroupExtensionByPolynomial(GF,defpol):_
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -39901,14 +40012,15 @@ FiniteFieldExtension(GF, n): Exports == Implementation where
 
 --S 1 of 1
 )show FiniteFieldExtensionByPolynomial
---R FiniteFieldExtensionByPolynomial(GF: FiniteFieldCategory,defpol: SparseUnivariatePolynomial GF)  is a domain constructor
+--R 
+--R FiniteFieldExtensionByPolynomial(GF: FiniteFieldCategory,defpol: SparseUnivariatePolynomial(GF))  is a domain constructor
 --R Abbreviation for FiniteFieldExtensionByPolynomial is FFP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FFP 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -39918,21 +40030,21 @@ FiniteFieldExtension(GF, n): Exports == Implementation where
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -39942,52 +40054,52 @@ FiniteFieldExtension(GF, n): Exports == Implementation where
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -40362,105 +40474,106 @@ FiniteFieldExtensionByPolynomial(GF:FiniteFieldCategory,_
 
 --S 1 of 1
 )show FiniteFieldNormalBasis
+--R 
 --R FiniteFieldNormalBasis(p: PositiveInteger,extdeg: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteFieldNormalBasis is FFNB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FFNB 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (PrimeField p,%) -> %           ?*? : (%,PrimeField p) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (PrimeField(p),%) -> %          ?*? : (%,PrimeField(p)) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
---R ?/? : (%,PrimeField p) -> %           ?/? : (%,%) -> %
+--R ?/? : (%,PrimeField(p)) -> %          ?/? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
---R associates? : (%,%) -> Boolean        basis : () -> Vector %
---R coerce : PrimeField p -> %            coerce : Fraction Integer -> %
+--R associates? : (%,%) -> Boolean        basis : () -> Vector(%)
+--R coerce : PrimeField(p) -> %           coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R norm : % -> PrimeField p              one? : % -> Boolean
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R norm : % -> PrimeField(p)             one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> PrimeField p           sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
---R squareFreePart : % -> %               trace : % -> PrimeField p
+--R retract : % -> PrimeField(p)          sample : () -> %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
+--R squareFreePart : % -> %               trace : % -> PrimeField(p)
 --R transcendent? : % -> Boolean          unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R D : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R D : % -> % if PrimeField p has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R Frobenius : % -> % if PrimeField p has FINITE
+--R D : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R D : % -> % if PrimeField(p) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R Frobenius : % -> % if PrimeField(p) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R charthRoot : % -> % if PrimeField p has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if PrimeField p has FINITE
---R coordinates : Vector % -> Matrix PrimeField p
---R coordinates : % -> Vector PrimeField p
---R createNormalElement : () -> % if PrimeField p has FINITE
---R createPrimitiveElement : () -> % if PrimeField p has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial PrimeField p
---R degree : % -> OnePointCompletion PositiveInteger
---R differentiate : (%,NonNegativeInteger) -> % if PrimeField p has FINITE
---R differentiate : % -> % if PrimeField p has FINITE
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField p has CHARNZ or PrimeField p has FINITE
---R discreteLog : % -> NonNegativeInteger if PrimeField p has FINITE
+--R charthRoot : % -> Union(%,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R charthRoot : % -> % if PrimeField(p) has FINITE
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if PrimeField(p) has FINITE
+--R coordinates : Vector(%) -> Matrix(PrimeField(p))
+--R coordinates : % -> Vector(PrimeField(p))
+--R createNormalElement : () -> % if PrimeField(p) has FINITE
+--R createPrimitiveElement : () -> % if PrimeField(p) has FINITE
+--R definingPolynomial : () -> SparseUnivariatePolynomial(PrimeField(p))
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R differentiate : (%,NonNegativeInteger) -> % if PrimeField(p) has FINITE
+--R differentiate : % -> % if PrimeField(p) has FINITE
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R discreteLog : % -> NonNegativeInteger if PrimeField(p) has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if PrimeField p has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R generator : () -> % if PrimeField p has FINITE
---R getMultiplicationMatrix : () -> Matrix PrimeField p
---R getMultiplicationTable : () -> Vector List Record(value: PrimeField p,index: SingleInteger)
---R index : PositiveInteger -> % if PrimeField p has FINITE
---R init : () -> % if PrimeField p has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial PrimeField p) -> % if PrimeField p has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial PrimeField p,"failed") if PrimeField p has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial PrimeField p if PrimeField p has FINITE
---R lookup : % -> PositiveInteger if PrimeField p has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if PrimeField p has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial PrimeField p
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R nextItem : % -> Union(%,"failed") if PrimeField p has FINITE
---R norm : (%,PositiveInteger) -> % if PrimeField p has FINITE
---R normal? : % -> Boolean if PrimeField p has FINITE
---R normalElement : () -> % if PrimeField p has FINITE
---R order : % -> OnePointCompletion PositiveInteger if PrimeField p has CHARNZ or PrimeField p has FINITE
---R order : % -> PositiveInteger if PrimeField p has FINITE
---R primeFrobenius : % -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField p has CHARNZ or PrimeField p has FINITE
---R primitive? : % -> Boolean if PrimeField p has FINITE
---R primitiveElement : () -> % if PrimeField p has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if PrimeField p has FINITE
---R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField p has FINITE
---R represents : Vector PrimeField p -> %
---R retractIfCan : % -> Union(PrimeField p,"failed")
---R size : () -> NonNegativeInteger if PrimeField p has FINITE
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if PrimeField(p) has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R generator : () -> % if PrimeField(p) has FINITE
+--R getMultiplicationMatrix : () -> Matrix(PrimeField(p))
+--R getMultiplicationTable : () -> Vector(List(Record(value: PrimeField(p),index: SingleInteger)))
+--R index : PositiveInteger -> % if PrimeField(p) has FINITE
+--R init : () -> % if PrimeField(p) has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(PrimeField(p))) -> % if PrimeField(p) has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(PrimeField(p)),"failed") if PrimeField(p) has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(PrimeField(p)) if PrimeField(p) has FINITE
+--R lookup : % -> PositiveInteger if PrimeField(p) has FINITE
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if PrimeField(p) has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(PrimeField(p))
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R nextItem : % -> Union(%,"failed") if PrimeField(p) has FINITE
+--R norm : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
+--R normal? : % -> Boolean if PrimeField(p) has FINITE
+--R normalElement : () -> % if PrimeField(p) has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R order : % -> PositiveInteger if PrimeField(p) has FINITE
+--R primeFrobenius : % -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if PrimeField(p) has CHARNZ or PrimeField(p) has FINITE
+--R primitive? : % -> Boolean if PrimeField(p) has FINITE
+--R primitiveElement : () -> % if PrimeField(p) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if PrimeField(p) has FINITE
+--R representationType : () -> Union("prime",polynomial,normal,cyclic) if PrimeField(p) has FINITE
+--R represents : Vector(PrimeField(p)) -> %
+--R retractIfCan : % -> Union(PrimeField(p),"failed")
+--R size : () -> NonNegativeInteger if PrimeField(p) has FINITE
 --R sizeMultiplication : () -> NonNegativeInteger
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField p has FINITE
---R trace : (%,PositiveInteger) -> % if PrimeField p has FINITE
+--R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if PrimeField(p) has FINITE
+--R trace : (%,PositiveInteger) -> % if PrimeField(p) has FINITE
 --R transcendenceDegree : () -> NonNegativeInteger
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -40646,6 +40759,7 @@ FiniteFieldNormalBasis(p,extdeg):_
 
 --S 1 of 1
 )show FiniteFieldNormalBasisExtension
+--R 
 --R FiniteFieldNormalBasisExtension(GF: FiniteFieldCategory,extdeg: PositiveInteger)  is a domain constructor
 --R Abbreviation for FiniteFieldNormalBasisExtension is FFNBX 
 --R This constructor is not exposed in this frame.
@@ -40653,7 +40767,7 @@ FiniteFieldNormalBasis(p,extdeg):_
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -40663,21 +40777,21 @@ FiniteFieldNormalBasis(p,extdeg):_
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -40687,54 +40801,54 @@ FiniteFieldNormalBasis(p,extdeg):_
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
---R getMultiplicationMatrix : () -> Matrix GF
---R getMultiplicationTable : () -> Vector List Record(value: GF,index: SingleInteger)
+--R getMultiplicationMatrix : () -> Matrix(GF)
+--R getMultiplicationTable : () -> Vector(List(Record(value: GF,index: SingleInteger)))
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -40928,14 +41042,15 @@ FiniteFieldNormalBasisExtension(GF,extdeg):_
 
 --S 1 of 1
 )show FiniteFieldNormalBasisExtensionByPolynomial
---R FiniteFieldNormalBasisExtensionByPolynomial(GF: FiniteFieldCategory,uni: Union(SparseUnivariatePolynomial GF,Vector List Record(value: GF,index: SingleInteger)))  is a domain constructor
+--R 
+--R FiniteFieldNormalBasisExtensionByPolynomial(GF: FiniteFieldCategory,uni: Union(SparseUnivariatePolynomial(GF),Vector(List(Record(value: GF,index: SingleInteger)))))  is a domain constructor
 --R Abbreviation for FiniteFieldNormalBasisExtensionByPolynomial is FFNBP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FFNBP 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (GF,%) -> %                     ?*? : (%,GF) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -40945,21 +41060,21 @@ FiniteFieldNormalBasisExtension(GF,extdeg):_
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : GF -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : GF -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector GF          degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(GF)         degree : % -> PositiveInteger
+--R dimension : () -> CardinalNumber      factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R norm : % -> GF                        one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector GF -> %           retract : % -> GF
+--R represents : Vector(GF) -> %          retract : % -> GF
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> GF                       transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -40969,54 +41084,54 @@ FiniteFieldNormalBasisExtension(GF,extdeg):_
 --R Frobenius : (%,NonNegativeInteger) -> % if GF has FINITE
 --R Frobenius : % -> % if GF has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if GF has CHARNZ or GF has FINITE
 --R charthRoot : % -> % if GF has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if GF has FINITE
---R coordinates : Vector % -> Matrix GF
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if GF has FINITE
+--R coordinates : Vector(%) -> Matrix(GF)
 --R createNormalElement : () -> % if GF has FINITE
 --R createPrimitiveElement : () -> % if GF has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial GF
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(GF)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if GF has FINITE
 --R differentiate : % -> % if GF has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if GF has CHARNZ or GF has FINITE
 --R discreteLog : % -> NonNegativeInteger if GF has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if GF has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if GF has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if GF has FINITE
---R getMultiplicationMatrix : () -> Matrix GF
---R getMultiplicationTable : () -> Vector List Record(value: GF,index: SingleInteger)
+--R getMultiplicationMatrix : () -> Matrix(GF)
+--R getMultiplicationTable : () -> Vector(List(Record(value: GF,index: SingleInteger)))
 --R index : PositiveInteger -> % if GF has FINITE
 --R init : () -> % if GF has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial GF) -> % if GF has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial GF,"failed") if GF has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial GF if GF has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial GF if GF has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(GF)) -> % if GF has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(GF),"failed") if GF has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(GF) if GF has FINITE
 --R lookup : % -> PositiveInteger if GF has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if GF has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial GF
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if GF has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(GF)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if GF has FINITE
 --R norm : (%,PositiveInteger) -> % if GF has FINITE
 --R normal? : % -> Boolean if GF has FINITE
 --R normalElement : () -> % if GF has FINITE
---R order : % -> OnePointCompletion PositiveInteger if GF has CHARNZ or GF has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if GF has CHARNZ or GF has FINITE
 --R order : % -> PositiveInteger if GF has FINITE
 --R primeFrobenius : % -> % if GF has CHARNZ or GF has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if GF has CHARNZ or GF has FINITE
 --R primitive? : % -> Boolean if GF has FINITE
 --R primitiveElement : () -> % if GF has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if GF has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if GF has FINITE
 --R retractIfCan : % -> Union(GF,"failed")
@@ -41522,7 +41637,7 @@ flexibleArray [i for i in 1..6]
 --R 
 --R
 --R   (1)  [1,2,3,4,5,6]
---R                                          Type: FlexibleArray PositiveInteger
+--R                                         Type: FlexibleArray(PositiveInteger)
 --E 1
 
 --S 2 of 16
@@ -41530,7 +41645,7 @@ f : FARRAY INT := new(6,0)
 --R 
 --R
 --R   (2)  [0,0,0,0,0,0]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 2
 
 --S 3 of 16
@@ -41538,7 +41653,7 @@ for i in 1..6 repeat f.i := i; f
 --R 
 --R
 --R   (3)  [1,2,3,4,5,6]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 3
 
 --S 4 of 16
@@ -41554,7 +41669,7 @@ concat!(f,11)
 --R 
 --R
 --R   (5)  [1,2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 5
 
 --S 6 of 16
@@ -41570,7 +41685,7 @@ physicalLength!(f,15)
 --R 
 --R
 --R   (7)  [1,2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 7
 
 --S 8 of 16
@@ -41578,7 +41693,7 @@ concat!(f,f)
 --R 
 --R
 --R   (8)  [1,2,3,4,5,6,11,1,2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 8
 
 --S 9 of 16
@@ -41586,7 +41701,7 @@ insert!(22,f,1)
 --R 
 --R
 --R   (9)  [22,1,2,3,4,5,6,11,1,2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 9
 
 --S 10 of 16
@@ -41594,7 +41709,7 @@ g := f(10..)
 --R 
 --R
 --R   (10)  [2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 10
 
 --S 11 of 16
@@ -41602,7 +41717,7 @@ insert!(g,f,1)
 --R 
 --R
 --R   (11)  [2,3,4,5,6,11,22,1,2,3,4,5,6,11,1,2,3,4,5,6,11]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 11
 
 --S 12 of 16
@@ -41610,7 +41725,7 @@ merge!(sort! f, sort! g)
 --R 
 --R
 --R   (12)  [1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,11,11,11,11,22]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 12
 
 --S 13 of 16
@@ -41618,7 +41733,7 @@ removeDuplicates! f
 --R 
 --R
 --R   (13)  [1,2,3,4,5,6,11,22]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 13
 
 --S 14 of 16
@@ -41626,7 +41741,7 @@ select!(i +-> even? i,f)
 --R 
 --R
 --R   (14)  [2,4,6,22]
---R                                                  Type: FlexibleArray Integer
+--R                                                 Type: FlexibleArray(Integer)
 --E 14
 
 --S 15 of 16
@@ -41972,7 +42087,7 @@ i :: Fraction Integer
 --R 
 --R
 --R   (6)  3
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 6
 
 --S 7 of 64
@@ -41990,7 +42105,7 @@ r :: Fraction Integer
 --R        3
 --R   (8)  -
 --R        7
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 8
 
 --S 9 of 64
@@ -42204,7 +42319,7 @@ a: Matrix Fraction Integer := matrix [ [1/(i+j+1) for j in 0..9] for i in 0..9]
 --R         | 1   1   1   1   1   1   1   1   1   1|
 --R         |--  --  --  --  --  --  --  --  --  --|
 --R         +10  11  12  13  14  15  16  17  18  19+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 29
 
 --S 30 of 64
@@ -42214,7 +42329,7 @@ d:= determinant a
 --R                                   1
 --R   (29)  -----------------------------------------------------
 --R         46206893947914691316295628839036278726983680000000000
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 30
 
 --S 31 of 64
@@ -42282,7 +42397,7 @@ b: Matrix DoubleFloat := matrix [ [1/(i+j+1$DoubleFloat) for j in 0..9] for i in
 --R      6.25E-2, 5.8823529411764705E-2, 5.5555555555555552E-2,
 --R      5.2631578947368418E-2]
 --R     ]
---R                                                     Type: Matrix DoubleFloat
+--R                                                    Type: Matrix(DoubleFloat)
 --E 32
 
 --S 33 of 64
@@ -42392,7 +42507,7 @@ c: Matrix Float := matrix [ [1/(i+j+1$Float) for j in 0..9] for i in 0..9]
 --R      0.05555 55555 55555 55555 55555 55555 55555 55555 6,
 --R      0.05263 15789 47368 42105 26315 78947 36842 10526 3]
 --R     ]
---R                                                           Type: Matrix Float
+--R                                                          Type: Matrix(Float)
 --E 35
 
 --S 36 of 64
@@ -44058,6 +44173,7 @@ Float():
 
 --S 1 of 1
 )show FortranCode
+--R 
 --R FortranCode  is a domain constructor
 --R Abbreviation for FortranCode is FC 
 --R This constructor is exposed in this frame.
@@ -44065,57 +44181,58 @@ Float():
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                assign : (Symbol,String) -> %
---R block : List % -> %                   call : String -> %
---R coerce : % -> OutputForm              comment : List String -> %
+--R block : List(%) -> %                  call : String -> %
+--R coerce : % -> OutputForm              comment : List(String) -> %
 --R comment : String -> %                 cond : (Switch,%,%) -> %
 --R cond : (Switch,%) -> %                continue : SingleInteger -> %
 --R getCode : % -> SExpression            goto : SingleInteger -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R printCode : % -> Void                 returns : Expression Integer -> %
---R returns : Expression Float -> %       returns : () -> %
---R save : () -> %                        stop : () -> %
---R whileLoop : (Switch,%) -> %           ?~=? : (%,%) -> Boolean
---R assign : (Symbol,List Polynomial Integer,Expression Complex Float) -> %
---R assign : (Symbol,List Polynomial Integer,Expression Float) -> %
---R assign : (Symbol,List Polynomial Integer,Expression Integer) -> %
---R assign : (Symbol,Vector Expression Complex Float) -> %
---R assign : (Symbol,Vector Expression Float) -> %
---R assign : (Symbol,Vector Expression Integer) -> %
---R assign : (Symbol,Matrix Expression Complex Float) -> %
---R assign : (Symbol,Matrix Expression Float) -> %
---R assign : (Symbol,Matrix Expression Integer) -> %
---R assign : (Symbol,Expression Complex Float) -> %
---R assign : (Symbol,Expression Float) -> %
---R assign : (Symbol,Expression Integer) -> %
---R assign : (Symbol,List Polynomial Integer,Expression MachineComplex) -> %
---R assign : (Symbol,List Polynomial Integer,Expression MachineFloat) -> %
---R assign : (Symbol,List Polynomial Integer,Expression MachineInteger) -> %
---R assign : (Symbol,Vector Expression MachineComplex) -> %
---R assign : (Symbol,Vector Expression MachineFloat) -> %
---R assign : (Symbol,Vector Expression MachineInteger) -> %
---R assign : (Symbol,Matrix Expression MachineComplex) -> %
---R assign : (Symbol,Matrix Expression MachineFloat) -> %
---R assign : (Symbol,Matrix Expression MachineInteger) -> %
---R assign : (Symbol,Vector MachineComplex) -> %
---R assign : (Symbol,Vector MachineFloat) -> %
---R assign : (Symbol,Vector MachineInteger) -> %
---R assign : (Symbol,Matrix MachineComplex) -> %
---R assign : (Symbol,Matrix MachineFloat) -> %
---R assign : (Symbol,Matrix MachineInteger) -> %
---R assign : (Symbol,Expression MachineComplex) -> %
---R assign : (Symbol,Expression MachineFloat) -> %
---R assign : (Symbol,Expression MachineInteger) -> %
---R code : % -> Union(nullBranch: null,assignmentBranch: Record(var: Symbol,arrayIndex: List Polynomial Integer,rand: Record(ints2Floats?: Boolean,expr: OutputForm)),arrayAssignmentBranch: Record(var: Symbol,rand: OutputForm,ints2Floats?: Boolean),conditionalBranch: Record(switch: Switch,thenClause: %,elseClause: %),returnBranch: Record(empty?: Boolean,value: Record(ints2Floats?: Boolean,expr: OutputForm)),blockBranch: List %,commentBranch: List String,callBranch: String,forBranch: Record(range: SegmentBinding Polynomial Integer,span: Polynomial Integer,body: %),labelBranch: SingleInteger,loopBranch: Record(switch: Switch,body: %),commonBranch: Record(name: Symbol,contents: List Symbol),printBranch: List OutputForm)
---R common : (Symbol,List Symbol) -> %
---R forLoop : (SegmentBinding Polynomial Integer,Polynomial Integer,%) -> %
---R forLoop : (SegmentBinding Polynomial Integer,%) -> %
+--R printCode : % -> Void                 returns : Expression(Float) -> %
+--R returns : () -> %                     save : () -> %
+--R stop : () -> %                        whileLoop : (Switch,%) -> %
+--R ?~=? : (%,%) -> Boolean              
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(Complex(Float))) -> %
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(Float)) -> %
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(Integer)) -> %
+--R assign : (Symbol,Vector(Expression(Complex(Float)))) -> %
+--R assign : (Symbol,Vector(Expression(Float))) -> %
+--R assign : (Symbol,Vector(Expression(Integer))) -> %
+--R assign : (Symbol,Matrix(Expression(Complex(Float)))) -> %
+--R assign : (Symbol,Matrix(Expression(Float))) -> %
+--R assign : (Symbol,Matrix(Expression(Integer))) -> %
+--R assign : (Symbol,Expression(Complex(Float))) -> %
+--R assign : (Symbol,Expression(Float)) -> %
+--R assign : (Symbol,Expression(Integer)) -> %
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(MachineComplex)) -> %
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(MachineFloat)) -> %
+--R assign : (Symbol,List(Polynomial(Integer)),Expression(MachineInteger)) -> %
+--R assign : (Symbol,Vector(Expression(MachineComplex))) -> %
+--R assign : (Symbol,Vector(Expression(MachineFloat))) -> %
+--R assign : (Symbol,Vector(Expression(MachineInteger))) -> %
+--R assign : (Symbol,Matrix(Expression(MachineComplex))) -> %
+--R assign : (Symbol,Matrix(Expression(MachineFloat))) -> %
+--R assign : (Symbol,Matrix(Expression(MachineInteger))) -> %
+--R assign : (Symbol,Vector(MachineComplex)) -> %
+--R assign : (Symbol,Vector(MachineFloat)) -> %
+--R assign : (Symbol,Vector(MachineInteger)) -> %
+--R assign : (Symbol,Matrix(MachineComplex)) -> %
+--R assign : (Symbol,Matrix(MachineFloat)) -> %
+--R assign : (Symbol,Matrix(MachineInteger)) -> %
+--R assign : (Symbol,Expression(MachineComplex)) -> %
+--R assign : (Symbol,Expression(MachineFloat)) -> %
+--R assign : (Symbol,Expression(MachineInteger)) -> %
+--R code : % -> Union(nullBranch: null,assignmentBranch: Record(var: Symbol,arrayIndex: List(Polynomial(Integer)),rand: Record(ints2Floats?: Boolean,expr: OutputForm)),arrayAssignmentBranch: Record(var: Symbol,rand: OutputForm,ints2Floats?: Boolean),conditionalBranch: Record(switch: Switch,thenClause: %,elseClause: %),returnBranch: Record(empty?: Boolean,value: Record(ints2Floats?: Boolean,expr: OutputForm)),blockBranch: List(%),commentBranch: List(String),callBranch: String,forBranch: Record(range: SegmentBinding(Polynomial(Integer)),span: Polynomial(Integer),body: %),labelBranch: SingleInteger,loopBranch: Record(switch: Switch,body: %),commonBranch: Record(name: Symbol,contents: List(Symbol)),printBranch: List(OutputForm))
+--R common : (Symbol,List(Symbol)) -> %
+--R forLoop : (SegmentBinding(Polynomial(Integer)),Polynomial(Integer),%) -> %
+--R forLoop : (SegmentBinding(Polynomial(Integer)),%) -> %
 --R operation : % -> Union(Null: null,Assignment: assignment,Conditional: conditional,Return: return,Block: block,Comment: comment,Call: call,For: for,While: while,Repeat: repeat,Goto: goto,Continue: continue,ArrayAssignment: arrayAssignment,Save: save,Stop: stop,Common: common,Print: print)
---R printStatement : List OutputForm -> %
+--R printStatement : List(OutputForm) -> %
 --R repeatUntilLoop : (Switch,%) -> %
---R returns : Expression Complex Float -> %
---R returns : Expression MachineComplex -> %
---R returns : Expression MachineInteger -> %
---R returns : Expression MachineFloat -> %
+--R returns : Expression(Complex(Float)) -> %
+--R returns : Expression(Integer) -> %
+--R returns : Expression(MachineComplex) -> %
+--R returns : Expression(MachineInteger) -> %
+--R returns : Expression(MachineFloat) -> %
 --R setLabelValue : SingleInteger -> SingleInteger
 --R
 --E 1
@@ -44784,7 +44901,8 @@ FortranCode(): public == private where
 
 --S 1 of 1
 )show FortranExpression
---R FortranExpression(basicSymbols: List Symbol,subscriptedSymbols: List Symbol,R: FortranMachineTypeCategory)  is a domain constructor
+--R 
+--R FortranExpression(basicSymbols: List(Symbol),subscriptedSymbols: List(Symbol),R: FortranMachineTypeCategory)  is a domain constructor
 --R Abbreviation for FortranExpression is FEXPR 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FEXPR 
@@ -44797,86 +44915,88 @@ FortranCode(): public == private where
 --R ?-? : (%,%) -> %                      ?<? : (%,%) -> Boolean
 --R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
 --R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
---R D : (%,Symbol) -> %                   D : (%,List Symbol) -> %
+--R D : (%,Symbol) -> %                   D : (%,List(Symbol)) -> %
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        abs : % -> %
 --R acos : % -> %                         asin : % -> %
 --R atan : % -> %                         belong? : BasicOperator -> Boolean
---R box : List % -> %                     box : % -> %
---R coerce : % -> Expression R            coerce : Integer -> %
---R coerce : R -> %                       coerce : Kernel % -> %
+--R box : List(%) -> %                    box : % -> %
+--R coerce : % -> Expression(R)           coerce : Integer -> %
+--R coerce : R -> %                       coerce : Kernel(%) -> %
 --R coerce : % -> OutputForm              cos : % -> %
 --R cosh : % -> %                         differentiate : (%,Symbol) -> %
 --R distribute : (%,%) -> %               distribute : % -> %
 --R elt : (BasicOperator,%,%) -> %        elt : (BasicOperator,%) -> %
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
---R eval : (%,Kernel %,%) -> %            exp : % -> %
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
+--R eval : (%,Kernel(%),%) -> %           exp : % -> %
 --R freeOf? : (%,Symbol) -> Boolean       freeOf? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             height : % -> NonNegativeInteger
 --R is? : (%,Symbol) -> Boolean           kernel : (BasicOperator,%) -> %
---R kernels : % -> List Kernel %          latex : % -> String
+--R kernels : % -> List(Kernel(%))        latex : % -> String
 --R log : % -> %                          log10 : % -> %
---R map : ((% -> %),Kernel %) -> %        max : (%,%) -> %
---R min : (%,%) -> %                      one? : % -> Boolean
---R paren : List % -> %                   paren : % -> %
---R pi : () -> %                          recip : % -> Union(%,"failed")
---R retract : Symbol -> %                 retract : Expression R -> %
---R retract : % -> R                      retract : % -> Kernel %
---R sample : () -> %                      sin : % -> %
---R sinh : % -> %                         sqrt : % -> %
---R subst : (%,Equation %) -> %           tan : % -> %
---R tanh : % -> %                         tower : % -> List Kernel %
---R useNagFunctions : () -> Boolean       variables : % -> List Symbol
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R max : (%,%) -> %                      min : (%,%) -> %
+--R one? : % -> Boolean                   paren : List(%) -> %
+--R paren : % -> %                        pi : () -> %
+--R recip : % -> Union(%,"failed")        retract : Symbol -> %
+--R retract : Expression(R) -> %          retract : % -> R
+--R retract : % -> Kernel(%)              sample : () -> %
+--R sin : % -> %                          sinh : % -> %
+--R sqrt : % -> %                         subst : (%,Equation(%)) -> %
+--R tan : % -> %                          tanh : % -> %
+--R tower : % -> List(Kernel(%))          useNagFunctions : () -> Boolean
+--R variables : % -> List(Symbol)         zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R D : (%,Symbol,NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R definingPolynomial : % -> % if $ has RING
---R differentiate : (%,List Symbol) -> %
+--R differentiate : (%,List(Symbol)) -> %
 --R differentiate : (%,Symbol,NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> %
---R elt : (BasicOperator,List %) -> %
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R elt : (BasicOperator,%,%,%,%) -> %
 --R elt : (BasicOperator,%,%,%) -> %
 --R eval : (%,BasicOperator,(% -> %)) -> %
---R eval : (%,BasicOperator,(List % -> %)) -> %
---R eval : (%,List BasicOperator,List (List % -> %)) -> %
---R eval : (%,List BasicOperator,List (% -> %)) -> %
+--R eval : (%,BasicOperator,(List(%) -> %)) -> %
+--R eval : (%,List(BasicOperator),List((List(%) -> %))) -> %
+--R eval : (%,List(BasicOperator),List((% -> %))) -> %
 --R eval : (%,Symbol,(% -> %)) -> %
---R eval : (%,Symbol,(List % -> %)) -> %
---R eval : (%,List Symbol,List (List % -> %)) -> %
---R eval : (%,List Symbol,List (% -> %)) -> %
---R eval : (%,List Kernel %,List %) -> %
---R even? : % -> Boolean if $ has RETRACT INT
+--R eval : (%,Symbol,(List(%) -> %)) -> %
+--R eval : (%,List(Symbol),List((List(%) -> %))) -> %
+--R eval : (%,List(Symbol),List((% -> %))) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(Kernel(%)),List(%)) -> %
+--R even? : % -> Boolean if $ has RETRACT(INT)
 --R is? : (%,BasicOperator) -> Boolean
---R kernel : (BasicOperator,List %) -> %
---R mainKernel : % -> Union(Kernel %,"failed")
---R minPoly : Kernel % -> SparseUnivariatePolynomial % if $ has RING
---R odd? : % -> Boolean if $ has RETRACT INT
+--R kernel : (BasicOperator,List(%)) -> %
+--R mainKernel : % -> Union(Kernel(%),"failed")
+--R map : ((% -> %),Kernel(%)) -> %
+--R minPoly : Kernel(%) -> SparseUnivariatePolynomial(%) if $ has RING
+--R odd? : % -> Boolean if $ has RETRACT(INT)
 --R operator : BasicOperator -> BasicOperator
---R operators : % -> List BasicOperator
---R retract : Polynomial Float -> % if R has RETRACT FLOAT
---R retract : Fraction Polynomial Float -> % if R has RETRACT FLOAT
---R retract : Expression Float -> % if R has RETRACT FLOAT
---R retract : Polynomial Integer -> % if R has RETRACT INT
---R retract : Fraction Polynomial Integer -> % if R has RETRACT INT
---R retract : Expression Integer -> % if R has RETRACT INT
---R retractIfCan : Polynomial Float -> Union(%,"failed") if R has RETRACT FLOAT
---R retractIfCan : Fraction Polynomial Float -> Union(%,"failed") if R has RETRACT FLOAT
---R retractIfCan : Expression Float -> Union(%,"failed") if R has RETRACT FLOAT
---R retractIfCan : Polynomial Integer -> Union(%,"failed") if R has RETRACT INT
---R retractIfCan : Fraction Polynomial Integer -> Union(%,"failed") if R has RETRACT INT
---R retractIfCan : Expression Integer -> Union(%,"failed") if R has RETRACT INT
+--R operators : % -> List(BasicOperator)
+--R retract : Polynomial(Float) -> % if R has RETRACT(FLOAT)
+--R retract : Fraction(Polynomial(Float)) -> % if R has RETRACT(FLOAT)
+--R retract : Expression(Float) -> % if R has RETRACT(FLOAT)
+--R retract : Polynomial(Integer) -> % if R has RETRACT(INT)
+--R retract : Fraction(Polynomial(Integer)) -> % if R has RETRACT(INT)
+--R retract : Expression(Integer) -> % if R has RETRACT(INT)
+--R retractIfCan : Polynomial(Float) -> Union(%,"failed") if R has RETRACT(FLOAT)
+--R retractIfCan : Fraction(Polynomial(Float)) -> Union(%,"failed") if R has RETRACT(FLOAT)
+--R retractIfCan : Expression(Float) -> Union(%,"failed") if R has RETRACT(FLOAT)
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed") if R has RETRACT(INT)
+--R retractIfCan : Fraction(Polynomial(Integer)) -> Union(%,"failed") if R has RETRACT(INT)
+--R retractIfCan : Expression(Integer) -> Union(%,"failed") if R has RETRACT(INT)
 --R retractIfCan : Symbol -> Union(%,"failed")
---R retractIfCan : Expression R -> Union(%,"failed")
+--R retractIfCan : Expression(R) -> Union(%,"failed")
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Kernel %,"failed")
---R subst : (%,List Kernel %,List %) -> %
---R subst : (%,List Equation %) -> %
+--R retractIfCan : % -> Union(Kernel(%),"failed")
+--R subst : (%,List(Kernel(%)),List(%)) -> %
+--R subst : (%,List(Equation(%))) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R useNagFunctions : Boolean -> Boolean
 --R
@@ -45342,26 +45462,27 @@ FortranExpression(basicSymbols,subscriptedSymbols,R):
 
 --S 1 of 1
 )show FortranProgram
---R FortranProgram(name: Symbol,returnType: Union(fst: FortranScalarType,void: void),arguments: List Symbol,symbols: SymbolTable)  is a domain constructor
+--R 
+--R FortranProgram(name: Symbol,returnType: Union(fst: FortranScalarType,void: void),arguments: List(Symbol),symbols: SymbolTable)  is a domain constructor
 --R Abbreviation for FortranProgram is FORTRAN 
 --R This constructor is exposed in this frame.
 --R Issue )edit NIL to see algebra source code for FORTRAN 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : Expression Float -> %        coerce : Expression Integer -> %
---R coerce : List FortranCode -> %        coerce : FortranCode -> %
+--R coerce : Expression(Float) -> %       coerce : Expression(Integer) -> %
+--R coerce : List(FortranCode) -> %       coerce : FortranCode -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---R coerce : Equation Expression Complex Float -> %
---R coerce : Equation Expression Float -> %
---R coerce : Equation Expression Integer -> %
---R coerce : Expression Complex Float -> %
---R coerce : Equation Expression MachineComplex -> %
---R coerce : Equation Expression MachineFloat -> %
---R coerce : Equation Expression MachineInteger -> %
---R coerce : Expression MachineComplex -> %
---R coerce : Expression MachineFloat -> %
---R coerce : Expression MachineInteger -> %
---R coerce : Record(localSymbols: SymbolTable,code: List FortranCode) -> %
+--R coerce : Equation(Expression(Complex(Float))) -> %
+--R coerce : Equation(Expression(Float)) -> %
+--R coerce : Equation(Expression(Integer)) -> %
+--R coerce : Expression(Complex(Float)) -> %
+--R coerce : Equation(Expression(MachineComplex)) -> %
+--R coerce : Equation(Expression(MachineFloat)) -> %
+--R coerce : Equation(Expression(MachineInteger)) -> %
+--R coerce : Expression(MachineComplex) -> %
+--R coerce : Expression(MachineFloat) -> %
+--R coerce : Expression(MachineInteger) -> %
+--R coerce : Record(localSymbols: SymbolTable,code: List(FortranCode)) -> %
 --R
 --E 1
 
@@ -46039,6 +46160,7 @@ FortranTemplate() : specification == implementation where
 
 --S 1 of 1
 )show FortranType
+--R 
 --R FortranType  is a domain constructor
 --R Abbreviation for FortranType is FT 
 --R This constructor is exposed in this frame.
@@ -46052,9 +46174,9 @@ FortranTemplate() : specification == implementation where
 --R fortranInteger : () -> %              fortranLogical : () -> %
 --R fortranReal : () -> %                 hash : % -> SingleInteger
 --R latex : % -> String                   ?~=? : (%,%) -> Boolean
---R construct : (Union(fst: FortranScalarType,void: void),List Polynomial Integer,Boolean) -> %
---R construct : (Union(fst: FortranScalarType,void: void),List Symbol,Boolean) -> %
---R dimensionsOf : % -> List Polynomial Integer
+--R construct : (Union(fst: FortranScalarType,void: void),List(Polynomial(Integer)),Boolean) -> %
+--R construct : (Union(fst: FortranScalarType,void: void),List(Symbol),Boolean) -> %
+--R dimensionsOf : % -> List(Polynomial(Integer))
 --R scalarTypeOf : % -> Union(fst: FortranScalarType,void: void)
 --R
 --E 1
@@ -46228,7 +46350,8 @@ FortranType() : exports == implementation where
 
 --S 1 of 1
 )show FourierComponent
---R FourierComponent E: OrderedSet  is a domain constructor
+--R 
+--R FourierComponent(E: OrderedSet)  is a domain constructor
 --R Abbreviation for FourierComponent is FCOMP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FCOMP 
@@ -46345,7 +46468,8 @@ FourierComponent(E:OrderedSet):
 
 --S 1 of 1
 )show FourierSeries
---R FourierSeries(R: Join(CommutativeRing,Algebra Fraction Integer),E: Join(OrderedSet,AbelianGroup))  is a domain constructor
+--R 
+--R FourierSeries(R: Join(CommutativeRing,Algebra(Fraction(Integer))),E: Join(OrderedSet,AbelianGroup))  is a domain constructor
 --R Abbreviation for FourierSeries is FSERIES 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FSERIES 
@@ -46357,7 +46481,7 @@ FourierComponent(E:OrderedSet):
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coerce : FourierComponent E -> %
+--R ?^? : (%,PositiveInteger) -> %        coerce : FourierComponent(E) -> %
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   makeCos : (E,R) -> %
@@ -46514,7 +46638,7 @@ a := 11/12
 --R        11
 --R   (1)  --
 --R        12
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 1
 
 --S 2 of 12
@@ -46524,7 +46648,7 @@ b := 23/24
 --R        23
 --R   (2)  --
 --R        24
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 2
 
 --S 3 of 12
@@ -46534,7 +46658,7 @@ b := 23/24
 --R        313271
 --R   (3)  ------
 --R         76032
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 3
 
 --S 4 of 12
@@ -46562,7 +46686,7 @@ r := (x**2 + 2*x + 1)/(x**2 - 2*x + 1)
 --R   (6)  -----------
 --R         2
 --R        x  - 2x + 1
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 6
 
 --S 7 of 12
@@ -46574,7 +46698,7 @@ factor(r)
 --R   (7)  -----------
 --R         2
 --R        x  - 2x + 1
---R                                   Type: Factored Fraction Polynomial Integer
+--R                                Type: Factored(Fraction(Polynomial(Integer)))
 --E 7
 
 --S 8 of 12
@@ -46586,7 +46710,7 @@ map(factor,r)
 --R   (8)  --------
 --R               2
 --R        (x - 1)
---R                                   Type: Fraction Factored Polynomial Integer
+--R                                Type: Fraction(Factored(Polynomial(Integer)))
 --E 8
 
 --S 9 of 12
@@ -46596,7 +46720,7 @@ continuedFraction(7/12)
 --R          1 |     1 |     1 |     1 |
 --R   (9)  +---+ + +---+ + +---+ + +---+
 --R        | 1     | 1     | 2     | 2
---R                                              Type: ContinuedFraction Integer
+--R                                             Type: ContinuedFraction(Integer)
 --E 9
 
 --S 10 of 12
@@ -46607,7 +46731,7 @@ partialFraction(7,12)
 --R   (10)  1 - -- + -
 --R              2   3
 --R             2
---R                                                Type: PartialFraction Integer
+--R                                               Type: PartialFraction(Integer)
 --E 10
 
 --S 11 of 12
@@ -46617,7 +46741,7 @@ g := 2/3 + 4/5*%i
 --R         2   4
 --R   (11)  - + - %i
 --R         3   5
---R                                               Type: Complex Fraction Integer
+--R                                             Type: Complex(Fraction(Integer))
 --E 11
 
 --S 12 of 12
@@ -46627,7 +46751,7 @@ g :: FRAC COMPLEX INT
 --R         10 + 12%i
 --R   (12)  ---------
 --R             15
---R                                               Type: Fraction Complex Integer
+--R                                             Type: Fraction(Complex(Integer))
 --E 12
 
 )spool
@@ -47193,7 +47317,8 @@ Fraction(S: IntegralDomain): QuotientFieldCategory S with
 
 --S 1 of 1
 )show FractionalIdeal
---R FractionalIdeal(R: EuclideanDomain,F: QuotientFieldCategory R,UP: UnivariatePolynomialCategory F,A: Join(FramedAlgebra(F,UP),RetractableTo F))  is a domain constructor
+--R 
+--R FractionalIdeal(R: EuclideanDomain,F: QuotientFieldCategory(R),UP: UnivariatePolynomialCategory(F),A: Join(FramedAlgebra(F,UP),RetractableTo(F)))  is a domain constructor
 --R Abbreviation for FractionalIdeal is FRIDEAL 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FRIDEAL 
@@ -47203,17 +47328,17 @@ Fraction(S: IntegralDomain): QuotientFieldCategory S with
 --R ?**? : (%,PositiveInteger) -> %       ?/? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
---R basis : % -> Vector A                 coerce : % -> OutputForm
+--R basis : % -> Vector(A)                coerce : % -> OutputForm
 --R commutator : (%,%) -> %               conjugate : (%,%) -> %
 --R denom : % -> R                        hash : % -> SingleInteger
---R ideal : Vector A -> %                 inv : % -> %
+--R ideal : Vector(A) -> %                inv : % -> %
 --R latex : % -> String                   minimize : % -> %
---R norm : % -> F                         numer : % -> Vector A
+--R norm : % -> F                         numer : % -> Vector(A)
 --R one? : % -> Boolean                   recip : % -> Union(%,"failed")
 --R sample : () -> %                      ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R randomLC : (NonNegativeInteger,Vector A) -> A
+--R randomLC : (NonNegativeInteger,Vector(A)) -> A
 --R
 --E 1
 
@@ -47455,7 +47580,8 @@ FractionalIdeal(R, F, UP, A): Exports == Implementation where
 
 --S 1 of 1
 )show FramedModule
---R FramedModule(R: EuclideanDomain,F: QuotientFieldCategory R,UP: UnivariatePolynomialCategory F,A: FramedAlgebra(F,UP),ibasis: Vector A)  is a domain constructor
+--R 
+--R FramedModule(R: EuclideanDomain,F: QuotientFieldCategory(R),UP: UnivariatePolynomialCategory(F),A: FramedAlgebra(F,UP),ibasis: Vector(A))  is a domain constructor
 --R Abbreviation for FramedModule is FRMOD 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FRMOD 
@@ -47463,15 +47589,15 @@ FractionalIdeal(R, F, UP, A): Exports == Implementation where
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,%) -> %                      ?**? : (%,PositiveInteger) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
---R ?^? : (%,PositiveInteger) -> %        basis : % -> Vector A
+--R ?^? : (%,PositiveInteger) -> %        basis : % -> Vector(A)
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
---R latex : % -> String                   module : Vector A -> %
+--R latex : % -> String                   module : Vector(A) -> %
 --R norm : % -> F                         one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
 --R ?~=? : (%,%) -> Boolean              
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R module : FractionalIdeal(R,F,UP,A) -> % if A has RETRACT F
+--R module : FractionalIdeal(R,F,UP,A) -> % if A has RETRACT(F)
 --R
 --E 1
 
@@ -47640,7 +47766,8 @@ FramedModule(R, F, UP, A, ibasis): Exports == Implementation where
 
 --S 1 of 1
 )show FreeAbelianGroup
---R FreeAbelianGroup S: SetCategory  is a domain constructor
+--R 
+--R FreeAbelianGroup(S: SetCategory)  is a domain constructor
 --R Abbreviation for FreeAbelianGroup is FAGROUP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FAGROUP 
@@ -47669,7 +47796,7 @@ FramedModule(R, F, UP, A, ibasis): Exports == Implementation where
 --R min : (%,%) -> % if S has ORDSET
 --R retractIfCan : % -> Union(S,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> List Record(gen: S,exp: Integer)
+--R terms : % -> List(Record(gen: S,exp: Integer))
 --R
 --E 1
 
@@ -47793,7 +47920,8 @@ FreeAbelianGroup(S:SetCategory): Exports == Implementation where
 
 --S 1 of 1
 )show FreeAbelianMonoid
---R FreeAbelianMonoid S: SetCategory  is a domain constructor
+--R 
+--R FreeAbelianMonoid(S: SetCategory)  is a domain constructor
 --R Abbreviation for FreeAbelianMonoid is FAMONOID 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FAMONOID 
@@ -47815,7 +47943,7 @@ FreeAbelianGroup(S:SetCategory): Exports == Implementation where
 --R nthCoef : (%,Integer) -> NonNegativeInteger
 --R retractIfCan : % -> Union(S,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> List Record(gen: S,exp: NonNegativeInteger)
+--R terms : % -> List(Record(gen: S,exp: NonNegativeInteger))
 --R
 --E 1
 
@@ -47901,7 +48029,8 @@ FreeAbelianMonoid(S: SetCategory):
 
 --S 1 of 1
 )show FreeGroup
---R FreeGroup S: SetCategory  is a domain constructor
+--R 
+--R FreeGroup(S: SetCategory)  is a domain constructor
 --R Abbreviation for FreeGroup is FGROUP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FGROUP 
@@ -47923,7 +48052,7 @@ FreeAbelianMonoid(S: SetCategory):
 --R ?~=? : (%,%) -> Boolean              
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R factors : % -> List Record(gen: S,exp: Integer)
+--R factors : % -> List(Record(gen: S,exp: Integer))
 --R mapExpon : ((Integer -> Integer),%) -> %
 --R retractIfCan : % -> Union(S,"failed")
 --R
@@ -48215,6 +48344,7 @@ FreeModule(R:Ring,S:OrderedSet):
 
 --S 1 of 1
 )show FreeModule1
+--R 
 --R FreeModule1(R: Ring,S: OrderedSet)  is a domain constructor
 --R Abbreviation for FreeModule1 is FM1 
 --R This constructor is not exposed in this frame.
@@ -48227,17 +48357,17 @@ FreeModule(R:Ring,S:OrderedSet):
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 0 : () -> %                           coefficient : (%,S) -> R
---R coefficients : % -> List R            coerce : S -> %
+--R coefficients : % -> List(R)           coerce : S -> %
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   leadingCoefficient : % -> R
 --R leadingMonomial : % -> S              map : ((R -> R),%) -> %
 --R monom : (S,R) -> %                    monomial? : % -> Boolean
---R monomials : % -> List %               reductum : % -> %
+--R monomials : % -> List(%)              reductum : % -> %
 --R retract : % -> S                      sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R leadingTerm : % -> Record(k: S,c: R)
---R listOfTerms : % -> List Record(k: S,c: R)
+--R listOfTerms : % -> List(Record(k: S,c: R))
 --R numberOfMonomials : % -> NonNegativeInteger
 --R retractIfCan : % -> Union(S,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -48409,7 +48539,8 @@ FreeModule1(R:Ring,S:OrderedSet): FMcat == FMdef where
 
 --S 1 of 1
 )show FreeMonoid
---R FreeMonoid S: SetCategory  is a domain constructor
+--R 
+--R FreeMonoid(S: SetCategory)  is a domain constructor
 --R Abbreviation for FreeMonoid is FMONOID 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FMONOID 
@@ -48434,7 +48565,7 @@ FreeModule1(R:Ring,S:OrderedSet): FMcat == FMdef where
 --R ?>=? : (%,%) -> Boolean if S has ORDSET
 --R ?^? : (%,NonNegativeInteger) -> %
 --R divide : (%,%) -> Union(Record(lm: %,rm: %),"failed")
---R factors : % -> List Record(gen: S,exp: NonNegativeInteger)
+--R factors : % -> List(Record(gen: S,exp: NonNegativeInteger))
 --R lquo : (%,%) -> Union(%,"failed")
 --R mapExpon : ((NonNegativeInteger -> NonNegativeInteger),%) -> %
 --R max : (%,%) -> % if S has ORDSET
@@ -48932,7 +49063,7 @@ f : Fx := 36 / (x**5-2*x**4-2*x**3+4*x**2+x-2)
 --R   (2)  ----------------------------
 --R         5     4     3     2
 --R        x  - 2x  - 2x  + 4x  + x - 2
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 2
 
 --S 3 of 16
@@ -48944,7 +49075,7 @@ g := fullPartialFraction f
 --R        x - 2   x + 1      --+              2
 --R                          2         (x - %A)
 --R                        %A  - 1= 0
---RType: FullPartialFractionExpansion(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: FullPartialFractionExpansion(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 3
 
 --S 4 of 16
@@ -48955,7 +49086,7 @@ g :: Fx
 --R   (4)  ----------------------------
 --R         5     4     3     2
 --R        x  - 2x  - 2x  + 4x  + x - 2
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 4
 
 --S 5 of 16
@@ -48967,7 +49098,7 @@ g5 := D(g, 5)
 --R                 6          6      --+                7
 --R          (x - 2)    (x + 1)      2           (x - %A)
 --R                                %A  - 1= 0
---RType: FullPartialFractionExpansion(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: FullPartialFractionExpansion(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 5
 
 --S 6 of 16
@@ -48989,7 +49120,7 @@ f5 := D(f, 5)
 --R     + 
 --R           4        3       2
 --R       276x  - 1184x  + 208x  + 192x - 64
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 6
 
 --S 7 of 16
@@ -48997,7 +49128,7 @@ g5::Fx - f5
 --R 
 --R
 --R   (7)  0
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 7
 
 --S 8 of 16
@@ -49009,7 +49140,7 @@ f : Fx := (x**5 * (x-1)) / ((x**2 + x + 1)**2 * (x-2)**3)
 --R   (8)  -----------------------------------
 --R         7     6     5     3     2
 --R        x  - 4x  + 3x  + 9x  - 6x  - 4x - 8
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 8
 
 --S 9 of 16
@@ -49032,7 +49163,7 @@ g := fullPartialFraction f
 --R           --+                   2
 --R       2                 (x - %A)
 --R     %A  + %A + 1= 0
---RType: FullPartialFractionExpansion(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: FullPartialFractionExpansion(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 9
 
 --S 10 of 16
@@ -49040,7 +49171,7 @@ g :: Fx - f
 --R 
 --R
 --R   (10)  0
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 10
 
 --S 11 of 16
@@ -49052,7 +49183,7 @@ f : Fx := (2*x**7-7*x**5+26*x**3+8*x) / (x**8-5*x**6+6*x**4+4*x**2-8)
 --R   (11)  ------------------------
 --R          8     6     4     2
 --R         x  - 5x  + 6x  + 4x  - 8
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 11
 
 --S 12 of 16
@@ -49066,7 +49197,7 @@ g := fullPartialFraction f
 --R            --+      x - %A      --+              3      --+      x - %A
 --R           2                    2         (x - %A)      2
 --R         %A  - 2= 0           %A  - 2= 0              %A  + 1= 0
---RType: FullPartialFractionExpansion(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: FullPartialFractionExpansion(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 12
 
 --S 13 of 16
@@ -49074,7 +49205,7 @@ g :: Fx - f
 --R 
 --R
 --R   (13)  0
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 13
 
 --S 14 of 16
@@ -49092,7 +49223,7 @@ f:Fx := x**3 / (x**21 + 2*x**20 + 4*x**19 + 7*x**18 + 10*x**17 + 17*x**16 + 22*x
 --R       47x   + 46x   + 49x  + 43x  + 38x  + 32x  + 23x  + 19x  + 10x  + 7x  + 2x
 --R     + 
 --R       1
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 14
 
 --S 15 of 16
@@ -49151,7 +49282,7 @@ g := fullPartialFraction f
 --R        -------------------------------------------------------------------
 --R                                             3
 --R                                     (x - %A)
---RType: FullPartialFractionExpansion(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: FullPartialFractionExpansion(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 15
 
 --S 16 of 16
@@ -49159,7 +49290,7 @@ g :: Fx - f
 --R 
 --R
 --R   (16)  0
---R                      Type: Fraction UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Fraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 16
 )spool
 )lisp (bye)
@@ -49601,7 +49732,8 @@ FullPartialFractionExpansion(F, UP): Exports == Implementation where
 
 --S 1 of 1
 )show FunctionCalled
---R FunctionCalled f: Symbol  is a domain constructor
+--R 
+--R FunctionCalled(f: Symbol)  is a domain constructor
 --R Abbreviation for FunctionCalled is FUNCTION 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for FUNCTION 
@@ -49685,7 +49817,7 @@ d1 := -4*z + 4*y**2*x + 16*x**2 + 1
 --R
 --R                 2       2
 --R   (2)  - 4z + 4y x + 16x  + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 2
 
 --S 3 of 10
@@ -49694,7 +49826,7 @@ d2 := 2*z*y**2 + 4*x + 1
 --R
 --R            2
 --R   (3)  2z y  + 4x + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 3
 
 --S 4 of 10
@@ -49703,7 +49835,7 @@ d3 := 2*z*x**2 - 2*y**2 - x
 --R
 --R            2     2
 --R   (4)  2z x  - 2y  - x
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 4
 
 --S 5 of 10
@@ -49720,7 +49852,7 @@ groebner [d1,d2,d3]
 --R     7   29  6   17  4   11  3    1  2   15     1
 --R    x  + -- x  - -- x  - -- x  + -- x  + -- x + -]
 --R          4      16       8      32      16     4
---R       Type: List DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R     Type: List(DistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 5
 
 --S 6 of 10
@@ -49735,7 +49867,7 @@ n1 := d1
 --R
 --R          2       2
 --R   (7)  4y x + 16x  - 4z + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 7
 
 --S 8 of 10
@@ -49744,7 +49876,7 @@ n2 := d2
 --R
 --R            2
 --R   (8)  2z y  + 4x + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 8
 
 --S 9 of 10
@@ -49753,7 +49885,7 @@ n3 := d3
 --R
 --R            2     2
 --R   (9)  2z x  - 2y  - x
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 9
 
 --S 10 of 10
@@ -49770,7 +49902,7 @@ groebner [n1,n2,n3]
 --R     2     2     2   1     3
 --R    z  - 4y  + 2x  - - z - - x]
 --R                     4     2
---RType: List HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 10
 )spool
 )lisp (bye)
@@ -50239,7 +50371,8 @@ GeneralDistributedMultivariatePolynomial(vl,R,E): public == private where
 
 --S 1 of 1
 )show GeneralModulePolynomial
---R GeneralModulePolynomial(vl: List Symbol,R: CommutativeRing,IS: OrderedSet,E: DirectProductCategory(# vl,NonNegativeInteger),ff: ((Record(index: IS,exponent: E),Record(index: IS,exponent: E)) -> Boolean),P: PolynomialCategory(R,E,OrderedVariableList vl))  is a domain constructor
+--R 
+--R GeneralModulePolynomial(vl: List(Symbol),R: CommutativeRing,IS: OrderedSet,E: DirectProductCategory(#(vl),NonNegativeInteger),ff: ((Record(index: IS,exponent: E),Record(index: IS,exponent: E)) -> Boolean),P: PolynomialCategory(R,E,OrderedVariableList(vl)))  is a domain constructor
 --R Abbreviation for GeneralModulePolynomial is GMODPOL 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for GMODPOL 
@@ -50401,7 +50534,8 @@ GeneralModulePolynomial(vl, R, IS, E, ff, P): public  ==  private where
 
 --S 1 of 1
 )show GenericNonAssociativeAlgebra
---R GenericNonAssociativeAlgebra(R: CommutativeRing,n: PositiveInteger,ls: List Symbol,gamma: Vector Matrix R)  is a domain constructor
+--R 
+--R GenericNonAssociativeAlgebra(R: CommutativeRing,n: PositiveInteger,ls: List(Symbol),gamma: Vector(Matrix(R)))  is a domain constructor
 --R Abbreviation for GenericNonAssociativeAlgebra is GCNAALG 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for GCNAALG 
@@ -50414,89 +50548,90 @@ GeneralModulePolynomial(vl, R, IS, E, ff, P): public  ==  private where
 --R 0 : () -> %                           alternative? : () -> Boolean
 --R antiAssociative? : () -> Boolean      antiCommutative? : () -> Boolean
 --R antiCommutator : (%,%) -> %           associative? : () -> Boolean
---R associator : (%,%,%) -> %             basis : () -> Vector %
+--R associator : (%,%,%) -> %             basis : () -> Vector(%)
 --R coerce : % -> OutputForm              commutative? : () -> Boolean
 --R commutator : (%,%) -> %               flexible? : () -> Boolean
---R generic : (Symbol,Vector %) -> %      generic : Vector % -> %
---R generic : Vector Symbol -> %          generic : Symbol -> %
---R generic : () -> %                     hash : % -> SingleInteger
---R jacobiIdentity? : () -> Boolean       jordanAdmissible? : () -> Boolean
---R jordanAlgebra? : () -> Boolean        latex : % -> String
---R leftAlternative? : () -> Boolean      lieAdmissible? : () -> Boolean
---R lieAlgebra? : () -> Boolean           powerAssociative? : () -> Boolean
---R rank : () -> PositiveInteger          rightAlternative? : () -> Boolean
---R sample : () -> %                      someBasis : () -> Vector %
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (SquareMatrix(n,Fraction Polynomial R),%) -> %
---R ?*? : (Fraction Polynomial R,%) -> %
---R ?*? : (%,Fraction Polynomial R) -> %
+--R generic : Vector(%) -> %              generic : Vector(Symbol) -> %
+--R generic : Symbol -> %                 generic : () -> %
+--R hash : % -> SingleInteger             jacobiIdentity? : () -> Boolean
+--R jordanAdmissible? : () -> Boolean     jordanAlgebra? : () -> Boolean
+--R latex : % -> String                   leftAlternative? : () -> Boolean
+--R lieAdmissible? : () -> Boolean        lieAlgebra? : () -> Boolean
+--R powerAssociative? : () -> Boolean     rank : () -> PositiveInteger
+--R rightAlternative? : () -> Boolean     sample : () -> %
+--R someBasis : () -> Vector(%)           zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
+--R ?*? : (SquareMatrix(n,Fraction(Polynomial(R))),%) -> %
+--R ?*? : (Fraction(Polynomial(R)),%) -> %
+--R ?*? : (%,Fraction(Polynomial(R))) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
---R apply : (Matrix Fraction Polynomial R,%) -> %
---R associatorDependence : () -> List Vector Fraction Polynomial R if Fraction Polynomial R has INTDOM
---R coerce : Vector Fraction Polynomial R -> %
---R conditionsForIdempotents : () -> List Polynomial R if R has INTDOM
---R conditionsForIdempotents : Vector % -> List Polynomial R if R has INTDOM
---R conditionsForIdempotents : () -> List Polynomial Fraction Polynomial R
---R conditionsForIdempotents : Vector % -> List Polynomial Fraction Polynomial R
---R convert : Vector Fraction Polynomial R -> %
---R convert : % -> Vector Fraction Polynomial R
---R coordinates : Vector % -> Matrix Fraction Polynomial R
---R coordinates : % -> Vector Fraction Polynomial R
---R coordinates : (Vector %,Vector %) -> Matrix Fraction Polynomial R
---R coordinates : (%,Vector %) -> Vector Fraction Polynomial R
---R ?.? : (%,Integer) -> Fraction Polynomial R
---R generic : (Vector Symbol,Vector %) -> %
---R genericLeftDiscriminant : () -> Fraction Polynomial R if R has INTDOM
---R genericLeftMinimalPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R if R has INTDOM
---R genericLeftNorm : % -> Fraction Polynomial R if R has INTDOM
---R genericLeftTrace : % -> Fraction Polynomial R if R has INTDOM
---R genericLeftTraceForm : (%,%) -> Fraction Polynomial R if R has INTDOM
---R genericRightDiscriminant : () -> Fraction Polynomial R if R has INTDOM
---R genericRightMinimalPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R if R has INTDOM
---R genericRightNorm : % -> Fraction Polynomial R if R has INTDOM
---R genericRightTrace : % -> Fraction Polynomial R if R has INTDOM
---R genericRightTraceForm : (%,%) -> Fraction Polynomial R if R has INTDOM
---R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R
---R leftDiscriminant : () -> Fraction Polynomial R
---R leftDiscriminant : Vector % -> Fraction Polynomial R
---R leftMinimalPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R if Fraction Polynomial R has INTDOM
---R leftNorm : % -> Fraction Polynomial R
+--R apply : (Matrix(Fraction(Polynomial(R))),%) -> %
+--R associatorDependence : () -> List(Vector(Fraction(Polynomial(R)))) if Fraction(Polynomial(R)) has INTDOM
+--R coerce : Vector(Fraction(Polynomial(R))) -> %
+--R conditionsForIdempotents : () -> List(Polynomial(R)) if R has INTDOM
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(R)) if R has INTDOM
+--R conditionsForIdempotents : () -> List(Polynomial(Fraction(Polynomial(R))))
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(Fraction(Polynomial(R))))
+--R convert : Vector(Fraction(Polynomial(R))) -> %
+--R convert : % -> Vector(Fraction(Polynomial(R)))
+--R coordinates : Vector(%) -> Matrix(Fraction(Polynomial(R)))
+--R coordinates : % -> Vector(Fraction(Polynomial(R)))
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(Fraction(Polynomial(R)))
+--R coordinates : (%,Vector(%)) -> Vector(Fraction(Polynomial(R)))
+--R ?.? : (%,Integer) -> Fraction(Polynomial(R))
+--R generic : (Vector(Symbol),Vector(%)) -> %
+--R generic : (Symbol,Vector(%)) -> %
+--R genericLeftDiscriminant : () -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericLeftMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if R has INTDOM
+--R genericLeftNorm : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericLeftTrace : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericLeftTraceForm : (%,%) -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericRightDiscriminant : () -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericRightMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if R has INTDOM
+--R genericRightNorm : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericRightTrace : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R genericRightTraceForm : (%,%) -> Fraction(Polynomial(R)) if R has INTDOM
+--R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R)))
+--R leftDiscriminant : () -> Fraction(Polynomial(R))
+--R leftDiscriminant : Vector(%) -> Fraction(Polynomial(R))
+--R leftMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if Fraction(Polynomial(R)) has INTDOM
+--R leftNorm : % -> Fraction(Polynomial(R))
 --R leftPower : (%,PositiveInteger) -> %
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Fraction Polynomial R if R has INTDOM
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Polynomial Fraction Polynomial R if Fraction Polynomial R has FIELD
---R leftRecip : % -> Union(%,"failed") if Fraction Polynomial R has INTDOM
---R leftRegularRepresentation : % -> Matrix Fraction Polynomial R
---R leftRegularRepresentation : (%,Vector %) -> Matrix Fraction Polynomial R
---R leftTrace : % -> Fraction Polynomial R
---R leftTraceMatrix : () -> Matrix Fraction Polynomial R
---R leftTraceMatrix : Vector % -> Matrix Fraction Polynomial R
---R leftUnit : () -> Union(%,"failed") if Fraction Polynomial R has INTDOM
---R leftUnits : () -> Union(Record(particular: %,basis: List %),"failed")
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if R has INTDOM
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Polynomial(R)))) if Fraction(Polynomial(R)) has FIELD
+--R leftRecip : % -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
+--R leftRegularRepresentation : % -> Matrix(Fraction(Polynomial(R)))
+--R leftRegularRepresentation : (%,Vector(%)) -> Matrix(Fraction(Polynomial(R)))
+--R leftTrace : % -> Fraction(Polynomial(R))
+--R leftTraceMatrix : () -> Matrix(Fraction(Polynomial(R)))
+--R leftTraceMatrix : Vector(%) -> Matrix(Fraction(Polynomial(R)))
+--R leftUnit : () -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
+--R leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed")
 --R noncommutativeJordanAlgebra? : () -> Boolean
 --R plenaryPower : (%,PositiveInteger) -> %
---R recip : % -> Union(%,"failed") if Fraction Polynomial R has INTDOM
---R represents : Vector Fraction Polynomial R -> %
---R represents : (Vector Fraction Polynomial R,Vector %) -> %
---R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R
---R rightDiscriminant : () -> Fraction Polynomial R
---R rightDiscriminant : Vector % -> Fraction Polynomial R
---R rightMinimalPolynomial : % -> SparseUnivariatePolynomial Fraction Polynomial R if Fraction Polynomial R has INTDOM
---R rightNorm : % -> Fraction Polynomial R
+--R recip : % -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
+--R represents : Vector(Fraction(Polynomial(R))) -> %
+--R represents : (Vector(Fraction(Polynomial(R))),Vector(%)) -> %
+--R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R)))
+--R rightDiscriminant : () -> Fraction(Polynomial(R))
+--R rightDiscriminant : Vector(%) -> Fraction(Polynomial(R))
+--R rightMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if Fraction(Polynomial(R)) has INTDOM
+--R rightNorm : % -> Fraction(Polynomial(R))
 --R rightPower : (%,PositiveInteger) -> %
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Fraction Polynomial R if R has INTDOM
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Polynomial Fraction Polynomial R if Fraction Polynomial R has FIELD
---R rightRecip : % -> Union(%,"failed") if Fraction Polynomial R has INTDOM
---R rightRegularRepresentation : % -> Matrix Fraction Polynomial R
---R rightRegularRepresentation : (%,Vector %) -> Matrix Fraction Polynomial R
---R rightTrace : % -> Fraction Polynomial R
---R rightTraceMatrix : () -> Matrix Fraction Polynomial R
---R rightTraceMatrix : Vector % -> Matrix Fraction Polynomial R
---R rightUnit : () -> Union(%,"failed") if Fraction Polynomial R has INTDOM
---R rightUnits : () -> Union(Record(particular: %,basis: List %),"failed")
---R structuralConstants : () -> Vector Matrix Fraction Polynomial R
---R structuralConstants : Vector % -> Vector Matrix Fraction Polynomial R
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Fraction(Polynomial(R))) if R has INTDOM
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Polynomial(R)))) if Fraction(Polynomial(R)) has FIELD
+--R rightRecip : % -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
+--R rightRegularRepresentation : % -> Matrix(Fraction(Polynomial(R)))
+--R rightRegularRepresentation : (%,Vector(%)) -> Matrix(Fraction(Polynomial(R)))
+--R rightTrace : % -> Fraction(Polynomial(R))
+--R rightTraceMatrix : () -> Matrix(Fraction(Polynomial(R)))
+--R rightTraceMatrix : Vector(%) -> Matrix(Fraction(Polynomial(R)))
+--R rightUnit : () -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed")
+--R structuralConstants : () -> Vector(Matrix(Fraction(Polynomial(R))))
+--R structuralConstants : Vector(%) -> Vector(Matrix(Fraction(Polynomial(R))))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R unit : () -> Union(%,"failed") if Fraction Polynomial R has INTDOM
+--R unit : () -> Union(%,"failed") if Fraction(Polynomial(R)) has INTDOM
 --R
 --E 1
 
@@ -50928,32 +51063,33 @@ GenericNonAssociativeAlgebra(R : CommutativeRing, n : PositiveInteger,_
 
 --S 1 of 1
 )show GeneralPolynomialSet
+--R 
 --R GeneralPolynomialSet(R: Ring,E: OrderedAbelianMonoidSup,VarSet: OrderedSet,P: RecursivePolynomialCategory(R,E,VarSet))  is a domain constructor
 --R Abbreviation for GeneralPolynomialSet is GPOLSET 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for GPOLSET 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                coerce : % -> List P
+--R ?=? : (%,%) -> Boolean                coerce : % -> List(P)
 --R coerce : % -> OutputForm              collect : (%,VarSet) -> %
 --R collectUnder : (%,VarSet) -> %        collectUpper : (%,VarSet) -> %
---R construct : List P -> %               convert : List P -> %
+--R construct : List(P) -> %              convert : List(P) -> %
 --R copy : % -> %                         empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             latex : % -> String
---R mainVariables : % -> List VarSet      map : ((P -> P),%) -> %
---R mvar : % -> VarSet                    retract : List P -> %
+--R mainVariables : % -> List(VarSet)     map : ((P -> P),%) -> %
+--R mvar : % -> VarSet                    retract : List(P) -> %
 --R sample : () -> %                      trivialIdeal? : % -> Boolean
---R variables : % -> List VarSet          ?~=? : (%,%) -> Boolean
+--R variables : % -> List(VarSet)         ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R convert : % -> InputForm if P has KONVERT INFORM
+--R convert : % -> InputForm if P has KONVERT(INFORM)
 --R count : ((P -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (P,%) -> NonNegativeInteger if $ has finiteAggregate and P has SETCAT
---R eval : (%,List Equation P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,Equation P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,P,P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,List P,List P) -> % if P has EVALAB P and P has SETCAT
+--R eval : (%,List(Equation(P))) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,Equation(P)) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,P,P) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,List(P),List(P)) -> % if P has EVALAB(P) and P has SETCAT
 --R every? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
 --R headRemainder : (P,%) -> Record(num: P,den: R) if R has INTDOM
@@ -50961,9 +51097,9 @@ GenericNonAssociativeAlgebra(R : CommutativeRing, n : PositiveInteger,_
 --R mainVariable? : (VarSet,%) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if $ has finiteAggregate and P has SETCAT
---R members : % -> List P if $ has finiteAggregate
+--R members : % -> List(P) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List P if $ has finiteAggregate
+--R parts : % -> List(P) if $ has finiteAggregate
 --R reduce : (((P,P) -> P),%) -> P if $ has finiteAggregate
 --R reduce : (((P,P) -> P),%,P) -> P if $ has finiteAggregate
 --R reduce : (((P,P) -> P),%,P,P) -> P if $ has finiteAggregate and P has SETCAT
@@ -50971,9 +51107,9 @@ GenericNonAssociativeAlgebra(R : CommutativeRing, n : PositiveInteger,_
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if $ has finiteAggregate and P has SETCAT
 --R removeDuplicates : % -> % if $ has finiteAggregate and P has SETCAT
---R retractIfCan : List P -> Union(%,"failed")
---R rewriteIdealWithHeadRemainder : (List P,%) -> List P if R has INTDOM
---R rewriteIdealWithRemainder : (List P,%) -> List P if R has INTDOM
+--R retractIfCan : List(P) -> Union(%,"failed")
+--R rewriteIdealWithHeadRemainder : (List(P),%) -> List(P) if R has INTDOM
+--R rewriteIdealWithRemainder : (List(P),%) -> List(P) if R has INTDOM
 --R roughBase? : % -> Boolean if R has INTDOM
 --R roughEqualIdeals? : (%,%) -> Boolean if R has INTDOM
 --R roughSubIdeal? : (%,%) -> Boolean if R has INTDOM
@@ -51354,6 +51490,7 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 
 --S 1 of 1
 )show GeneralTriangularSet
+--R 
 --R GeneralTriangularSet(R: IntegralDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(R,E,V))  is a domain constructor
 --R Abbreviation for GeneralTriangularSet is GTSET 
 --R This constructor is not exposed in this frame.
@@ -51361,10 +51498,10 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                algebraic? : (V,%) -> Boolean
---R algebraicVariables : % -> List V      coerce : % -> List P
+--R algebraicVariables : % -> List(V)     coerce : % -> List(P)
 --R coerce : % -> OutputForm              collect : (%,V) -> %
 --R collectQuasiMonic : % -> %            collectUnder : (%,V) -> %
---R collectUpper : (%,V) -> %             construct : List P -> %
+--R collectUpper : (%,V) -> %             construct : List(P) -> %
 --R copy : % -> %                         degree : % -> NonNegativeInteger
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extend : (%,P) -> %
@@ -51372,29 +51509,29 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 --R headReduce : (P,%) -> P               headReduced? : % -> Boolean
 --R headReduced? : (P,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R initiallyReduce : (P,%) -> P          initiallyReduced? : % -> Boolean
---R initials : % -> List P                last : % -> Union(P,"failed")
+--R initials : % -> List(P)               last : % -> Union(P,"failed")
 --R latex : % -> String                   mainVariable? : (V,%) -> Boolean
---R mainVariables : % -> List V           map : ((P -> P),%) -> %
+--R mainVariables : % -> List(V)          map : ((P -> P),%) -> %
 --R mvar : % -> V                         normalized? : % -> Boolean
 --R normalized? : (P,%) -> Boolean        reduceByQuasiMonic : (P,%) -> P
 --R removeZero : (P,%) -> P               rest : % -> Union(%,"failed")
---R retract : List P -> %                 sample : () -> %
+--R retract : List(P) -> %                sample : () -> %
 --R stronglyReduce : (P,%) -> P           stronglyReduced? : % -> Boolean
---R trivialIdeal? : % -> Boolean          variables : % -> List V
---R zeroSetSplit : List P -> List %       ?~=? : (%,%) -> Boolean
+--R trivialIdeal? : % -> Boolean          variables : % -> List(V)
+--R zeroSetSplit : List(P) -> List(%)     ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R autoReduced? : (%,((P,List P) -> Boolean)) -> Boolean
---R basicSet : (List P,(P -> Boolean),((P,P) -> Boolean)) -> Union(Record(bas: %,top: List P),"failed")
---R basicSet : (List P,((P,P) -> Boolean)) -> Union(Record(bas: %,top: List P),"failed")
+--R autoReduced? : (%,((P,List(P)) -> Boolean)) -> Boolean
+--R basicSet : (List(P),(P -> Boolean),((P,P) -> Boolean)) -> Union(Record(bas: %,top: List(P)),"failed")
+--R basicSet : (List(P),((P,P) -> Boolean)) -> Union(Record(bas: %,top: List(P)),"failed")
 --R coHeight : % -> NonNegativeInteger if V has FINITE
---R convert : % -> InputForm if P has KONVERT INFORM
+--R convert : % -> InputForm if P has KONVERT(INFORM)
 --R count : ((P -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (P,%) -> NonNegativeInteger if $ has finiteAggregate and P has SETCAT
---R eval : (%,List Equation P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,Equation P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,P,P) -> % if P has EVALAB P and P has SETCAT
---R eval : (%,List P,List P) -> % if P has EVALAB P and P has SETCAT
+--R eval : (%,List(Equation(P))) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,Equation(P)) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,P,P) -> % if P has EVALAB(P) and P has SETCAT
+--R eval : (%,List(P),List(P)) -> % if P has EVALAB(P) and P has SETCAT
 --R every? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extendIfCan : (%,P) -> Union(%,"failed")
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
@@ -51403,10 +51540,10 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if $ has finiteAggregate and P has SETCAT
---R members : % -> List P if $ has finiteAggregate
+--R members : % -> List(P) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List P if $ has finiteAggregate
---R quasiComponent : % -> Record(close: List P,open: List P)
+--R parts : % -> List(P) if $ has finiteAggregate
+--R quasiComponent : % -> Record(close: List(P),open: List(P))
 --R reduce : (P,%,((P,P) -> P),((P,P) -> Boolean)) -> P
 --R reduce : (((P,P) -> P),%) -> P if $ has finiteAggregate
 --R reduce : (((P,P) -> P),%,P) -> P if $ has finiteAggregate
@@ -51416,10 +51553,10 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if $ has finiteAggregate and P has SETCAT
 --R removeDuplicates : % -> % if $ has finiteAggregate and P has SETCAT
---R retractIfCan : List P -> Union(%,"failed")
---R rewriteIdealWithHeadRemainder : (List P,%) -> List P if R has INTDOM
---R rewriteIdealWithRemainder : (List P,%) -> List P if R has INTDOM
---R rewriteSetWithReduction : (List P,%,((P,P) -> P),((P,P) -> Boolean)) -> List P
+--R retractIfCan : List(P) -> Union(%,"failed")
+--R rewriteIdealWithHeadRemainder : (List(P),%) -> List(P) if R has INTDOM
+--R rewriteIdealWithRemainder : (List(P),%) -> List(P) if R has INTDOM
+--R rewriteSetWithReduction : (List(P),%,((P,P) -> P),((P,P) -> Boolean)) -> List(P)
 --R roughBase? : % -> Boolean if R has INTDOM
 --R roughEqualIdeals? : (%,%) -> Boolean if R has INTDOM
 --R roughSubIdeal? : (%,%) -> Boolean if R has INTDOM
@@ -51430,7 +51567,7 @@ GeneralSparseTable(Key, Entry, Tbl, dent): TableAggregate(Key, Entry) == Impl
 --R sort : (%,V) -> Record(under: %,floor: %,upper: %)
 --R stronglyReduced? : (P,%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R zeroSetSplitIntoTriangularSystems : List P -> List Record(close: %,open: List P)
+--R zeroSetSplitIntoTriangularSystems : List(P) -> List(Record(close: %,open: List(P)))
 --R
 --E 1
 
@@ -51663,6 +51800,7 @@ GeneralTriangularSet(R,E,V,P) : Exports == Implementation where
 
 --S 1 of 1
 )show GeneralUnivariatePowerSeries
+--R 
 --R GeneralUnivariatePowerSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for GeneralUnivariatePowerSeries is GSERIES 
 --R This constructor is exposed in this frame.
@@ -51676,121 +51814,121 @@ GeneralTriangularSet(R,E,V,P) : Exports == Implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coerce : Variable var -> %            coerce : Integer -> %
+--R coerce : Variable(var) -> %           coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R degree : % -> Fraction Integer        hash : % -> SingleInteger
+--R degree : % -> Fraction(Integer)       hash : % -> SingleInteger
 --R latex : % -> String                   leadingCoefficient : % -> Coef
 --R leadingMonomial : % -> %              map : ((Coef -> Coef),%) -> %
 --R monomial? : % -> Boolean              one? : % -> Boolean
---R order : % -> Fraction Integer         pole? : % -> Boolean
+--R order : % -> Fraction(Integer)        pole? : % -> Boolean
 --R recip : % -> Union(%,"failed")        reductum : % -> %
 --R sample : () -> %                      variable : % -> Symbol
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (%,Fraction Integer) -> % if Coef has ALGEBRA FRAC INT
---R ?*? : (Fraction Integer,%) -> % if Coef has ALGEBRA FRAC INT
+--R ?*? : (%,Fraction(Integer)) -> % if Coef has ALGEBRA(FRAC(INT))
+--R ?*? : (Fraction(Integer),%) -> % if Coef has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
---R ?**? : (%,Fraction Integer) -> % if Coef has ALGEBRA FRAC INT
---R ?**? : (%,%) -> % if Coef has ALGEBRA FRAC INT
+--R ?**? : (%,Fraction(Integer)) -> % if Coef has ALGEBRA(FRAC(INT))
+--R ?**? : (%,%) -> % if Coef has ALGEBRA(FRAC(INT))
 --R ?**? : (%,Integer) -> % if Coef has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,%) -> % if Coef has FIELD
 --R ?/? : (%,Coef) -> % if Coef has FIELD
---R D : % -> % if Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : % -> % if Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,NonNegativeInteger) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,Symbol) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?^? : (%,Integer) -> % if Coef has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
---R acos : % -> % if Coef has ALGEBRA FRAC INT
---R acosh : % -> % if Coef has ALGEBRA FRAC INT
---R acot : % -> % if Coef has ALGEBRA FRAC INT
---R acoth : % -> % if Coef has ALGEBRA FRAC INT
---R acsc : % -> % if Coef has ALGEBRA FRAC INT
---R acsch : % -> % if Coef has ALGEBRA FRAC INT
---R approximate : (%,Fraction Integer) -> Coef if Coef has **: (Coef,Fraction Integer) -> Coef and Coef has coerce: Symbol -> Coef
---R asec : % -> % if Coef has ALGEBRA FRAC INT
---R asech : % -> % if Coef has ALGEBRA FRAC INT
---R asin : % -> % if Coef has ALGEBRA FRAC INT
---R asinh : % -> % if Coef has ALGEBRA FRAC INT
+--R acos : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R acosh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R acot : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R acoth : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R acsc : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R acsch : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R approximate : (%,Fraction(Integer)) -> Coef if Coef has **: (Coef,Fraction(Integer)) -> Coef and Coef has coerce: Symbol -> Coef
+--R asec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R asech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R asin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R asinh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R associates? : (%,%) -> Boolean if Coef has INTDOM
---R atan : % -> % if Coef has ALGEBRA FRAC INT
---R atanh : % -> % if Coef has ALGEBRA FRAC INT
+--R atan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R atanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if Coef has CHARNZ
---R coefficient : (%,Fraction Integer) -> Coef
+--R coefficient : (%,Fraction(Integer)) -> Coef
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R coerce : UnivariatePuiseuxSeries(Coef,var,cen) -> %
 --R coerce : Coef -> % if Coef has COMRING
---R cos : % -> % if Coef has ALGEBRA FRAC INT
---R cosh : % -> % if Coef has ALGEBRA FRAC INT
---R cot : % -> % if Coef has ALGEBRA FRAC INT
---R coth : % -> % if Coef has ALGEBRA FRAC INT
---R csc : % -> % if Coef has ALGEBRA FRAC INT
---R csch : % -> % if Coef has ALGEBRA FRAC INT
---R differentiate : (%,Variable var) -> %
---R differentiate : % -> % if Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (Fraction Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R cos : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cosh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cot : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R coth : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R csc : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R csch : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R differentiate : (%,Variable(var)) -> %
+--R differentiate : % -> % if Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,Symbol) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (Fraction(Integer),Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if Coef has FIELD
---R ?.? : (%,%) -> % if Fraction Integer has SGROUP
---R ?.? : (%,Fraction Integer) -> Coef
+--R ?.? : (%,%) -> % if Fraction(Integer) has SGROUP
+--R ?.? : (%,Fraction(Integer)) -> Coef
 --R euclideanSize : % -> NonNegativeInteger if Coef has FIELD
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,Fraction Integer) -> Coef
---R exp : % -> % if Coef has ALGEBRA FRAC INT
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if Coef has FIELD
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,Fraction(Integer)) -> Coef
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if Coef has FIELD
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
---R extend : (%,Fraction Integer) -> %
+--R extend : (%,Fraction(Integer)) -> %
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if Coef has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if Coef has FIELD
---R factor : % -> Factored % if Coef has FIELD
+--R factor : % -> Factored(%) if Coef has FIELD
 --R gcd : (%,%) -> % if Coef has FIELD
---R gcd : List % -> % if Coef has FIELD
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if Coef has FIELD
---R integrate : (%,Variable var) -> % if Coef has ALGEBRA FRAC INT
---R integrate : (%,Symbol) -> % if Coef has integrate: (Coef,Symbol) -> Coef and Coef has variables: Coef -> List Symbol and Coef has ALGEBRA FRAC INT or Coef has ACFS INT and Coef has ALGEBRA FRAC INT and Coef has PRIMCAT and Coef has TRANFUN
---R integrate : % -> % if Coef has ALGEBRA FRAC INT
+--R gcd : List(%) -> % if Coef has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if Coef has FIELD
+--R integrate : (%,Variable(var)) -> % if Coef has ALGEBRA(FRAC(INT))
+--R integrate : (%,Symbol) -> % if Coef has integrate: (Coef,Symbol) -> Coef and Coef has variables: Coef -> List(Symbol) and Coef has ALGEBRA(FRAC(INT)) or Coef has ACFS(INT) and Coef has ALGEBRA(FRAC(INT)) and Coef has PRIMCAT and Coef has TRANFUN
+--R integrate : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R inv : % -> % if Coef has FIELD
 --R lcm : (%,%) -> % if Coef has FIELD
---R lcm : List % -> % if Coef has FIELD
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List Fraction Integer) -> %
---R monomial : (%,SingletonAsOrderedSet,Fraction Integer) -> %
---R monomial : (Coef,Fraction Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if Coef has FIELD
---R multiplyExponents : (%,Fraction Integer) -> %
+--R lcm : List(%) -> % if Coef has FIELD
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(Fraction(Integer))) -> %
+--R monomial : (%,SingletonAsOrderedSet,Fraction(Integer)) -> %
+--R monomial : (Coef,Fraction(Integer)) -> %
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if Coef has FIELD
+--R multiplyExponents : (%,Fraction(Integer)) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
---R order : (%,Fraction Integer) -> Fraction Integer
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--R order : (%,Fraction(Integer)) -> Fraction(Integer)
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
 --R prime? : % -> Boolean if Coef has FIELD
---R principalIdeal : List % -> Record(coef: List %,generator: %) if Coef has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if Coef has FIELD
 --R ?quo? : (%,%) -> % if Coef has FIELD
 --R ?rem? : (%,%) -> % if Coef has FIELD
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : (NonNegativeInteger,Stream Record(k: Fraction Integer,c: Coef)) -> %
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : (NonNegativeInteger,Stream(Record(k: Fraction(Integer),c: Coef))) -> %
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R sizeLess? : (%,%) -> Boolean if Coef has FIELD
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
---R squareFree : % -> Factored % if Coef has FIELD
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R squareFree : % -> Factored(%) if Coef has FIELD
 --R squareFreePart : % -> % if Coef has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if Coef has ALGEBRA FRAC INT
---R tanh : % -> % if Coef has ALGEBRA FRAC INT
---R terms : % -> Stream Record(k: Fraction Integer,c: Coef)
---R truncate : (%,Fraction Integer,Fraction Integer) -> %
---R truncate : (%,Fraction Integer) -> %
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: Fraction(Integer),c: Coef))
+--R truncate : (%,Fraction(Integer),Fraction(Integer)) -> %
+--R truncate : (%,Fraction(Integer)) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -52041,6 +52179,7 @@ GeneralUnivariatePowerSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show GraphImage
+--R 
 --R GraphImage  is a domain constructor
 --R Abbreviation for GraphImage is GRIMAGE 
 --R This constructor is not exposed in this frame.
@@ -52050,22 +52189,23 @@ GeneralUnivariatePowerSeries(Coef,var,cen): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R graphImage : () -> %                  hash : % -> SingleInteger
 --R key : % -> Integer                    latex : % -> String
---R makeGraphImage : % -> %               ranges : % -> List Segment Float
---R units : % -> List Float               ?~=? : (%,%) -> Boolean
---R appendPoint : (%,Point DoubleFloat) -> Void
---R coerce : List List Point DoubleFloat -> %
---R component : (%,Point DoubleFloat,Palette,Palette,PositiveInteger) -> Void
---R component : (%,Point DoubleFloat) -> Void
---R component : (%,List Point DoubleFloat,Palette,Palette,PositiveInteger) -> Void
---R figureUnits : List List Point DoubleFloat -> List DoubleFloat
---R makeGraphImage : (List List Point DoubleFloat,List Palette,List Palette,List PositiveInteger,List DrawOption) -> %
---R makeGraphImage : (List List Point DoubleFloat,List Palette,List Palette,List PositiveInteger) -> %
---R makeGraphImage : List List Point DoubleFloat -> %
---R point : (%,Point DoubleFloat,Palette) -> Void
---R pointLists : % -> List List Point DoubleFloat
---R putColorInfo : (List List Point DoubleFloat,List Palette) -> List List Point DoubleFloat
---R ranges : (%,List Segment Float) -> List Segment Float
---R units : (%,List Float) -> List Float
+--R makeGraphImage : % -> %               units : % -> List(Float)
+--R ?~=? : (%,%) -> Boolean              
+--R appendPoint : (%,Point(DoubleFloat)) -> Void
+--R coerce : List(List(Point(DoubleFloat))) -> %
+--R component : (%,Point(DoubleFloat),Palette,Palette,PositiveInteger) -> Void
+--R component : (%,Point(DoubleFloat)) -> Void
+--R component : (%,List(Point(DoubleFloat)),Palette,Palette,PositiveInteger) -> Void
+--R figureUnits : List(List(Point(DoubleFloat))) -> List(DoubleFloat)
+--R makeGraphImage : (List(List(Point(DoubleFloat))),List(Palette),List(Palette),List(PositiveInteger),List(DrawOption)) -> %
+--R makeGraphImage : (List(List(Point(DoubleFloat))),List(Palette),List(Palette),List(PositiveInteger)) -> %
+--R makeGraphImage : List(List(Point(DoubleFloat))) -> %
+--R point : (%,Point(DoubleFloat),Palette) -> Void
+--R pointLists : % -> List(List(Point(DoubleFloat)))
+--R putColorInfo : (List(List(Point(DoubleFloat))),List(Palette)) -> List(List(Point(DoubleFloat)))
+--R ranges : (%,List(Segment(Float))) -> List(Segment(Float))
+--R ranges : % -> List(Segment(Float))
+--R units : (%,List(Float)) -> List(Float)
 --R
 --E 1
 
@@ -52532,6 +52672,7 @@ GraphImage (): Exports == Implementation where
 
 --S 1 of 1
 )show GuessOption
+--R 
 --R GuessOption  is a domain constructor
 --R Abbreviation for GuessOption is GOPT 
 --R This constructor is exposed in this frame.
@@ -52541,7 +52682,7 @@ GraphImage (): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean                allDegrees : Boolean -> %
 --R checkExtraValues : Boolean -> %       coerce : % -> OutputForm
 --R debug : Boolean -> %                  displayKind : Symbol -> %
---R functionName : Symbol -> %            functionNames : List Symbol -> %
+--R functionName : Symbol -> %            functionNames : List(Symbol) -> %
 --R hash : % -> SingleInteger             indexName : Symbol -> %
 --R latex : % -> String                   one : Boolean -> %
 --R safety : NonNegativeInteger -> %      variableName : Symbol -> %
@@ -52556,7 +52697,7 @@ GraphImage (): Exports == Implementation where
 --R maxPower : Union(PositiveInteger,arbitrary) -> %
 --R maxShift : Union(NonNegativeInteger,arbitrary) -> %
 --R maxSubst : Union(PositiveInteger,arbitrary) -> %
---R option : (List %,Symbol) -> Union(Any,"failed")
+--R option : (List(%),Symbol) -> Union(Any,"failed")
 --R
 --E 1
 
@@ -52792,17 +52933,20 @@ GuessOption(): Exports == Implementation where
 
 --S 1 of 1
 )show GuessOptionFunctions0
+--R 
 --R GuessOptionFunctions0  is a domain constructor
 --R Abbreviation for GuessOptionFunctions0 is GOPT0 
 --R This constructor is not exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for GOPT0 
+--R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R one : List(GuessOption) -> Boolean    ?~=? : (%,%) -> Boolean
---R MonteCarlo : List(GuessOption) -> Boolean
 --R Somos : List(GuessOption) -> Union(PositiveInteger,Boolean)
 --R allDegrees : List(GuessOption) -> Boolean
---R check : List(GuessOption) -> Boolean
+--R check : List(GuessOption) -> Union(skip,MonteCarlo,deterministic)
+--R checkExtraValues : List(GuessOption) -> Boolean
 --R checkOptions : List(GuessOption) -> Void
 --R debug : List(GuessOption) -> Boolean
 --R displayAsGF : List(GuessOption) -> Boolean
@@ -53151,6 +53295,7 @@ GuessOptionFunctions0(): Exports == Implementation where
 
 --S 1 of 1
 )show HashTable
+--R 
 --R HashTable(Key: SetCategory,Entry: SetCategory,hashfn: String)  is a domain constructor
 --R Abbreviation for HashTable is HASHTBL 
 --R This constructor is not exposed in this frame.
@@ -53160,9 +53305,9 @@ GuessOptionFunctions0(): Exports == Implementation where
 --R copy : % -> %                         dictionary : () -> %
 --R elt : (%,Key,Entry) -> Entry          ?.? : (%,Key) -> Entry
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Entry             eq? : (%,%) -> Boolean
---R index? : (Key,%) -> Boolean           indices : % -> List Key
---R key? : (Key,%) -> Boolean             keys : % -> List Key
+--R entries : % -> List(Entry)            eq? : (%,%) -> Boolean
+--R index? : (Key,%) -> Boolean           indices : % -> List(Key)
+--R key? : (Key,%) -> Boolean             keys : % -> List(Key)
 --R map : ((Entry -> Entry),%) -> %       qelt : (%,Key) -> Entry
 --R sample : () -> %                      setelt : (%,Key,Entry) -> Entry
 --R table : () -> %                      
@@ -53170,24 +53315,24 @@ GuessOptionFunctions0(): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
 --R any? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R any? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R bag : List Record(key: Key,entry: Entry) -> %
+--R bag : List(Record(key: Key,entry: Entry)) -> %
 --R coerce : % -> OutputForm if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
---R construct : List Record(key: Key,entry: Entry) -> %
---R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT INFORM
+--R construct : List(Record(key: Key,entry: Entry)) -> %
+--R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT(INFORM)
 --R count : ((Entry -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Entry,%) -> NonNegativeInteger if $ has finiteAggregate and Entry has SETCAT
 --R count : (Record(key: Key,entry: Entry),%) -> NonNegativeInteger if $ has finiteAggregate and Record(key: Key,entry: Entry) has SETCAT
 --R count : ((Record(key: Key,entry: Entry) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R dictionary : List Record(key: Key,entry: Entry) -> %
+--R dictionary : List(Record(key: Key,entry: Entry)) -> %
 --R entry? : (Entry,%) -> Boolean if $ has finiteAggregate and Entry has SETCAT
---R eval : (%,List Equation Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,Equation Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,Entry,Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,List Entry,List Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,List Record(key: Key,entry: Entry),List Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,Equation Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,List Equation Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,List(Equation(Entry))) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,Equation(Entry)) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,Entry,Entry) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,List(Entry),List(Entry)) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,List(Record(key: Key,entry: Entry)),List(Record(key: Key,entry: Entry))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,Equation(Record(key: Key,entry: Entry))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,List(Equation(Record(key: Key,entry: Entry)))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
 --R every? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extract! : % -> Record(key: Key,entry: Entry)
@@ -53206,12 +53351,12 @@ GuessOptionFunctions0(): Exports == Implementation where
 --R maxIndex : % -> Key if Key has ORDSET
 --R member? : (Entry,%) -> Boolean if $ has finiteAggregate and Entry has SETCAT
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if $ has finiteAggregate and Record(key: Key,entry: Entry) has SETCAT
---R members : % -> List Entry if $ has finiteAggregate
---R members : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R members : % -> List(Entry) if $ has finiteAggregate
+--R members : % -> List(Record(key: Key,entry: Entry)) if $ has finiteAggregate
 --R minIndex : % -> Key if Key has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Entry if $ has finiteAggregate
---R parts : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R parts : % -> List(Entry) if $ has finiteAggregate
+--R parts : % -> List(Record(key: Key,entry: Entry)) if $ has finiteAggregate
 --R qsetelt! : (%,Key,Entry) -> Entry if $ has shallowlyMutable
 --R reduce : (((Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry)),%) -> Record(key: Key,entry: Entry) if $ has finiteAggregate
 --R reduce : (((Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry)),%,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has finiteAggregate
@@ -53227,7 +53372,7 @@ GuessOptionFunctions0(): Exports == Implementation where
 --R select! : ((Record(key: Key,entry: Entry) -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R swap! : (%,Key,Key) -> Void if $ has shallowlyMutable
---R table : List Record(key: Key,entry: Entry) -> %
+--R table : List(Record(key: Key,entry: Entry)) -> %
 --R ?~=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
 --R
 --E 1
@@ -53386,7 +53531,7 @@ a:Heap INT:= heap [1,2,3,4,5]
 --R 
 --R
 --R   (1)  [5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 1
 
 --S 2 of 42
@@ -53394,7 +53539,7 @@ bag([1,2,3,4,5])$Heap(INT)
 --R 
 --R
 --R   (2)  [5,4,3,1,2]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 2
 
 --S 3 of 42
@@ -53402,7 +53547,7 @@ c:=copy a
 --R 
 --R
 --R   (3)  [5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 3
 
 --S 4 of 42
@@ -53418,7 +53563,7 @@ b:=empty()$(Heap INT)
 --R 
 --R
 --R   (5)  []
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 5
 
 --S 6 of 42
@@ -53450,7 +53595,7 @@ h:=heap [17,-4,9,-11,2,7,-7]
 --R 
 --R
 --R   (9)  [17,2,9,- 11,- 4,7,- 7]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 8
 
 --S 9 of 42
@@ -53458,7 +53603,7 @@ h:=heap [17,-4,9,-11,2,7,-7]
 --R 
 --R
 --R   (10)  [17,9,7,2,- 4,- 7,- 11]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 9
 
 --S 10 of 42
@@ -53470,7 +53615,7 @@ heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x))
 --S 11 of 42
 h1 := heapsort heap [17,-4,9,-11,2,7,-7]
 --R 
---R   Compiling function heapsort with type Heap Integer -> List Integer 
+--R   Compiling function heapsort with type Heap(Integer) -> List(Integer)
 --R
 --R   (12)  [17,9,7,2,- 4,- 7,- 11]
 --R                                                           Type: List Integer
@@ -53497,7 +53642,7 @@ a
 --R 
 --R
 --R   (15)  [4,3,2,1]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 14
 
 --S 15 of 42
@@ -53513,7 +53658,7 @@ insert!(9,a)
 --R 
 --R
 --R   (17)  [9,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 16
 
 --S 17 of 42
@@ -53521,7 +53666,7 @@ map(x+->x+10,a)
 --R 
 --R
 --R   (18)  [19,14,12,11,13]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 17
 
 --S 18 of 42
@@ -53529,7 +53674,7 @@ a
 --R 
 --R
 --R   (19)  [9,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 18
 
 --S 19 of 42
@@ -53537,7 +53682,7 @@ map!(x+->x+10,a)
 --R 
 --R
 --R   (20)  [19,14,12,11,13]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 19
 
 --S 20 of 42
@@ -53545,7 +53690,7 @@ a
 --R 
 --R
 --R   (21)  [19,14,12,11,13]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 20
 
 --S 21 of 42
@@ -53561,7 +53706,7 @@ merge(a,c)
 --R 
 --R
 --R   (23)  [19,14,12,11,13,5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 22
 
 --S 23 of 42
@@ -53569,7 +53714,7 @@ a
 --R 
 --R
 --R   (24)  [19,14,12,11,13]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 23
 
 --S 24 of 42
@@ -53577,7 +53722,7 @@ merge!(a,c)
 --R 
 --R
 --R   (25)  [19,14,12,11,13,5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 24
 
 --S 25 of 42
@@ -53585,7 +53730,7 @@ a
 --R 
 --R
 --R   (26)  [19,14,12,11,13,5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 25
 
 --S 26 of 42
@@ -53593,7 +53738,7 @@ c
 --R 
 --R
 --R   (27)  [5,4,2,1,3]
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 26
 
 --S 27 of 42
@@ -53601,7 +53746,7 @@ sample()$Heap(INT)
 --R 
 --R
 --R   (28)  []
---R                                                           Type: Heap Integer
+--R                                                          Type: Heap(Integer)
 --E 27
 
 --S 28 of 42
@@ -53633,7 +53778,7 @@ parts a
 --R 
 --R
 --R   (32)  [19,14,12,11,13,5,4,2,1,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 31
 
 --S 32 of 42
@@ -53665,7 +53810,7 @@ members a
 --R 
 --R
 --R   (36)  [19,14,12,11,13,5,4,2,1,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 35
 
 --S 36 of 42
@@ -53719,16 +53864,16 @@ coerce a
 --S 42 of 42
 )show Heap
 --R 
---R Heap S: OrderedSet  is a domain constructor
+--R Heap(S: OrderedSet)  is a domain constructor
 --R Abbreviation for Heap is HEAP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for HEAP 
 --R
 --R------------------------------- Operations --------------------------------
---R bag : List S -> %                     copy : % -> %
+--R bag : List(S) -> %                    copy : % -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
---R heap : List S -> %                    insert! : (S,%) -> %
+--R heap : List(S) -> %                   insert! : (S,%) -> %
 --R inspect : % -> S                      map : ((S -> S),%) -> %
 --R max : % -> S                          merge : (%,%) -> %
 --R merge! : (%,%) -> %                   sample : () -> %
@@ -53738,19 +53883,19 @@ coerce a
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R ?~=? : (%,%) -> Boolean if S has SETCAT
 --R
@@ -54279,7 +54424,7 @@ r + hex(6/7)
 --R   [0.00BB3EE721A54D88, 0.00BAB6561, 0.00BA2E8, 0.00B9A7862A0FF465879D5F,
 --R       _____________________________
 --R    0.00B92143FA36F5E02E4850FE8DBD78]
---R                                              Type: List HexadecimalExpansion
+--R                                             Type: List(HexadecimalExpansion)
 --E 3
 
 --S 4 of 7
@@ -54300,7 +54445,7 @@ p := hex(1/4)*x**2 + hex(2/3)*x + hex(4/9)
 --R
 --R            2     _      ___
 --R   (5)  0.4x  + 0.Ax + 0.71C
---R                                        Type: Polynomial HexadecimalExpansion
+--R                                       Type: Polynomial(HexadecimalExpansion)
 --E 5
 
 --S 6 of 7
@@ -54309,7 +54454,7 @@ q := D(p, x)
 --R
 --R                 _
 --R   (6)  0.8x + 0.A
---R                                        Type: Polynomial HexadecimalExpansion
+--R                                       Type: Polynomial(HexadecimalExpansion)
 --E 6
 
 --S 7 of 7
@@ -54318,7 +54463,7 @@ g := gcd(p, q)
 --R
 --R              _
 --R   (7)  x + 1.5
---R                                        Type: Polynomial HexadecimalExpansion
+--R                                       Type: Polynomial(HexadecimalExpansion)
 --E 7
 )spool
 )lisp (bye)
@@ -55748,6 +55893,7 @@ HTMLFormat(): public == private where
 
 --S 1 of 1
 )show HomogeneousDirectProduct
+--R 
 --R HomogeneousDirectProduct(dim: NonNegativeInteger,S: OrderedAbelianMonoidSup)  is a domain constructor
 --R Abbreviation for HomogeneousDirectProduct is HDP 
 --R This constructor is not exposed in this frame.
@@ -55755,12 +55901,12 @@ HTMLFormat(): public == private where
 --R
 --R------------------------------- Operations --------------------------------
 --R -? : % -> % if S has RING             1 : () -> % if S has MONOID
---R 0 : () -> % if S has CABMON           coerce : % -> Vector S
---R copy : % -> %                         directProduct : Vector S -> %
+--R 0 : () -> % if S has CABMON           coerce : % -> Vector(S)
+--R copy : % -> %                         directProduct : Vector(S) -> %
 --R ?.? : (%,Integer) -> S                elt : (%,Integer,S) -> S
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List S                 eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R map : ((S -> S),%) -> %               qelt : (%,Integer) -> S
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -55782,10 +55928,10 @@ HTMLFormat(): public == private where
 --R ?>=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R D : (%,(S -> S)) -> % if S has RING
 --R D : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
 --R D : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
 --R D : % -> % if S has DIFRING and S has RING
 --R ?^? : (%,PositiveInteger) -> % if S has MONOID
@@ -55794,26 +55940,26 @@ HTMLFormat(): public == private where
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R characteristic : () -> NonNegativeInteger if S has RING
 --R coerce : S -> % if S has SETCAT
---R coerce : Fraction Integer -> % if S has RETRACT FRAC INT and S has SETCAT
---R coerce : Integer -> % if S has RETRACT INT and S has SETCAT or S has RING
+--R coerce : Fraction(Integer) -> % if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R coerce : Integer -> % if S has RETRACT(INT) and S has SETCAT or S has RING
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R differentiate : (%,(S -> S)) -> % if S has RING
 --R differentiate : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
 --R differentiate : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
 --R differentiate : % -> % if S has DIFRING and S has RING
 --R dimension : () -> CardinalNumber if S has FIELD
 --R dot : (%,%) -> S if S has RING
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R first : % -> S if Integer has ORDSET
@@ -55826,27 +55972,27 @@ HTMLFormat(): public == private where
 --R max : (%,%) -> % if S has OAMONS or S has ORDRING
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R min : (%,%) -> % if S has OAMONS or S has ORDRING
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R negative? : % -> Boolean if S has ORDRING
 --R one? : % -> Boolean if S has MONOID
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R positive? : % -> Boolean if S has ORDRING
 --R qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R random : () -> % if S has FINITE
 --R recip : % -> Union(%,"failed") if S has MONOID
---R reducedSystem : Matrix % -> Matrix S if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S) if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT and S has RING
---R reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(S) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(S),vec: Vector(S)) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if S has LINEXP(INT) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if S has LINEXP(INT) and S has RING
 --R retract : % -> S if S has SETCAT
---R retract : % -> Fraction Integer if S has RETRACT FRAC INT and S has SETCAT
---R retract : % -> Integer if S has RETRACT INT and S has SETCAT
+--R retract : % -> Fraction(Integer) if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retract : % -> Integer if S has RETRACT(INT) and S has SETCAT
 --R retractIfCan : % -> Union(S,"failed") if S has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT FRAC INT and S has SETCAT
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT and S has SETCAT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT) and S has SETCAT
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R sign : % -> Integer if S has ORDRING
 --R size : () -> NonNegativeInteger if S has FINITE
@@ -56026,7 +56172,7 @@ d1 := -4*z + 4*y**2*x + 16*x**2 + 1
 --R
 --R                 2       2
 --R   (2)  - 4z + 4y x + 16x  + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 2
 
 --S 3 of 10
@@ -56035,7 +56181,7 @@ d2 := 2*z*y**2 + 4*x + 1
 --R
 --R            2
 --R   (3)  2z y  + 4x + 1
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 3
 
 --S 4 of 10
@@ -56044,7 +56190,7 @@ d3 := 2*z*x**2 - 2*y**2 - x
 --R
 --R            2     2
 --R   (4)  2z x  - 2y  - x
---R            Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R           Type: DistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 4
 
 --S 5 of 10
@@ -56061,7 +56207,7 @@ groebner [d1,d2,d3]
 --R     7   29  6   17  4   11  3    1  2   15     1
 --R    x  + -- x  - -- x  - -- x  + -- x  + -- x + -]
 --R          4      16       8      32      16     4
---R       Type: List DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--R     Type: List(DistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 5
 
 --S 6 of 10
@@ -56076,7 +56222,7 @@ n1 := d1
 --R
 --R          2       2
 --R   (7)  4y x + 16x  - 4z + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 7
 
 --S 8 of 10
@@ -56085,7 +56231,7 @@ n2 := d2
 --R
 --R            2
 --R   (8)  2z y  + 4x + 1
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 8
 
 --S 9 of 10
@@ -56094,7 +56240,7 @@ n3 := d3
 --R
 --R            2     2
 --R   (9)  2z x  - 2y  - x
---R Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer))
 --E 9
 
 --S 10 of 10
@@ -56111,7 +56257,7 @@ groebner [n1,n2,n3]
 --R     2     2     2   1     3
 --R    z  - 4y  + 2x  - - z - - x]
 --R                     4     2
---RType: List HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction(Integer)))
 --E 10
 )spool
 )lisp (bye)
@@ -56368,7 +56514,8 @@ HomogeneousDistributedMultivariatePolynomial(vl,R): public == private where
 
 --S 1 of 1
 )show HyperellipticFiniteDivisor
---R HyperellipticFiniteDivisor(F: Field,UP: UnivariatePolynomialCategory F,UPUP: UnivariatePolynomialCategory Fraction UP,R: FunctionFieldCategory(F,UP,UPUP))  is a domain constructor
+--R 
+--R HyperellipticFiniteDivisor(F: Field,UP: UnivariatePolynomialCategory(F),UPUP: UnivariatePolynomialCategory(Fraction(UP)),R: FunctionFieldCategory(F,UP,UPUP))  is a domain constructor
 --R Abbreviation for HyperellipticFiniteDivisor is HELLFDIV 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for HELLFDIV 
@@ -56385,10 +56532,10 @@ HomogeneousDistributedMultivariatePolynomial(vl,R): public == private where
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
---R decompose : % -> Record(id: FractionalIdeal(UP,Fraction UP,UPUP,R),principalPart: R)
---R divisor : FractionalIdeal(UP,Fraction UP,UPUP,R) -> %
+--R decompose : % -> Record(id: FractionalIdeal(UP,Fraction(UP),UPUP,R),principalPart: R)
+--R divisor : FractionalIdeal(UP,Fraction(UP),UPUP,R) -> %
 --R generator : % -> Union(R,"failed")
---R ideal : % -> FractionalIdeal(UP,Fraction UP,UPUP,R)
+--R ideal : % -> FractionalIdeal(UP,Fraction(UP),UPUP,R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
 --E 1
@@ -56897,7 +57044,7 @@ a:IBITS(32):=new(32,false)
 --R 
 --R
 --R   (1)  "00000000000000000000000000000000"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 1
 
 --S 2 of 13
@@ -56905,7 +57052,7 @@ b:IBITS(32):=new(32,true)
 --R 
 --R
 --R   (2)  "11111111111111111111111111111111"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 2
 
 --S 3 of 13
@@ -56929,7 +57076,7 @@ a
 --R 
 --R
 --R   (5)  "00000000000000000000000000000100"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 5
 
 --S 6 of 13
@@ -56969,7 +57116,7 @@ Or(a,b)
 --R 
 --R
 --R   (10)  "11111111111111111111111111111111"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 10
 
 --S 11 of 13
@@ -56977,7 +57124,7 @@ And(a,b)
 --R 
 --R
 --R   (11)  "00000000000000000000000000000100"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 11
 
 --S 12 of 13
@@ -56985,7 +57132,7 @@ Not(a)
 --R 
 --R
 --R   (12)  "11111111111111111111111111111011"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 12
 
 --S 13 of 13
@@ -56993,7 +57140,7 @@ c:=copy a
 --R 
 --R
 --R   (13)  "00000000000000000000000000000100"
---R                                                         Type: IndexedBits 32
+--R                                                        Type: IndexedBits(32)
 --E 13
 )spool
 )lisp (bye)
@@ -57883,7 +58030,8 @@ IndexedDirectProductOrderedAbelianMonoidSup(A:OrderedAbelianMonoidSup,S:OrderedS
 
 --S 1 of 1
 )show IndexedExponents
---R IndexedExponents Varset: OrderedSet  is a domain constructor
+--R 
+--R IndexedExponents(Varset: OrderedSet)  is a domain constructor
 --R Abbreviation for IndexedExponents is INDE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for INDE 
@@ -58006,22 +58154,23 @@ IndexedExponents(Varset:OrderedSet): C == T where
 
 --S 1 of 1
 )show IndexedFlexibleArray
+--R 
 --R IndexedFlexibleArray(S: Type,mn: Integer)  is a domain constructor
 --R Abbreviation for IndexedFlexibleArray is IFARRAY 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IFARRAY 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R concat : (S,%) -> %                   concat : (%,S) -> %
 --R concat! : (%,S) -> %                  concat! : (%,%) -> %
---R construct : List S -> %               copy : % -> %
+--R construct : List(S) -> %              copy : % -> %
 --R delete : (%,Integer) -> %             delete! : (%,Integer) -> %
 --R ?.? : (%,Integer) -> S                elt : (%,Integer,S) -> S
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List S                 eq? : (%,%) -> Boolean
---R flexibleArray : List S -> %           index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
+--R flexibleArray : List(S) -> %          index? : (Integer,%) -> Boolean
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R insert : (S,%,Integer) -> %           insert! : (S,%,Integer) -> %
 --R insert! : (%,%,Integer) -> %          map : (((S,S) -> S),%,%) -> %
 --R map : ((S -> S),%) -> %               new : (NonNegativeInteger,S) -> %
@@ -58035,18 +58184,18 @@ IndexedExponents(Varset:OrderedSet): C == T where
 --R ?>=? : (%,%) -> Boolean if S has ORDSET
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if S has SETCAT
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R delete : (%,UniversalSegment Integer) -> %
---R delete! : (%,UniversalSegment Integer) -> %
---R ?.? : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R delete! : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
@@ -58058,7 +58207,7 @@ IndexedExponents(Varset:OrderedSet): C == T where
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R merge : (%,%) -> % if S has ORDSET
 --R merge : (((S,S) -> Boolean),%,%) -> %
 --R merge! : (((S,S) -> Boolean),%,%) -> %
@@ -58066,7 +58215,7 @@ IndexedExponents(Varset:OrderedSet): C == T where
 --R min : (%,%) -> % if S has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R physicalLength : % -> NonNegativeInteger
 --R physicalLength! : (%,Integer) -> %
 --R position : (S,%,Integer) -> Integer if S has SETCAT
@@ -58085,7 +58234,7 @@ IndexedExponents(Varset:OrderedSet): C == T where
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((S -> Boolean),%) -> % if $ has finiteAggregate
 --R select! : ((S -> Boolean),%) -> %
---R setelt : (%,UniversalSegment Integer,S) -> S if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),S) -> S if $ has shallowlyMutable
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if S has ORDSET
@@ -58454,16 +58603,17 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 
 --S 1 of 1
 )show IndexedList
+--R 
 --R IndexedList(S: Type,mn: Integer)  is a domain constructor
 --R Abbreviation for IndexedList is ILIST 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ILIST 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                concat : (%,S) -> %
---R concat : List % -> %                  concat : (S,%) -> %
+--R children : % -> List(%)               concat : (%,S) -> %
+--R concat : List(%) -> %                 concat : (S,%) -> %
 --R concat : (%,%) -> %                   concat! : (%,S) -> %
---R concat! : (%,%) -> %                  construct : List S -> %
+--R concat! : (%,%) -> %                  construct : List(S) -> %
 --R copy : % -> %                         cycleEntry : % -> %
 --R cycleTail : % -> %                    cyclic? : % -> Boolean
 --R delete : (%,Integer) -> %             delete! : (%,Integer) -> %
@@ -58471,16 +58621,16 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 --R ?.? : (%,Integer) -> S                ?.last : (%,last) -> S
 --R ?.rest : (%,rest) -> %                ?.first : (%,first) -> S
 --R ?.value : (%,value) -> S              empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List S
+--R empty? : % -> Boolean                 entries : % -> List(S)
 --R eq? : (%,%) -> Boolean                explicitlyFinite? : % -> Boolean
 --R first : % -> S                        index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (S,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (S,%,Integer) -> %
 --R insert : (%,%,Integer) -> %           insert! : (S,%,Integer) -> %
 --R insert! : (%,%,Integer) -> %          last : % -> S
---R leaf? : % -> Boolean                  leaves : % -> List S
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
 --R list : S -> %                         map : (((S,S) -> S),%,%) -> %
 --R map : ((S -> S),%) -> %               new : (NonNegativeInteger,S) -> %
---R nodes : % -> List %                   possiblyInfinite? : % -> Boolean
+--R nodes : % -> List(%)                  possiblyInfinite? : % -> Boolean
 --R qelt : (%,Integer) -> S               rest : % -> %
 --R reverse : % -> %                      sample : () -> %
 --R second : % -> S                       tail : % -> %
@@ -58494,20 +58644,20 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R child? : (%,%) -> Boolean if S has SETCAT
 --R coerce : % -> OutputForm if S has SETCAT
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---R delete : (%,UniversalSegment Integer) -> %
---R delete! : (%,UniversalSegment Integer) -> %
---R ?.? : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R delete! : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
@@ -58520,7 +58670,7 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R merge : (((S,S) -> Boolean),%,%) -> %
 --R merge : (%,%) -> % if S has ORDSET
 --R merge! : (((S,S) -> Boolean),%,%) -> %
@@ -58529,7 +58679,7 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R position : ((S -> Boolean),%) -> Integer
 --R position : (S,%) -> Integer if S has SETCAT
 --R position : (S,%,Integer) -> Integer if S has SETCAT
@@ -58547,9 +58697,9 @@ IndexedFlexibleArray(S:Type, mn: Integer): Exports == Implementation where
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((S -> Boolean),%) -> % if $ has finiteAggregate
 --R select! : ((S -> Boolean),%) -> %
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
---R setelt : (%,UniversalSegment Integer,S) -> S if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),S) -> S if $ has shallowlyMutable
 --R setelt : (%,last,S) -> S if $ has shallowlyMutable
 --R setelt : (%,rest,%) -> % if $ has shallowlyMutable
 --R setelt : (%,first,S) -> S if $ has shallowlyMutable
@@ -58905,6 +59055,7 @@ IndexedList(S:Type, mn:Integer): Exports == Implementation where
 
 --S 1 of 1
 )show IndexedMatrix
+--R 
 --R IndexedMatrix(R: Ring,mnRow: Integer,mnCol: Integer)  is a domain constructor
 --R Abbreviation for IndexedMatrix is IMATRIX 
 --R This constructor is not exposed in this frame.
@@ -58916,17 +59067,17 @@ IndexedList(S:Type, mn:Integer): Exports == Implementation where
 --R ?+? : (%,%) -> %                      -? : % -> %
 --R ?-? : (%,%) -> %                      antisymmetric? : % -> Boolean
 --R copy : % -> %                         diagonal? : % -> Boolean
---R diagonalMatrix : List % -> %          diagonalMatrix : List R -> %
+--R diagonalMatrix : List(%) -> %         diagonalMatrix : List(R) -> %
 --R elt : (%,Integer,Integer,R) -> R      elt : (%,Integer,Integer) -> R
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                fill! : (%,R) -> %
---R horizConcat : (%,%) -> %              listOfLists : % -> List List R
+--R horizConcat : (%,%) -> %              listOfLists : % -> List(List(R))
 --R map : (((R,R) -> R),%,%,R) -> %       map : (((R,R) -> R),%,%) -> %
 --R map : ((R -> R),%) -> %               map! : ((R -> R),%) -> %
---R matrix : List List R -> %             maxColIndex : % -> Integer
+--R matrix : List(List(R)) -> %           maxColIndex : % -> Integer
 --R maxRowIndex : % -> Integer            minColIndex : % -> Integer
 --R minRowIndex : % -> Integer            ncols : % -> NonNegativeInteger
---R nrows : % -> NonNegativeInteger       parts : % -> List R
+--R nrows : % -> NonNegativeInteger       parts : % -> List(R)
 --R qelt : (%,Integer,Integer) -> R       sample : () -> %
 --R square? : % -> Boolean                squareTop : % -> %
 --R symmetric? : % -> Boolean             transpose : % -> %
@@ -58942,15 +59093,15 @@ IndexedList(S:Type, mn:Integer): Exports == Implementation where
 --R coerce : IndexedVector(R,mnRow) -> %
 --R coerce : % -> OutputForm if R has SETCAT
 --R column : (%,Integer) -> IndexedVector(R,mnRow)
---R columnSpace : % -> List IndexedVector(R,mnRow) if R has EUCDOM
+--R columnSpace : % -> List(IndexedVector(R,mnRow)) if R has EUCDOM
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R determinant : % -> R if R has commutative *
---R elt : (%,List Integer,List Integer) -> %
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R determinant : % -> R if R has commutative(*)
+--R elt : (%,List(Integer),List(Integer)) -> %
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R hash : % -> SingleInteger if R has SETCAT
@@ -58958,11 +59109,11 @@ IndexedList(S:Type, mn:Integer): Exports == Implementation where
 --R latex : % -> String if R has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
---R minordet : % -> R if R has commutative *
+--R members : % -> List(R) if $ has finiteAggregate
+--R minordet : % -> R if R has commutative(*)
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,NonNegativeInteger,R) -> %
---R nullSpace : % -> List IndexedVector(R,mnRow) if R has INTDOM
+--R nullSpace : % -> List(IndexedVector(R,mnRow)) if R has INTDOM
 --R nullity : % -> NonNegativeInteger if R has INTDOM
 --R pfaffian : % -> R if R has COMRING
 --R qsetelt! : (%,Integer,Integer,R) -> R
@@ -58972,7 +59123,7 @@ IndexedList(S:Type, mn:Integer): Exports == Implementation where
 --R scalarMatrix : (NonNegativeInteger,R) -> %
 --R setColumn! : (%,Integer,IndexedVector(R,mnRow)) -> %
 --R setRow! : (%,Integer,IndexedVector(R,mnCol)) -> %
---R setelt : (%,List Integer,List Integer,%) -> %
+--R setelt : (%,List(Integer),List(Integer),%) -> %
 --R setelt : (%,Integer,Integer,R) -> R
 --R setsubMatrix! : (%,Integer,Integer,%) -> %
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -59168,20 +59319,21 @@ IndexedMatrix(R,mnRow,mnCol): Exports == Implementation where
 
 --S 1 of 1
 )show IndexedOneDimensionalArray
+--R 
 --R IndexedOneDimensionalArray(S: Type,mn: Integer)  is a domain constructor
 --R Abbreviation for IndexedOneDimensionalArray is IARRAY1 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IARRAY1 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R concat : (S,%) -> %                   concat : (%,S) -> %
---R construct : List S -> %               copy : % -> %
+--R construct : List(S) -> %              copy : % -> %
 --R delete : (%,Integer) -> %             ?.? : (%,Integer) -> S
 --R elt : (%,Integer,S) -> S              empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List S
+--R empty? : % -> Boolean                 entries : % -> List(S)
 --R eq? : (%,%) -> Boolean                index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R insert : (S,%,Integer) -> %           map : (((S,S) -> S),%,%) -> %
 --R map : ((S -> S),%) -> %               new : (NonNegativeInteger,S) -> %
 --R qelt : (%,Integer) -> S               reverse : % -> %
@@ -59194,17 +59346,17 @@ IndexedMatrix(R,mnRow,mnCol): Exports == Implementation where
 --R ?>=? : (%,%) -> Boolean if S has ORDSET
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if S has SETCAT
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R delete : (%,UniversalSegment Integer) -> %
---R ?.? : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
@@ -59216,13 +59368,13 @@ IndexedMatrix(R,mnRow,mnCol): Exports == Implementation where
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R merge : (%,%) -> % if S has ORDSET
 --R merge : (((S,S) -> Boolean),%,%) -> %
 --R min : (%,%) -> % if S has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R position : (S,%,Integer) -> Integer if S has SETCAT
 --R position : (S,%) -> Integer if S has SETCAT
 --R position : ((S -> Boolean),%) -> Integer
@@ -59235,7 +59387,7 @@ IndexedMatrix(R,mnRow,mnCol): Exports == Implementation where
 --R removeDuplicates : % -> % if $ has finiteAggregate and S has SETCAT
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((S -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,S) -> S if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),S) -> S if $ has shallowlyMutable
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if S has ORDSET
@@ -59461,26 +59613,27 @@ IndexedOneDimensionalArray(S:Type, mn:Integer):
 
 --S 1 of 1
 )show IndexedString
---R IndexedString mn: Integer  is a domain constructor
+--R 
+--R IndexedString(mn: Integer)  is a domain constructor
 --R Abbreviation for IndexedString is ISTRING 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ISTRING 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : Character -> %               concat : List % -> %
+--R coerce : Character -> %               concat : List(%) -> %
 --R concat : (%,%) -> %                   concat : (Character,%) -> %
---R concat : (%,Character) -> %           construct : List Character -> %
+--R concat : (%,Character) -> %           construct : List(Character) -> %
 --R copy : % -> %                         delete : (%,Integer) -> %
 --R ?.? : (%,%) -> %                      ?.? : (%,Integer) -> Character
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Character         eq? : (%,%) -> Boolean
+--R entries : % -> List(Character)        eq? : (%,%) -> Boolean
 --R hash : % -> Integer                   index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R leftTrim : (%,Character) -> %         lowerCase : % -> %
 --R lowerCase! : % -> %                   prefix? : (%,%) -> Boolean
 --R qelt : (%,Integer) -> Character       reverse : % -> %
 --R rightTrim : (%,Character) -> %        sample : () -> %
---R split : (%,Character) -> List %       suffix? : (%,%) -> Boolean
+--R split : (%,Character) -> List(%)      suffix? : (%,%) -> Boolean
 --R trim : (%,CharacterClass) -> %        trim : (%,Character) -> %
 --R upperCase : % -> %                    upperCase! : % -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -59491,18 +59644,18 @@ IndexedOneDimensionalArray(S:Type, mn:Integer):
 --R ?>=? : (%,%) -> Boolean if Character has ORDSET
 --R any? : ((Character -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if Character has SETCAT
---R convert : % -> InputForm if Character has KONVERT INFORM
+--R convert : % -> InputForm if Character has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (Character,%) -> NonNegativeInteger if $ has finiteAggregate and Character has SETCAT
 --R count : ((Character -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R delete : (%,UniversalSegment Integer) -> %
---R ?.? : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R elt : (%,Integer,Character) -> Character
 --R entry? : (Character,%) -> Boolean if $ has finiteAggregate and Character has SETCAT
---R eval : (%,List Character,List Character) -> % if Character has EVALAB CHAR and Character has SETCAT
---R eval : (%,Character,Character) -> % if Character has EVALAB CHAR and Character has SETCAT
---R eval : (%,Equation Character) -> % if Character has EVALAB CHAR and Character has SETCAT
---R eval : (%,List Equation Character) -> % if Character has EVALAB CHAR and Character has SETCAT
+--R eval : (%,List(Character),List(Character)) -> % if Character has EVALAB(CHAR) and Character has SETCAT
+--R eval : (%,Character,Character) -> % if Character has EVALAB(CHAR) and Character has SETCAT
+--R eval : (%,Equation(Character)) -> % if Character has EVALAB(CHAR) and Character has SETCAT
+--R eval : (%,List(Equation(Character))) -> % if Character has EVALAB(CHAR) and Character has SETCAT
 --R every? : ((Character -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,Character) -> % if $ has shallowlyMutable
 --R find : ((Character -> Boolean),%) -> Union(Character,"failed")
@@ -59520,14 +59673,14 @@ IndexedOneDimensionalArray(S:Type, mn:Integer):
 --R max : (%,%) -> % if Character has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Character,%) -> Boolean if $ has finiteAggregate and Character has SETCAT
---R members : % -> List Character if $ has finiteAggregate
+--R members : % -> List(Character) if $ has finiteAggregate
 --R merge : (%,%) -> % if Character has ORDSET
 --R merge : (((Character,Character) -> Boolean),%,%) -> %
 --R min : (%,%) -> % if Character has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,Character) -> %
---R parts : % -> List Character if $ has finiteAggregate
+--R parts : % -> List(Character) if $ has finiteAggregate
 --R position : (CharacterClass,%,Integer) -> Integer
 --R position : (%,%,Integer) -> Integer
 --R position : (Character,%,Integer) -> Integer if Character has SETCAT
@@ -59540,11 +59693,11 @@ IndexedOneDimensionalArray(S:Type, mn:Integer):
 --R remove : ((Character -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (Character,%) -> % if $ has finiteAggregate and Character has SETCAT
 --R removeDuplicates : % -> % if $ has finiteAggregate and Character has SETCAT
---R replace : (%,UniversalSegment Integer,%) -> %
+--R replace : (%,UniversalSegment(Integer),%) -> %
 --R reverse! : % -> % if $ has shallowlyMutable
 --R rightTrim : (%,CharacterClass) -> %
 --R select : ((Character -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,Character) -> Character if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),Character) -> Character if $ has shallowlyMutable
 --R setelt : (%,Integer,Character) -> Character if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if Character has ORDSET
@@ -59553,7 +59706,7 @@ IndexedOneDimensionalArray(S:Type, mn:Integer):
 --R sort! : (((Character,Character) -> Boolean),%) -> % if $ has shallowlyMutable
 --R sorted? : % -> Boolean if Character has ORDSET
 --R sorted? : (((Character,Character) -> Boolean),%) -> Boolean
---R split : (%,CharacterClass) -> List %
+--R split : (%,CharacterClass) -> List(%)
 --R substring? : (%,%,Integer) -> Boolean
 --R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
 --R ?~=? : (%,%) -> Boolean if Character has SETCAT
@@ -59887,6 +60040,7 @@ first column in an array and vice versa.
 
 --S 1 of 1
 )show IndexedTwoDimensionalArray
+--R 
 --R IndexedTwoDimensionalArray(R: Type,mnRow: Integer,mnCol: Integer)  is a domain constructor
 --R Abbreviation for IndexedTwoDimensionalArray is IARRAY2 
 --R This constructor is not exposed in this frame.
@@ -59901,7 +60055,7 @@ first column in an array and vice versa.
 --R map! : ((R -> R),%) -> %              maxColIndex : % -> Integer
 --R maxRowIndex : % -> Integer            minColIndex : % -> Integer
 --R minRowIndex : % -> Integer            ncols : % -> NonNegativeInteger
---R nrows : % -> NonNegativeInteger       parts : % -> List R
+--R nrows : % -> NonNegativeInteger       parts : % -> List(R)
 --R qelt : (%,Integer,Integer) -> R       sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if R has SETCAT
@@ -59910,16 +60064,16 @@ first column in an array and vice versa.
 --R column : (%,Integer) -> IndexedOneDimensionalArray(R,mnRow)
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if R has SETCAT
 --R latex : % -> String if R has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,NonNegativeInteger,R) -> %
 --R qsetelt! : (%,Integer,Integer,R) -> R
@@ -60034,20 +60188,21 @@ IndexedTwoDimensionalArray(R,mnRow,mnCol):Exports == Implementation where
 
 --S 1 of 1
 )show IndexedVector
+--R 
 --R IndexedVector(R: Type,mn: Integer)  is a domain constructor
 --R Abbreviation for IndexedVector is IVECTOR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IVECTOR 
 --R
 --R------------------------------- Operations --------------------------------
---R -? : % -> % if R has ABELGRP          concat : List % -> %
+--R -? : % -> % if R has ABELGRP          concat : List(%) -> %
 --R concat : (%,%) -> %                   concat : (R,%) -> %
---R concat : (%,R) -> %                   construct : List R -> %
+--R concat : (%,R) -> %                   construct : List(R) -> %
 --R copy : % -> %                         delete : (%,Integer) -> %
 --R ?.? : (%,Integer) -> R                elt : (%,Integer,R) -> R
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List R                 eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(R)                eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R insert : (%,%,Integer) -> %           insert : (R,%,Integer) -> %
 --R map : (((R,R) -> R),%,%) -> %         map : ((R -> R),%) -> %
 --R new : (NonNegativeInteger,R) -> %     qelt : (%,Integer) -> R
@@ -60065,19 +60220,19 @@ IndexedTwoDimensionalArray(R,mnRow,mnCol):Exports == Implementation where
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if R has SETCAT
---R convert : % -> InputForm if R has KONVERT INFORM
+--R convert : % -> InputForm if R has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cross : (%,%) -> % if R has RING
---R delete : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
 --R dot : (%,%) -> R if R has RING
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R entry? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,R) -> % if $ has shallowlyMutable
 --R find : ((R -> Boolean),%) -> Union(R,"failed")
@@ -60091,14 +60246,14 @@ IndexedTwoDimensionalArray(R,mnRow,mnCol):Exports == Implementation where
 --R max : (%,%) -> % if R has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R merge : (%,%) -> % if R has ORDSET
 --R merge : (((R,R) -> Boolean),%,%) -> %
 --R min : (%,%) -> % if R has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R outerProduct : (%,%) -> Matrix R if R has RING
---R parts : % -> List R if $ has finiteAggregate
+--R outerProduct : (%,%) -> Matrix(R) if R has RING
+--R parts : % -> List(R) if $ has finiteAggregate
 --R position : (R,%,Integer) -> Integer if R has SETCAT
 --R position : (R,%) -> Integer if R has SETCAT
 --R position : ((R -> Boolean),%) -> Integer
@@ -60111,7 +60266,7 @@ IndexedTwoDimensionalArray(R,mnRow,mnCol):Exports == Implementation where
 --R removeDuplicates : % -> % if $ has finiteAggregate and R has SETCAT
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((R -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,R) -> R if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),R) -> R if $ has shallowlyMutable
 --R setelt : (%,Integer,R) -> R if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if R has ORDSET
@@ -60255,13 +60410,14 @@ IndexedVector(R:Type, mn:Integer):
 
 --S 1 of 1
 )show InfiniteTuple
---R InfiniteTuple S: Type  is a domain constructor
+--R 
+--R InfiniteTuple(S: Type)  is a domain constructor
 --R Abbreviation for InfiniteTuple is ITUPLE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ITUPLE 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : % -> OutputForm              construct : % -> Stream S
+--R coerce : % -> OutputForm              construct : % -> Stream(S)
 --R generate : ((S -> S),S) -> %          map : ((S -> S),%) -> %
 --R select : ((S -> Boolean),%) -> %     
 --R filterUntil : ((S -> Boolean),%) -> %
@@ -60763,6 +60919,7 @@ InfinitlyClosePointOverPseudoAlgebraicClosureOfFiniteField(K,symb,BLMET):_
 
 --S 1 of 1
 )show InnerAlgebraicNumber
+--R 
 --R InnerAlgebraicNumber  is a domain constructor
 --R Abbreviation for InnerAlgebraicNumber is IAN 
 --R This constructor is not exposed in this frame.
@@ -60770,110 +60927,113 @@ InfinitlyClosePointOverPseudoAlgebraicClosureOfFiniteField(K,symb,BLMET):_
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (PositiveInteger,%) -> %        ?*? : (Integer,%) -> %
---R ?*? : (%,%) -> %                      ?*? : (%,Fraction Integer) -> %
---R ?*? : (Fraction Integer,%) -> %       ?**? : (%,PositiveInteger) -> %
---R ?**? : (%,Integer) -> %               ?**? : (%,Fraction Integer) -> %
---R ?+? : (%,%) -> %                      -? : % -> %
---R ?-? : (%,%) -> %                      ?/? : (%,%) -> %
---R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
---R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
---R ?>=? : (%,%) -> Boolean               D : % -> %
---R D : (%,NonNegativeInteger) -> %       1 : () -> %
---R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R ?^? : (%,Integer) -> %                associates? : (%,%) -> Boolean
---R belong? : BasicOperator -> Boolean    box : List % -> %
---R box : % -> %                          coerce : Integer -> %
---R coerce : % -> %                       coerce : Fraction Integer -> %
---R coerce : Kernel % -> %                coerce : % -> OutputForm
---R convert : % -> Complex Float          convert : % -> DoubleFloat
---R convert : % -> Float                  differentiate : % -> %
---R distribute : (%,%) -> %               distribute : % -> %
---R elt : (BasicOperator,%,%) -> %        elt : (BasicOperator,%) -> %
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
---R eval : (%,Kernel %,%) -> %            factor : % -> Factored %
---R freeOf? : (%,Symbol) -> Boolean       freeOf? : (%,%) -> Boolean
---R gcd : (%,%) -> %                      gcd : List % -> %
---R hash : % -> SingleInteger             height : % -> NonNegativeInteger
---R inv : % -> %                          is? : (%,Symbol) -> Boolean
---R kernel : (BasicOperator,%) -> %       kernels : % -> List Kernel %
---R latex : % -> String                   lcm : (%,%) -> %
---R lcm : List % -> %                     map : ((% -> %),Kernel %) -> %
+--R ?*? : (%,%) -> %                      ?*? : (%,Fraction(Integer)) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?**? : (%,PositiveInteger) -> %
+--R ?**? : (%,Integer) -> %               ?+? : (%,%) -> %
+--R -? : % -> %                           ?-? : (%,%) -> %
+--R ?/? : (%,%) -> %                      ?<? : (%,%) -> Boolean
+--R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
+--R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
+--R D : % -> %                            D : (%,NonNegativeInteger) -> %
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,PositiveInteger) -> %        ?^? : (%,Integer) -> %
+--R associates? : (%,%) -> Boolean        belong? : BasicOperator -> Boolean
+--R box : List(%) -> %                    box : % -> %
+--R coerce : Integer -> %                 coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : Kernel(%) -> %
+--R coerce : % -> OutputForm              convert : % -> Complex(Float)
+--R convert : % -> DoubleFloat            convert : % -> Float
+--R differentiate : % -> %                distribute : (%,%) -> %
+--R distribute : % -> %                   elt : (BasicOperator,%,%) -> %
+--R elt : (BasicOperator,%) -> %          eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,Kernel(%),%) -> %
+--R factor : % -> Factored(%)             freeOf? : (%,Symbol) -> Boolean
+--R freeOf? : (%,%) -> Boolean            gcd : (%,%) -> %
+--R gcd : List(%) -> %                    hash : % -> SingleInteger
+--R height : % -> NonNegativeInteger      inv : % -> %
+--R is? : (%,Symbol) -> Boolean           kernel : (BasicOperator,%) -> %
+--R kernels : % -> List(Kernel(%))        latex : % -> String
+--R lcm : (%,%) -> %                      lcm : List(%) -> %
 --R max : (%,%) -> %                      min : (%,%) -> %
---R norm : (%,List Kernel %) -> %         norm : (%,Kernel %) -> %
+--R norm : (%,List(Kernel(%))) -> %       norm : (%,Kernel(%)) -> %
 --R nthRoot : (%,Integer) -> %            one? : % -> Boolean
---R paren : List % -> %                   paren : % -> %
+--R paren : List(%) -> %                  paren : % -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        reduce : % -> %
---R ?rem? : (%,%) -> %                    retract : % -> Fraction Integer
---R retract : % -> Integer                retract : % -> Kernel %
---R rootOf : Polynomial % -> %            rootsOf : Polynomial % -> List %
---R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R sqrt : % -> %                         squareFree : % -> Factored %
---R squareFreePart : % -> %               subst : (%,Equation %) -> %
---R tower : % -> List Kernel %            trueEqual : (%,%) -> Boolean
---R unit? : % -> Boolean                  unitCanonical : % -> %
---R zero? : % -> Boolean                  zeroOf : Polynomial % -> %
---R zerosOf : Polynomial % -> List %      ?~=? : (%,%) -> Boolean
+--R ?rem? : (%,%) -> %                    retract : % -> Fraction(Integer)
+--R retract : % -> Integer                retract : % -> Kernel(%)
+--R rootOf : Polynomial(%) -> %           sample : () -> %
+--R sizeLess? : (%,%) -> Boolean          sqrt : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
+--R subst : (%,Equation(%)) -> %          tower : % -> List(Kernel(%))
+--R trueEqual : (%,%) -> Boolean          unit? : % -> Boolean
+--R unitCanonical : % -> %                zero? : % -> Boolean
+--R zeroOf : Polynomial(%) -> %           ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coerce : SparseMultivariatePolynomial(Integer,Kernel %) -> %
+--R coerce : SparseMultivariatePolynomial(Integer,Kernel(%)) -> %
 --R definingPolynomial : % -> % if $ has RING
---R denom : % -> SparseMultivariatePolynomial(Integer,Kernel %)
+--R denom : % -> SparseMultivariatePolynomial(Integer,Kernel(%))
 --R differentiate : (%,NonNegativeInteger) -> %
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
---R elt : (BasicOperator,List %) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R elt : (BasicOperator,%,%,%,%) -> %
 --R elt : (BasicOperator,%,%,%) -> %
 --R euclideanSize : % -> NonNegativeInteger
 --R eval : (%,BasicOperator,(% -> %)) -> %
---R eval : (%,BasicOperator,(List % -> %)) -> %
---R eval : (%,List BasicOperator,List (List % -> %)) -> %
---R eval : (%,List BasicOperator,List (% -> %)) -> %
+--R eval : (%,BasicOperator,(List(%) -> %)) -> %
+--R eval : (%,List(BasicOperator),List((List(%) -> %))) -> %
+--R eval : (%,List(BasicOperator),List((% -> %))) -> %
 --R eval : (%,Symbol,(% -> %)) -> %
---R eval : (%,Symbol,(List % -> %)) -> %
---R eval : (%,List Symbol,List (List % -> %)) -> %
---R eval : (%,List Symbol,List (% -> %)) -> %
---R eval : (%,List Kernel %,List %) -> %
---R even? : % -> Boolean if $ has RETRACT INT
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,Symbol,(List(%) -> %)) -> %
+--R eval : (%,List(Symbol),List((List(%) -> %))) -> %
+--R eval : (%,List(Symbol),List((% -> %))) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(Kernel(%)),List(%)) -> %
+--R even? : % -> Boolean if $ has RETRACT(INT)
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R is? : (%,BasicOperator) -> Boolean
---R kernel : (BasicOperator,List %) -> %
---R mainKernel : % -> Union(Kernel %,"failed")
---R minPoly : Kernel % -> SparseUnivariatePolynomial % if $ has RING
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R norm : (SparseUnivariatePolynomial %,List Kernel %) -> SparseUnivariatePolynomial %
---R norm : (SparseUnivariatePolynomial %,Kernel %) -> SparseUnivariatePolynomial %
---R numer : % -> SparseMultivariatePolynomial(Integer,Kernel %)
---R odd? : % -> Boolean if $ has RETRACT INT
+--R kernel : (BasicOperator,List(%)) -> %
+--R mainKernel : % -> Union(Kernel(%),"failed")
+--R map : ((% -> %),Kernel(%)) -> %
+--R minPoly : Kernel(%) -> SparseUnivariatePolynomial(%) if $ has RING
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R norm : (SparseUnivariatePolynomial(%),List(Kernel(%))) -> SparseUnivariatePolynomial(%)
+--R norm : (SparseUnivariatePolynomial(%),Kernel(%)) -> SparseUnivariatePolynomial(%)
+--R numer : % -> SparseMultivariatePolynomial(Integer,Kernel(%))
+--R odd? : % -> Boolean if $ has RETRACT(INT)
 --R operator : BasicOperator -> BasicOperator
---R operators : % -> List BasicOperator
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reducedSystem : Matrix % -> Matrix Fraction Integer
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Fraction Integer,vec: Vector Fraction Integer)
---R reducedSystem : Matrix % -> Matrix Integer
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer)
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R operators : % -> List(BasicOperator)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reducedSystem : Matrix(%) -> Matrix(Fraction(Integer))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Fraction(Integer)),vec: Vector(Fraction(Integer)))
+--R reducedSystem : Matrix(%) -> Matrix(Integer)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer))
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
---R retractIfCan : % -> Union(Kernel %,"failed")
---R rootOf : SparseUnivariatePolynomial % -> %
---R rootOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R rootsOf : SparseUnivariatePolynomial % -> List %
---R rootsOf : (SparseUnivariatePolynomial %,Symbol) -> List %
---R subst : (%,List Kernel %,List %) -> %
---R subst : (%,List Equation %) -> %
+--R retractIfCan : % -> Union(Kernel(%),"failed")
+--R rootOf : SparseUnivariatePolynomial(%) -> %
+--R rootOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R rootsOf : Polynomial(%) -> List(%)
+--R rootsOf : SparseUnivariatePolynomial(%) -> List(%)
+--R rootsOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
+--R subst : (%,List(Kernel(%)),List(%)) -> %
+--R subst : (%,List(Equation(%))) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R zeroOf : SparseUnivariatePolynomial % -> %
---R zeroOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R zerosOf : SparseUnivariatePolynomial % -> List %
---R zerosOf : (SparseUnivariatePolynomial %,Symbol) -> List %
+--R zeroOf : SparseUnivariatePolynomial(%) -> %
+--R zeroOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R zerosOf : Polynomial(%) -> List(%)
+--R zerosOf : SparseUnivariatePolynomial(%) -> List(%)
+--R zerosOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
 --R
 --E 1
 
@@ -61152,102 +61312,104 @@ InnerAlgebraicNumber(): Exports == Implementation where
 
 --S 1 of 1
 )show InnerFiniteField
+--R 
 --R InnerFiniteField(p: PositiveInteger,n: PositiveInteger)  is a domain constructor
 --R Abbreviation for InnerFiniteField is IFF 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IFF 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (InnerPrimeField p,%) -> %      ?*? : (%,InnerPrimeField p) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
---R ?/? : (%,InnerPrimeField p) -> %      ?/? : (%,%) -> %
---R ?=? : (%,%) -> Boolean                1 : () -> %
---R 0 : () -> %                           ?^? : (%,Integer) -> %
---R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
---R associates? : (%,%) -> Boolean        basis : () -> Vector %
---R coerce : InnerPrimeField p -> %       coerce : Fraction Integer -> %
---R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
---R hash : % -> SingleInteger             inGroundField? : % -> Boolean
---R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R norm : % -> InnerPrimeField p         one? : % -> Boolean
---R prime? : % -> Boolean                 ?quo? : (%,%) -> %
---R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> InnerPrimeField p      sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
---R squareFreePart : % -> %               trace : % -> InnerPrimeField p
---R transcendent? : % -> Boolean          unit? : % -> Boolean
---R unitCanonical : % -> %                zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
+--R ?/? : (%,%) -> %                      ?=? : (%,%) -> Boolean
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
+--R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
+--R basis : () -> Vector(%)               coerce : InnerPrimeField(p) -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
+--R coerce : Integer -> %                 coerce : % -> OutputForm
+--R degree : % -> PositiveInteger         dimension : () -> CardinalNumber
+--R factor : % -> Factored(%)             gcd : List(%) -> %
+--R gcd : (%,%) -> %                      hash : % -> SingleInteger
+--R inGroundField? : % -> Boolean         inv : % -> %
+--R latex : % -> String                   lcm : List(%) -> %
+--R lcm : (%,%) -> %                      norm : % -> InnerPrimeField(p)
+--R one? : % -> Boolean                   prime? : % -> Boolean
+--R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
+--R ?rem? : (%,%) -> %                    retract : % -> InnerPrimeField(p)
+--R sample : () -> %                      sizeLess? : (%,%) -> Boolean
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
+--R trace : % -> InnerPrimeField(p)       transcendent? : % -> Boolean
+--R unit? : % -> Boolean                  unitCanonical : % -> %
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R ?*? : (InnerPrimeField(p),%) -> %
+--R ?*? : (%,InnerPrimeField(p)) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R D : (%,NonNegativeInteger) -> % if InnerPrimeField p has FINITE
---R D : % -> % if InnerPrimeField p has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if InnerPrimeField p has FINITE
---R Frobenius : % -> % if InnerPrimeField p has FINITE
+--R ?/? : (%,InnerPrimeField(p)) -> %
+--R D : (%,NonNegativeInteger) -> % if InnerPrimeField(p) has FINITE
+--R D : % -> % if InnerPrimeField(p) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if InnerPrimeField(p) has FINITE
+--R Frobenius : % -> % if InnerPrimeField(p) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if InnerPrimeField p has CHARNZ or InnerPrimeField p has FINITE
---R charthRoot : % -> % if InnerPrimeField p has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if InnerPrimeField p has FINITE
---R coordinates : Vector % -> Matrix InnerPrimeField p
---R coordinates : % -> Vector InnerPrimeField p
---R createNormalElement : () -> % if InnerPrimeField p has FINITE
---R createPrimitiveElement : () -> % if InnerPrimeField p has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial InnerPrimeField p
---R degree : % -> OnePointCompletion PositiveInteger
---R differentiate : (%,NonNegativeInteger) -> % if InnerPrimeField p has FINITE
---R differentiate : % -> % if InnerPrimeField p has FINITE
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if InnerPrimeField p has CHARNZ or InnerPrimeField p has FINITE
---R discreteLog : % -> NonNegativeInteger if InnerPrimeField p has FINITE
+--R charthRoot : % -> Union(%,"failed") if InnerPrimeField(p) has CHARNZ or InnerPrimeField(p) has FINITE
+--R charthRoot : % -> % if InnerPrimeField(p) has FINITE
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if InnerPrimeField(p) has FINITE
+--R coordinates : Vector(%) -> Matrix(InnerPrimeField(p))
+--R coordinates : % -> Vector(InnerPrimeField(p))
+--R createNormalElement : () -> % if InnerPrimeField(p) has FINITE
+--R createPrimitiveElement : () -> % if InnerPrimeField(p) has FINITE
+--R definingPolynomial : () -> SparseUnivariatePolynomial(InnerPrimeField(p))
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R differentiate : (%,NonNegativeInteger) -> % if InnerPrimeField(p) has FINITE
+--R differentiate : % -> % if InnerPrimeField(p) has FINITE
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if InnerPrimeField(p) has CHARNZ or InnerPrimeField(p) has FINITE
+--R discreteLog : % -> NonNegativeInteger if InnerPrimeField(p) has FINITE
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extensionDegree : () -> PositiveInteger
---R extensionDegree : () -> OnePointCompletion PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if InnerPrimeField p has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R generator : () -> % if InnerPrimeField p has FINITE
---R index : PositiveInteger -> % if InnerPrimeField p has FINITE
---R init : () -> % if InnerPrimeField p has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial InnerPrimeField p) -> % if InnerPrimeField p has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial InnerPrimeField p,"failed") if InnerPrimeField p has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial InnerPrimeField p if InnerPrimeField p has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial InnerPrimeField p if InnerPrimeField p has FINITE
---R lookup : % -> PositiveInteger if InnerPrimeField p has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if InnerPrimeField p has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial InnerPrimeField p
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R nextItem : % -> Union(%,"failed") if InnerPrimeField p has FINITE
---R norm : (%,PositiveInteger) -> % if InnerPrimeField p has FINITE
---R normal? : % -> Boolean if InnerPrimeField p has FINITE
---R normalElement : () -> % if InnerPrimeField p has FINITE
---R order : % -> OnePointCompletion PositiveInteger if InnerPrimeField p has CHARNZ or InnerPrimeField p has FINITE
---R order : % -> PositiveInteger if InnerPrimeField p has FINITE
---R primeFrobenius : % -> % if InnerPrimeField p has CHARNZ or InnerPrimeField p has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if InnerPrimeField p has CHARNZ or InnerPrimeField p has FINITE
---R primitive? : % -> Boolean if InnerPrimeField p has FINITE
---R primitiveElement : () -> % if InnerPrimeField p has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if InnerPrimeField p has FINITE
---R representationType : () -> Union("prime",polynomial,normal,cyclic) if InnerPrimeField p has FINITE
---R represents : Vector InnerPrimeField p -> %
---R retractIfCan : % -> Union(InnerPrimeField p,"failed")
---R size : () -> NonNegativeInteger if InnerPrimeField p has FINITE
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if InnerPrimeField(p) has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R generator : () -> % if InnerPrimeField(p) has FINITE
+--R index : PositiveInteger -> % if InnerPrimeField(p) has FINITE
+--R init : () -> % if InnerPrimeField(p) has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(InnerPrimeField(p))) -> % if InnerPrimeField(p) has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(InnerPrimeField(p)),"failed") if InnerPrimeField(p) has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(InnerPrimeField(p)) if InnerPrimeField(p) has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(InnerPrimeField(p)) if InnerPrimeField(p) has FINITE
+--R lookup : % -> PositiveInteger if InnerPrimeField(p) has FINITE
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if InnerPrimeField(p) has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(InnerPrimeField(p))
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R nextItem : % -> Union(%,"failed") if InnerPrimeField(p) has FINITE
+--R norm : (%,PositiveInteger) -> % if InnerPrimeField(p) has FINITE
+--R normal? : % -> Boolean if InnerPrimeField(p) has FINITE
+--R normalElement : () -> % if InnerPrimeField(p) has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if InnerPrimeField(p) has CHARNZ or InnerPrimeField(p) has FINITE
+--R order : % -> PositiveInteger if InnerPrimeField(p) has FINITE
+--R primeFrobenius : % -> % if InnerPrimeField(p) has CHARNZ or InnerPrimeField(p) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if InnerPrimeField(p) has CHARNZ or InnerPrimeField(p) has FINITE
+--R primitive? : % -> Boolean if InnerPrimeField(p) has FINITE
+--R primitiveElement : () -> % if InnerPrimeField(p) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if InnerPrimeField(p) has FINITE
+--R representationType : () -> Union("prime",polynomial,normal,cyclic) if InnerPrimeField(p) has FINITE
+--R represents : Vector(InnerPrimeField(p)) -> %
+--R retractIfCan : % -> Union(InnerPrimeField(p),"failed")
+--R size : () -> NonNegativeInteger if InnerPrimeField(p) has FINITE
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if InnerPrimeField p has FINITE
---R trace : (%,PositiveInteger) -> % if InnerPrimeField p has FINITE
+--R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if InnerPrimeField(p) has FINITE
+--R trace : (%,PositiveInteger) -> % if InnerPrimeField(p) has FINITE
 --R transcendenceDegree : () -> NonNegativeInteger
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -61407,6 +61569,7 @@ InnerFiniteField(p:PositiveInteger, n:PositiveInteger) ==
 
 --S 1 of 1
 )show InnerFreeAbelianMonoid
+--R 
 --R InnerFreeAbelianMonoid(S: SetCategory,E: CancellationAbelianMonoid,un: E)  is a domain constructor
 --R Abbreviation for InnerFreeAbelianMonoid is IFAMON 
 --R This constructor is not exposed in this frame.
@@ -61427,7 +61590,7 @@ InnerFiniteField(p:PositiveInteger, n:PositiveInteger) ==
 --R highCommonTerms : (%,%) -> % if E has OAMON
 --R retractIfCan : % -> Union(S,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> List Record(gen: S,exp: E)
+--R terms : % -> List(Record(gen: S,exp: E))
 --R
 --E 1
 
@@ -61537,7 +61700,8 @@ This is an internal type which provides an implementation of
 
 --S 1 of 1
 )show InnerIndexedTwoDimensionalArray
---R InnerIndexedTwoDimensionalArray(R: Type,mnRow: Integer,mnCol: Integer,Row: FiniteLinearAggregate R,Col: FiniteLinearAggregate R)  is a domain constructor
+--R 
+--R InnerIndexedTwoDimensionalArray(R: Type,mnRow: Integer,mnCol: Integer,Row: FiniteLinearAggregate(R),Col: FiniteLinearAggregate(R))  is a domain constructor
 --R Abbreviation for InnerIndexedTwoDimensionalArray is IIARRAY2 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IIARRAY2 
@@ -61552,7 +61716,7 @@ This is an internal type which provides an implementation of
 --R maxColIndex : % -> Integer            maxRowIndex : % -> Integer
 --R minColIndex : % -> Integer            minRowIndex : % -> Integer
 --R ncols : % -> NonNegativeInteger       nrows : % -> NonNegativeInteger
---R parts : % -> List R                   qelt : (%,Integer,Integer) -> R
+--R parts : % -> List(R)                  qelt : (%,Integer,Integer) -> R
 --R row : (%,Integer) -> Row              sample : () -> %
 --R setRow! : (%,Integer,Row) -> %       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -61561,16 +61725,16 @@ This is an internal type which provides an implementation of
 --R coerce : % -> OutputForm if R has SETCAT
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if R has SETCAT
 --R latex : % -> String if R has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,NonNegativeInteger,R) -> %
 --R qsetelt! : (%,Integer,Integer,R) -> R
@@ -61750,6 +61914,7 @@ InnerIndexedTwoDimensionalArray(R,mnRow,mnCol,Row,Col):_
 
 --S 1 of 1
 )show InnerPAdicInteger
+--R 
 --R InnerPAdicInteger(p: Integer,unBalanced?: Boolean)  is a domain constructor
 --R Abbreviation for InnerPAdicInteger is IPADIC 
 --R This constructor is not exposed in this frame.
@@ -61764,10 +61929,10 @@ InnerIndexedTwoDimensionalArray(R,mnRow,mnCol,Row,Col):_
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R digits : % -> Stream Integer          extend : (%,Integer) -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R digits : % -> Stream(Integer)         extend : (%,Integer) -> %
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R moduloP : % -> Integer                modulus : () -> Integer
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
 --R ?quo? : (%,%) -> %                    quotientByP : % -> %
@@ -61783,14 +61948,14 @@ InnerIndexedTwoDimensionalArray(R,mnRow,mnCol,Row,Col):_
 --R characteristic : () -> NonNegativeInteger
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R root : (SparseUnivariatePolynomial Integer,Integer) -> %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R root : (SparseUnivariatePolynomial(Integer),Integer) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -62140,13 +62305,14 @@ InnerPAdicInteger(p,unBalanced?): Exports == Implementation where
 
 --S 1 of 1
 )show InnerPrimeField
---R InnerPrimeField p: PositiveInteger  is a domain constructor
+--R 
+--R InnerPrimeField(p: PositiveInteger)  is a domain constructor
 --R Abbreviation for InnerPrimeField is IPF 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IPF 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -62156,27 +62322,27 @@ InnerPAdicInteger(p,unBalanced?): Exports == Implementation where
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                charthRoot : % -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               charthRoot : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R convert : % -> Integer                coordinates : % -> Vector %
+--R convert : % -> Integer                coordinates : % -> Vector(%)
 --R createPrimitiveElement : () -> %      degree : % -> PositiveInteger
 --R differentiate : % -> %                dimension : () -> CardinalNumber
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inGroundField? : % -> Boolean         index : PositiveInteger -> %
 --R init : () -> %                        inv : % -> %
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      lookup : % -> PositiveInteger
 --R norm : % -> %                         one? : % -> Boolean
 --R order : % -> PositiveInteger          prime? : % -> Boolean
 --R primeFrobenius : % -> %               primitive? : % -> Boolean
 --R primitiveElement : () -> %            ?quo? : (%,%) -> %
 --R random : () -> %                      recip : % -> Union(%,"failed")
---R ?rem? : (%,%) -> %                    represents : Vector % -> %
+--R ?rem? : (%,%) -> %                    represents : Vector(%) -> %
 --R retract : % -> %                      sample : () -> %
 --R size : () -> NonNegativeInteger       sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> %                        transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -62185,42 +62351,42 @@ InnerPAdicInteger(p,unBalanced?): Exports == Implementation where
 --R Frobenius : % -> % if $ has FINITE
 --R Frobenius : (%,NonNegativeInteger) -> % if $ has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed")
---R conditionP : Matrix % -> Union(Vector %,"failed")
---R coordinates : Vector % -> Matrix %
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed")
+--R coordinates : Vector(%) -> Matrix(%)
 --R createNormalElement : () -> % if $ has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> %
 --R discreteLog : % -> NonNegativeInteger
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed")
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R extensionDegree : () -> OnePointCompletion PositiveInteger
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
 --R extensionDegree : () -> PositiveInteger
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer))
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if $ has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial %) -> % if $ has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial % if $ has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial %,"failed") if $ has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial % if $ has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial %
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if $ has FINITE
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(%)) -> % if $ has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(%) if $ has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(%),"failed") if $ has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(%) if $ has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(%)
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if $ has FINITE
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed")
 --R norm : (%,PositiveInteger) -> % if $ has FINITE
 --R normal? : % -> Boolean if $ has FINITE
 --R normalElement : () -> % if $ has FINITE
---R order : % -> OnePointCompletion PositiveInteger
+--R order : % -> OnePointCompletion(PositiveInteger)
 --R primeFrobenius : (%,NonNegativeInteger) -> %
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R representationType : () -> Union("prime",polynomial,normal,cyclic)
 --R retractIfCan : % -> Union(%,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -62537,7 +62703,8 @@ InnerPrimeField(p:PositiveInteger): Exports == Implementation where
 
 --S 1 of 1
 )show InnerSparseUnivariatePowerSeries
---R InnerSparseUnivariatePowerSeries Coef: Ring  is a domain constructor
+--R 
+--R InnerSparseUnivariatePowerSeries(Coef: Ring)  is a domain constructor
 --R Abbreviation for InnerSparseUnivariatePowerSeries is ISUPS 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ISUPS 
@@ -62564,80 +62731,80 @@ InnerPrimeField(p:PositiveInteger): Exports == Implementation where
 --R taylorQuoByVar : % -> %               truncate : (%,Integer) -> %
 --R variable : % -> Symbol                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R ?*? : (%,Fraction Integer) -> % if Coef has ALGEBRA FRAC INT
---R ?*? : (Fraction Integer,%) -> % if Coef has ALGEBRA FRAC INT
+--R ?*? : (%,Fraction(Integer)) -> % if Coef has ALGEBRA(FRAC(INT))
+--R ?*? : (Fraction(Integer),%) -> % if Coef has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?^? : (%,NonNegativeInteger) -> %
 --R approximate : (%,Integer) -> Coef if Coef has **: (Coef,Integer) -> Coef and Coef has coerce: Symbol -> Coef
 --R associates? : (%,%) -> Boolean if Coef has INTDOM
---R cAcos : % -> % if Coef has ALGEBRA FRAC INT
---R cAcosh : % -> % if Coef has ALGEBRA FRAC INT
---R cAcot : % -> % if Coef has ALGEBRA FRAC INT
---R cAcoth : % -> % if Coef has ALGEBRA FRAC INT
---R cAcsc : % -> % if Coef has ALGEBRA FRAC INT
---R cAcsch : % -> % if Coef has ALGEBRA FRAC INT
---R cAsec : % -> % if Coef has ALGEBRA FRAC INT
---R cAsech : % -> % if Coef has ALGEBRA FRAC INT
---R cAsin : % -> % if Coef has ALGEBRA FRAC INT
---R cAsinh : % -> % if Coef has ALGEBRA FRAC INT
---R cAtan : % -> % if Coef has ALGEBRA FRAC INT
---R cAtanh : % -> % if Coef has ALGEBRA FRAC INT
---R cCos : % -> % if Coef has ALGEBRA FRAC INT
---R cCosh : % -> % if Coef has ALGEBRA FRAC INT
---R cCot : % -> % if Coef has ALGEBRA FRAC INT
---R cCoth : % -> % if Coef has ALGEBRA FRAC INT
---R cCsc : % -> % if Coef has ALGEBRA FRAC INT
---R cCsch : % -> % if Coef has ALGEBRA FRAC INT
---R cExp : % -> % if Coef has ALGEBRA FRAC INT
---R cLog : % -> % if Coef has ALGEBRA FRAC INT
---R cPower : (%,Coef) -> % if Coef has ALGEBRA FRAC INT
---R cRationalPower : (%,Fraction Integer) -> % if Coef has ALGEBRA FRAC INT
---R cSec : % -> % if Coef has ALGEBRA FRAC INT
---R cSech : % -> % if Coef has ALGEBRA FRAC INT
---R cSin : % -> % if Coef has ALGEBRA FRAC INT
---R cSinh : % -> % if Coef has ALGEBRA FRAC INT
---R cTan : % -> % if Coef has ALGEBRA FRAC INT
---R cTanh : % -> % if Coef has ALGEBRA FRAC INT
+--R cAcos : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAcosh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAcot : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAcoth : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAcsc : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAcsch : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAsec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAsech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAsin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAsinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAtan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cAtanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCos : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCosh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCot : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCoth : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCsc : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cCsch : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cExp : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cLog : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cPower : (%,Coef) -> % if Coef has ALGEBRA(FRAC(INT))
+--R cRationalPower : (%,Fraction(Integer)) -> % if Coef has ALGEBRA(FRAC(INT))
+--R cSec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cSech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cSin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cSinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cTan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R cTanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if Coef has CHARNZ
 --R coerce : Coef -> % if Coef has COMRING
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R differentiate : % -> % if Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?.? : (%,%) -> % if Integer has SGROUP
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,Integer) -> Coef
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,Integer) -> Coef
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
---R getRef : % -> Reference OrderedCompletion Integer
---R getStream : % -> Stream Record(k: Integer,c: Coef)
+--R getRef : % -> Reference(OrderedCompletion(Integer))
+--R getStream : % -> Stream(Record(k: Integer,c: Coef))
 --R iExquo : (%,%,Boolean) -> Union(%,"failed")
---R integrate : % -> % if Coef has ALGEBRA FRAC INT
---R makeSeries : (Reference OrderedCompletion Integer,Stream Record(k: Integer,c: Coef)) -> %
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
+--R integrate : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R makeSeries : (Reference(OrderedCompletion(Integer)),Stream(Record(k: Integer,c: Coef))) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
 --R monomial : (%,SingletonAsOrderedSet,Integer) -> %
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
---R series : Stream Record(k: Integer,c: Coef) -> %
---R seriesToOutputForm : (Stream Record(k: Integer,c: Coef),Reference OrderedCompletion Integer,Symbol,Coef,Fraction Integer) -> OutputForm
+--R series : Stream(Record(k: Integer,c: Coef)) -> %
+--R seriesToOutputForm : (Stream(Record(k: Integer,c: Coef)),Reference(OrderedCompletion(Integer)),Symbol,Coef,Fraction(Integer)) -> OutputForm
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> Stream Record(k: Integer,c: Coef)
+--R terms : % -> Stream(Record(k: Integer,c: Coef))
 --R truncate : (%,Integer,Integer) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -63835,6 +64002,7 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where
 
 --S 1 of 1
 )show InnerTable
+--R 
 --R InnerTable(Key: SetCategory,Entry: SetCategory,addDom) where 
 --R   addDom: TableAggregate(Key,Entry) with 
 --R        finiteAggregate  is a domain constructor
@@ -63846,9 +64014,9 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where
 --R copy : % -> %                         dictionary : () -> %
 --R elt : (%,Key,Entry) -> Entry          ?.? : (%,Key) -> Entry
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Entry             eq? : (%,%) -> Boolean
---R index? : (Key,%) -> Boolean           indices : % -> List Key
---R key? : (Key,%) -> Boolean             keys : % -> List Key
+--R entries : % -> List(Entry)            eq? : (%,%) -> Boolean
+--R index? : (Key,%) -> Boolean           indices : % -> List(Key)
+--R key? : (Key,%) -> Boolean             keys : % -> List(Key)
 --R map : ((Entry -> Entry),%) -> %       qelt : (%,Key) -> Entry
 --R sample : () -> %                      setelt : (%,Key,Entry) -> Entry
 --R table : () -> %                      
@@ -63856,24 +64024,24 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
 --R any? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R any? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R bag : List Record(key: Key,entry: Entry) -> %
+--R bag : List(Record(key: Key,entry: Entry)) -> %
 --R coerce : % -> OutputForm if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
---R construct : List Record(key: Key,entry: Entry) -> %
---R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT INFORM
+--R construct : List(Record(key: Key,entry: Entry)) -> %
+--R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT(INFORM)
 --R count : ((Entry -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Entry,%) -> NonNegativeInteger if $ has finiteAggregate and Entry has SETCAT
 --R count : (Record(key: Key,entry: Entry),%) -> NonNegativeInteger if $ has finiteAggregate and Record(key: Key,entry: Entry) has SETCAT
 --R count : ((Record(key: Key,entry: Entry) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R dictionary : List Record(key: Key,entry: Entry) -> %
+--R dictionary : List(Record(key: Key,entry: Entry)) -> %
 --R entry? : (Entry,%) -> Boolean if $ has finiteAggregate and Entry has SETCAT
---R eval : (%,List Equation Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,Equation Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,Entry,Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,List Entry,List Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,List Record(key: Key,entry: Entry),List Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,Equation Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
---R eval : (%,List Equation Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB Record(key: Key,entry: Entry) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,List(Equation(Entry))) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,Equation(Entry)) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,Entry,Entry) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,List(Entry),List(Entry)) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
+--R eval : (%,List(Record(key: Key,entry: Entry)),List(Record(key: Key,entry: Entry))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,Equation(Record(key: Key,entry: Entry))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
+--R eval : (%,List(Equation(Record(key: Key,entry: Entry)))) -> % if Record(key: Key,entry: Entry) has EVALAB(Record(key: Key,entry: Entry)) and Record(key: Key,entry: Entry) has SETCAT
 --R every? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extract! : % -> Record(key: Key,entry: Entry)
@@ -63892,12 +64060,12 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where
 --R maxIndex : % -> Key if Key has ORDSET
 --R member? : (Entry,%) -> Boolean if $ has finiteAggregate and Entry has SETCAT
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if $ has finiteAggregate and Record(key: Key,entry: Entry) has SETCAT
---R members : % -> List Entry if $ has finiteAggregate
---R members : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R members : % -> List(Entry) if $ has finiteAggregate
+--R members : % -> List(Record(key: Key,entry: Entry)) if $ has finiteAggregate
 --R minIndex : % -> Key if Key has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Entry if $ has finiteAggregate
---R parts : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R parts : % -> List(Entry) if $ has finiteAggregate
+--R parts : % -> List(Record(key: Key,entry: Entry)) if $ has finiteAggregate
 --R qsetelt! : (%,Key,Entry) -> Entry if $ has shallowlyMutable
 --R reduce : (((Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry)),%) -> Record(key: Key,entry: Entry) if $ has finiteAggregate
 --R reduce : (((Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry)),%,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has finiteAggregate
@@ -63913,7 +64081,7 @@ InnerSparseUnivariatePowerSeries(Coef): Exports == Implementation where
 --R select! : ((Record(key: Key,entry: Entry) -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R swap! : (%,Key,Key) -> Void if $ has shallowlyMutable
---R table : List Record(key: Key,entry: Entry) -> %
+--R table : List(Record(key: Key,entry: Entry)) -> %
 --R ?~=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT
 --R
 --E 1
@@ -64044,7 +64212,8 @@ InnerTable(Key: SetCategory, Entry: SetCategory, addDom):Exports == Implementati
 
 --S 1 of 1
 )show InnerTaylorSeries
---R InnerTaylorSeries Coef: Ring  is a domain constructor
+--R 
+--R InnerTaylorSeries(Coef: Ring)  is a domain constructor
 --R Abbreviation for InnerTaylorSeries is ITAYLOR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ITAYLOR 
@@ -64057,12 +64226,12 @@ InnerTable(Key: SetCategory, Entry: SetCategory, addDom):Exports == Implementati
 --R ?-? : (%,%) -> %                      -? : % -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R coefficients : % -> Stream Coef       coerce : Integer -> %
+--R coefficients : % -> Stream(Coef)      coerce : Integer -> %
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   one? : % -> Boolean
 --R order : % -> NonNegativeInteger       pole? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
---R series : Stream Coef -> %             zero? : % -> Boolean
+--R series : Stream(Coef) -> %            zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
@@ -64286,6 +64455,7 @@ InnerTaylorSeries(Coef): Exports == Implementation where
 
 --S 1 of 1
 )show InputForm
+--R 
 --R InputForm  is a domain constructor
 --R Abbreviation for InputForm is INFORM 
 --R This constructor is not exposed in this frame.
@@ -64296,28 +64466,28 @@ InnerTaylorSeries(Coef): Exports == Implementation where
 --R ?**? : (%,Integer) -> %               ?+? : (%,%) -> %
 --R ?/? : (%,%) -> %                      ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R atom? : % -> Boolean                  binary : (%,List %) -> %
+--R atom? : % -> Boolean                  binary : (%,List(%)) -> %
 --R car : % -> %                          cdr : % -> %
 --R coerce : % -> OutputForm              convert : SExpression -> %
 --R convert : % -> SExpression            convert : OutputForm -> %
 --R convert : DoubleFloat -> %            convert : Integer -> %
 --R convert : Symbol -> %                 convert : String -> %
---R convert : List % -> %                 declare : List % -> Symbol
---R destruct : % -> List %                ?.? : (%,List Integer) -> %
+--R convert : List(%) -> %                declare : List(%) -> Symbol
+--R destruct : % -> List(%)               ?.? : (%,List(Integer)) -> %
 --R ?.? : (%,Integer) -> %                eq : (%,%) -> Boolean
 --R expr : % -> OutputForm                flatten : % -> %
 --R float : % -> DoubleFloat              float? : % -> Boolean
 --R hash : % -> SingleInteger             integer : % -> Integer
 --R integer? : % -> Boolean               interpret : % -> Any
---R lambda : (%,List Symbol) -> %         latex : % -> String
+--R lambda : (%,List(Symbol)) -> %        latex : % -> String
 --R list? : % -> Boolean                  null? : % -> Boolean
 --R pair? : % -> Boolean                  parse : String -> %
 --R string : % -> String                  string? : % -> Boolean
 --R symbol : % -> Symbol                  symbol? : % -> Boolean
 --R unparse : % -> String                 ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
---R compile : (Symbol,List %) -> Symbol
---R function : (%,List Symbol,Symbol) -> %
+--R compile : (Symbol,List(%)) -> Symbol
+--R function : (%,List(Symbol),Symbol) -> %
 --R
 --E 1
 
@@ -64783,7 +64953,7 @@ reduce(lcm,[2,45,-89,78,100,-45])
 --R         13
 --R   (24)  --
 --R          4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 24
 
 --S 25 of 42
@@ -64840,7 +65010,7 @@ factor 102400
 --R
 --R          12 2
 --R   (31)  2  5
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 31
 
 --S 32 of 42
@@ -64880,7 +65050,7 @@ primes(100,175)
 --R 
 --R
 --R   (36)  [173,167,163,157,151,149,139,137,131,127,113,109,107,103,101]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 36
 
 --S 37 of 42
@@ -64889,7 +65059,7 @@ factor(2 :: Complex Integer)
 --R
 --R                      2
 --R   (37)  - %i (1 + %i)
---R                                               Type: Factored Complex Integer
+--R                                             Type: Factored(Complex(Integer))
 --E 37
 
 --S 38 of 42
@@ -64897,7 +65067,7 @@ factor(2 :: Complex Integer)
 --R 
 --R
 --R   (38)  [0,1,1,2,3,5,8,13,21,34,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 38
 
 --S 39 of 42
@@ -64905,7 +65075,7 @@ factor(2 :: Complex Integer)
 --R 
 --R
 --R   (39)  [0,1,- 1,1,1,1,- 1,- 1,- 1,1,- 1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 39
 
 --S 40 of 42
@@ -64913,7 +65083,7 @@ factor(2 :: Complex Integer)
 --R 
 --R
 --R   (40)  [0,1,1,0,1,0,0,- 1,1,0]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 40
 
 --S 41 of 42
@@ -64921,7 +65091,7 @@ factor(2 :: Complex Integer)
 --R 
 --R
 --R   (41)  [1,1,2,2,4,2,6,4,6,4,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 41
 
 --S 42 of 42
@@ -64929,7 +65099,7 @@ factor(2 :: Complex Integer)
 --R 
 --R
 --R   (42)  [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 42
 )spool
 )lisp (bye)
@@ -65539,7 +65709,8 @@ Integer: Join(IntegerNumberSystem, ConvertibleTo String, OpenMath) with
 
 --S 1 of 1
 )show IntegerMod
---R IntegerMod p: PositiveInteger  is a domain constructor
+--R 
+--R IntegerMod(p: PositiveInteger)  is a domain constructor
 --R Abbreviation for IntegerMod is ZMOD 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ZMOD 
@@ -65719,6 +65890,7 @@ IntegerMod(p:PositiveInteger):
 
 --S 1 of 1
 )show IntegrationFunctionsTable
+--R 
 --R IntegrationFunctionsTable  is a domain constructor
 --R Abbreviation for IntegrationFunctionsTable is INTFTBL 
 --R This constructor is exposed in this frame.
@@ -65726,12 +65898,12 @@ IntegerMod(p:PositiveInteger):
 --R
 --R------------------------------- Operations --------------------------------
 --R clearTheFTable : () -> Void           showTheFTable : () -> %
---R entries : % -> List Record(key: Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream DoubleFloat,notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated)))
---R entry : Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream DoubleFloat,notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))
---R fTable : List Record(key: Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream DoubleFloat,notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))) -> %
---R insert! : Record(key: Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream DoubleFloat,notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))) -> %
---R keys : % -> List Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)
---R showAttributes : Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Union(Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream DoubleFloat,notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated)),"failed")
+--R entries : % -> List(Record(key: Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream(DoubleFloat),notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))))
+--R entry : Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat) -> Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream(DoubleFloat),notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))
+--R fTable : List(Record(key: Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream(DoubleFloat),notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated)))) -> %
+--R insert! : Record(key: Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream(DoubleFloat),notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated))) -> %
+--R keys : % -> List(Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat))
+--R showAttributes : Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat) -> Union(Record(endPointContinuity: Union(continuous: Continuous at the end points,lowerSingular: There is a singularity at the lower end point,upperSingular: There is a singularity at the upper end point,bothSingular: There are singularities at both end points,notEvaluated: End point continuity not yet evaluated),singularitiesStream: Union(str: Stream(DoubleFloat),notEvaluated: Internal singularities not yet evaluated),range: Union(finite: The range is finite,lowerInfinite: The bottom of range is infinite,upperInfinite: The top of range is infinite,bothInfinite: Both top and bottom points are infinite,notEvaluated: Range not yet evaluated)),"failed")
 --R
 --E 1
 
@@ -65881,13 +66053,14 @@ IntegrationFunctionsTable(): E == I where
 
 --S 1 of 1
 )show IntegrationResult
---R IntegrationResult F: Field  is a domain constructor
+--R 
+--R IntegrationResult(F: Field)  is a domain constructor
 --R Abbreviation for IntegrationResult is IR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for IR 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (%,Fraction Integer) -> %       ?*? : (Fraction Integer,%) -> %
+--R ?*? : (%,Fraction(Integer)) -> %      ?*? : (Fraction(Integer),%) -> %
 --R ?*? : (Integer,%) -> %                ?*? : (PositiveInteger,%) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
@@ -65899,11 +66072,11 @@ IntegrationFunctionsTable(): E == I where
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
---R differentiate : (%,Symbol) -> F if F has PDRING SYMBOL
---R integral : (F,Symbol) -> % if F has RETRACT SYMBOL
---R logpart : % -> List Record(scalar: Fraction Integer,coeff: SparseUnivariatePolynomial F,logand: SparseUnivariatePolynomial F)
---R mkAnswer : (F,List Record(scalar: Fraction Integer,coeff: SparseUnivariatePolynomial F,logand: SparseUnivariatePolynomial F),List Record(integrand: F,intvar: F)) -> %
---R notelem : % -> List Record(integrand: F,intvar: F)
+--R differentiate : (%,Symbol) -> F if F has PDRING(SYMBOL)
+--R integral : (F,Symbol) -> % if F has RETRACT(SYMBOL)
+--R logpart : % -> List(Record(scalar: Fraction(Integer),coeff: SparseUnivariatePolynomial(F),logand: SparseUnivariatePolynomial(F)))
+--R mkAnswer : (F,List(Record(scalar: Fraction(Integer),coeff: SparseUnivariatePolynomial(F),logand: SparseUnivariatePolynomial(F))),List(Record(integrand: F,intvar: F))) -> %
+--R notelem : % -> List(Record(integrand: F,intvar: F))
 --R retractIfCan : % -> Union(F,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
@@ -66900,7 +67073,7 @@ x :: Expression Integer
 --R 
 --R
 --R   (1)  x
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 1
 
 --S 2 of 19
@@ -66908,7 +67081,7 @@ kernel x
 --R 
 --R
 --R   (2)  x
---R                                              Type: Kernel Expression Integer
+--R                                            Type: Kernel(Expression(Integer))
 --E 2
 
 --S 3 of 19
@@ -66916,7 +67089,7 @@ sin(x) + cos(x)
 --R 
 --R
 --R   (3)  sin(x) + cos(x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 3
 
 --S 4 of 19
@@ -66924,7 +67097,7 @@ kernels %
 --R 
 --R
 --R   (4)  [sin(x),cos(x)]
---R                                         Type: List Kernel Expression Integer
+--R                                      Type: List(Kernel(Expression(Integer)))
 --E 4
 
 --S 5 of 19
@@ -66933,7 +67106,7 @@ sin(x)**2 + sin(x) + cos(x)
 --R
 --R              2
 --R   (5)  sin(x)  + sin(x) + cos(x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 5
 
 --S 6 of 19
@@ -66941,7 +67114,7 @@ kernels %
 --R 
 --R
 --R   (6)  [sin(x),cos(x)]
---R                                         Type: List Kernel Expression Integer
+--R                                      Type: List(Kernel(Expression(Integer)))
 --E 6
 
 --S 7 of 19
@@ -66949,7 +67122,7 @@ kernels(1 :: Expression Integer)
 --R 
 --R
 --R   (7)  []
---R                                         Type: List Kernel Expression Integer
+--R                                      Type: List(Kernel(Expression(Integer)))
 --E 7
 
 --S 8 of 19
@@ -66957,7 +67130,7 @@ mainKernel(cos(x) + tan(x))
 --R 
 --R
 --R   (8)  tan(x)
---R                                   Type: Union(Kernel Expression Integer,...)
+--R                                 Type: Union(Kernel(Expression(Integer)),...)
 --E 8
 
 --S 9 of 19
@@ -67021,7 +67194,7 @@ e := f(x, y, 10)
 --R 
 --R
 --R   (16)  f(x,y,10)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 16
 
 --S 17 of 19
@@ -67045,7 +67218,7 @@ argument mainKernel e
 --R 
 --R
 --R   (19)  [x,y,10]
---R                                                Type: List Expression Integer
+--R                                              Type: List(Expression(Integer))
 --E 19
 )spool
 )lisp (bye)
@@ -67391,7 +67564,7 @@ ey: KeyedAccessFile(Integer) := open("editor.year", "output")
 --R 
 --R
 --R   (1)  "editor.year"
---R                                                Type: KeyedAccessFile Integer
+--R                                               Type: KeyedAccessFile(Integer)
 --E 1
 
 --S 2 of 20
@@ -67471,7 +67644,7 @@ keys ey
 --R 
 --R
 --R   (11)  ["Fitch","Caviness"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 11
 
 --S 12 of 20
@@ -67495,7 +67668,7 @@ reopen!(ey, "output")
 --R 
 --R
 --R   (14)  "editor.year"
---R                                                Type: KeyedAccessFile Integer
+--R                                               Type: KeyedAccessFile(Integer)
 --E 14
 
 --S 15 of 20
@@ -67527,7 +67700,7 @@ close! ey
 --R 
 --R
 --R   (18)  "editor.year"
---R                                                Type: KeyedAccessFile Integer
+--R                                               Type: KeyedAccessFile(Integer)
 --E 18
 
 --S 19 of 20
@@ -67535,7 +67708,7 @@ keys ey
 --R 
 --R
 --R   (19)  ["Wang","Calmet","van Hulzen","Fitch","Caviness"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 19
 
 --S 20 of 20
@@ -67543,7 +67716,7 @@ members ey
 --R 
 --R
 --R   (20)  [1981,1982,1983,1984,1985]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 20
 
 )system rm -r editor.year
@@ -67884,7 +68057,8 @@ KeyedAccessFile(Entry): KAFcategory == KAFcapsule where
 
 --S 1 of 1
 )show LaurentPolynomial
---R LaurentPolynomial(R: IntegralDomain,UP: UnivariatePolynomialCategory R)  is a domain constructor
+--R 
+--R LaurentPolynomial(R: IntegralDomain,UP: UnivariatePolynomialCategory(R))  is a domain constructor
 --R Abbreviation for LaurentPolynomial is LAUPOL 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for LAUPOL 
@@ -67900,7 +68074,7 @@ KeyedAccessFile(Entry): KAFcategory == KAFcapsule where
 --R coefficient : (%,Integer) -> R        coerce : UP -> %
 --R coerce : R -> %                       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R convert : % -> Fraction UP            degree : % -> Integer
+--R convert : % -> Fraction(UP)           degree : % -> Integer
 --R hash : % -> SingleInteger             latex : % -> String
 --R leadingCoefficient : % -> R           monomial : (R,Integer) -> %
 --R monomial? : % -> Boolean              one? : % -> Boolean
@@ -67913,45 +68087,45 @@ KeyedAccessFile(Entry): KAFcategory == KAFcapsule where
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R D : (%,NonNegativeInteger) -> % if UP has DIFRING
---R D : (%,Symbol) -> % if UP has PDRING SYMBOL
---R D : (%,List Symbol) -> % if UP has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if UP has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if UP has PDRING SYMBOL
+--R D : (%,Symbol) -> % if UP has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if UP has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if UP has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if UP has PDRING(SYMBOL)
 --R D : (%,(UP -> UP),NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R differentiate : % -> % if UP has DIFRING
 --R differentiate : (%,NonNegativeInteger) -> % if UP has DIFRING
---R differentiate : (%,Symbol) -> % if UP has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if UP has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if UP has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if UP has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if UP has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if UP has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if UP has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if UP has PDRING(SYMBOL)
 --R differentiate : (%,(UP -> UP),NonNegativeInteger) -> %
 --R differentiate : (%,(UP -> UP)) -> %
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R euclideanSize : % -> NonNegativeInteger if R has FIELD
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has FIELD
 --R gcd : (%,%) -> % if R has FIELD
---R gcd : List % -> % if R has FIELD
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has FIELD
+--R gcd : List(%) -> % if R has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has FIELD
 --R lcm : (%,%) -> % if R has FIELD
---R lcm : List % -> % if R has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has FIELD
---R principalIdeal : List % -> Record(coef: List %,generator: %) if R has FIELD
+--R lcm : List(%) -> % if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has FIELD
 --R ?quo? : (%,%) -> % if R has FIELD
 --R ?rem? : (%,%) -> % if R has FIELD
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retract : % -> Integer if R has RETRACT(INT)
 --R retractIfCan : % -> Union(UP,"failed")
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R separate : Fraction UP -> Record(polyPart: %,fracPart: Fraction UP) if R has FIELD
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R separate : Fraction(UP) -> Record(polyPart: %,fracPart: Fraction(UP)) if R has FIELD
 --R sizeLess? : (%,%) -> Boolean if R has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -68229,7 +68403,7 @@ stuff."poly" := x**2 + 1
 --R
 --R         2
 --R   (3)  x  + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 3
 
 --S 4 of 7
@@ -68245,7 +68419,7 @@ keys stuff
 --R 
 --R
 --R   (5)  ["str","poly","int"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 5
 
 --S 6 of 7
@@ -68254,7 +68428,7 @@ stuff.poly
 --R
 --R         2
 --R   (6)  x  + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 6
 
 --S 7 of 7
@@ -68263,7 +68437,7 @@ stuff("poly")
 --R
 --R         2
 --R   (7)  x  + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 7
 
 )system rm -rf Neat.stuff
@@ -68464,7 +68638,7 @@ b: Symbol := 'b
 coef := Fraction(Integer) 
 --R 
 --R
---R   (3)  Fraction Integer
+--R   (3)  Fraction(Integer)
 --R                                                                 Type: Domain
 --E 3
 
@@ -68472,7 +68646,7 @@ coef := Fraction(Integer)
 group := LieExponentials(Symbol, coef, 3)
 --R 
 --R
---R   (4)  LieExponentials(Symbol,Fraction Integer,3)
+--R   (4)  LieExponentials(Symbol,Fraction(Integer),3)
 --R                                                                 Type: Domain
 --E 4
 
@@ -68480,7 +68654,7 @@ group := LieExponentials(Symbol, coef, 3)
 lpoly := LiePolynomial(Symbol, coef)
 --R 
 --R
---R   (5)  LiePolynomial(Symbol,Fraction Integer)
+--R   (5)  LiePolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 5
 
@@ -68488,7 +68662,7 @@ lpoly := LiePolynomial(Symbol, coef)
 poly := XPBWPolynomial(Symbol, coef)
 --R 
 --R
---R   (6)  XPBWPolynomial(Symbol,Fraction Integer)
+--R   (6)  XPBWPolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 6
 
@@ -68498,7 +68672,7 @@ ea := exp(a::lpoly)$group
 --R
 --R         [a]
 --R   (7)  e
---R                             Type: LieExponentials(Symbol,Fraction Integer,3)
+--R                            Type: LieExponentials(Symbol,Fraction(Integer),3)
 --E 7
 
 --S 8 of 13
@@ -68507,7 +68681,7 @@ eb := exp(b::lpoly)$group
 --R
 --R         [b]
 --R   (8)  e
---R                             Type: LieExponentials(Symbol,Fraction Integer,3)
+--R                            Type: LieExponentials(Symbol,Fraction(Integer),3)
 --E 8
 
 --S 9 of 13
@@ -68518,7 +68692,7 @@ g: group := ea*eb
 --R             - [a b ]       - [a b]
 --R         [b] 2        [a b] 2       [a]
 --R   (9)  e   e        e     e       e
---R                             Type: LieExponentials(Symbol,Fraction Integer,3)
+--R                            Type: LieExponentials(Symbol,Fraction(Integer),3)
 --E 9
 
 --S 10 of 13
@@ -68537,7 +68711,7 @@ g :: poly
 --R     1
 --R     - [b][b][b]
 --R     6
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 10
 
 --S 11 of 13
@@ -68547,7 +68721,7 @@ log(g)$group
 --R                     1          1   2      1     2
 --R   (11)  [a] + [b] + - [a b] + -- [a b] + -- [a b ]
 --R                     2         12         12
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 11
 
 --S 12 of 13
@@ -68556,7 +68730,7 @@ g1: group := inv(g)
 --R
 --R          - [b] - [a]
 --R   (12)  e     e
---R                             Type: LieExponentials(Symbol,Fraction Integer,3)
+--R                            Type: LieExponentials(Symbol,Fraction(Integer),3)
 --E 12
 
 --S 13 of 13
@@ -68564,7 +68738,7 @@ g*g1
 --R 
 --R
 --R   (13)  1
---R                             Type: LieExponentials(Symbol,Fraction Integer,3)
+--R                            Type: LieExponentials(Symbol,Fraction(Integer),3)
 --E 13
 )spool
 )lisp (bye)
@@ -68842,7 +69016,7 @@ LieExponentials(VarSet, R, Order): XDPcat == XDPdef where
 RN := Fraction Integer
 --R 
 --R
---R   (1)  Fraction Integer
+--R   (1)  Fraction(Integer)
 --R                                                                 Type: Domain
 --E 1
 
@@ -68850,7 +69024,7 @@ RN := Fraction Integer
 Lpoly := LiePolynomial(Symbol,RN)
 --R 
 --R
---R   (2)  LiePolynomial(Symbol,Fraction Integer)
+--R   (2)  LiePolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 2
 
@@ -68858,7 +69032,7 @@ Lpoly := LiePolynomial(Symbol,RN)
 Dpoly := XDPOLY(Symbol,RN)
 --R 
 --R
---R   (3)  XDistributedPolynomial(Symbol,Fraction Integer)
+--R   (3)  XDistributedPolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 3
 
@@ -68866,7 +69040,7 @@ Dpoly := XDPOLY(Symbol,RN)
 Lword := LyndonWord Symbol
 --R 
 --R
---R   (4)  LyndonWord Symbol
+--R   (4)  LyndonWord(Symbol)
 --R                                                                 Type: Domain
 --E 4
 
@@ -68899,7 +69073,7 @@ aa: Lpoly := a
 --R 
 --R
 --R   (8)  [a]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 8
 
 --S 9 of 28
@@ -68907,7 +69081,7 @@ bb: Lpoly := b
 --R 
 --R
 --R   (9)  [b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 9
 
 --S 10 of 28
@@ -68915,7 +69089,7 @@ cc: Lpoly := c
 --R 
 --R
 --R   (10)  [c]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 10
 
 --S 11 of 28
@@ -68923,7 +69097,7 @@ p : Lpoly := [aa,bb]
 --R 
 --R
 --R   (11)  [a b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 11
 
 --S 12 of 28
@@ -68932,7 +69106,7 @@ q : Lpoly := [p,bb]
 --R
 --R             2
 --R   (12)  [a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 12
 
 --S 13 of 28
@@ -68941,7 +69115,7 @@ liste : List Lword := LyndonWordsList([a,b], 4)
 --R
 --R                          2       2    3     2 2      3
 --R   (13)  [[a],[b],[a b],[a b],[a b ],[a b],[a b ],[a b ]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 13
 
 --S 14 of 28
@@ -68950,7 +69124,7 @@ r: Lpoly := p + q + 3*LiePoly(liste.4)$Lpoly
 --R
 --R                    2         2
 --R   (14)  [a b] + 3[a b] + [a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 14
 
 --S 15 of 28
@@ -68959,7 +69133,7 @@ s:Lpoly := [p,r]
 --R
 --R              2                 2
 --R   (15)  - 3[a b a b] + [a b a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 15
 
 --S 16 of 28
@@ -68968,7 +69142,7 @@ t:Lpoly  := s  + 2*LiePoly(liste.3) - 5*LiePoly(liste.5)
 --R
 --R                       2       2                 2
 --R   (16)  2[a b] - 5[a b ] - 3[a b a b] + [a b a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 16
 
 --S 17 of 28
@@ -68985,30 +69159,30 @@ mirror t
 --R
 --R                         2       2                 2
 --R   (18)  - 2[a b] - 5[a b ] - 3[a b a b] + [a b a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 18
 
 --S 19 of 28
 Jacobi(p: Lpoly, q: Lpoly, r: Lpoly): Lpoly == _
    [ [p,q]$Lpoly, r] + [ [q,r]$Lpoly, p] + [ [r,p]$Lpoly, q]  
 --R 
---R   Function declaration Jacobi : (LiePolynomial(Symbol,Fraction Integer
---R      ),LiePolynomial(Symbol,Fraction Integer),LiePolynomial(Symbol,
---R      Fraction Integer)) -> LiePolynomial(Symbol,Fraction Integer) has 
---R      been added to workspace.
+--R   Function declaration Jacobi : (LiePolynomial(Symbol,Fraction(Integer
+--R      )),LiePolynomial(Symbol,Fraction(Integer)),LiePolynomial(Symbol,
+--R      Fraction(Integer))) -> LiePolynomial(Symbol,Fraction(Integer)) 
+--R      has been added to workspace.
 --R                                                                   Type: Void
 --E 19
 
 --S 20 of 28
 test: Lpoly := Jacobi(a,b,b)
 --R 
---R   Compiling function Jacobi with type (LiePolynomial(Symbol,Fraction 
---R      Integer),LiePolynomial(Symbol,Fraction Integer),LiePolynomial(
---R      Symbol,Fraction Integer)) -> LiePolynomial(Symbol,Fraction 
---R      Integer) 
+--R   Compiling function Jacobi with type (LiePolynomial(Symbol,Fraction(
+--R      Integer)),LiePolynomial(Symbol,Fraction(Integer)),LiePolynomial(
+--R      Symbol,Fraction(Integer))) -> LiePolynomial(Symbol,Fraction(
+--R      Integer)) 
 --R
 --R   (20)  0
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 20
 
 --S 21 of 28
@@ -69016,7 +69190,7 @@ test: Lpoly := Jacobi(p,q,r)
 --R 
 --R
 --R   (21)  0
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 21
 
 --S 22 of 28
@@ -69024,7 +69198,7 @@ test: Lpoly := Jacobi(r,s,t)
 --R 
 --R
 --R   (22)  0
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 22
 
 --S 23 of 28
@@ -69033,7 +69207,7 @@ eval(p, a, p)$Lpoly
 --R
 --R             2
 --R   (23)  [a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 23
 
 --S 24 of 28
@@ -69041,7 +69215,7 @@ eval(p, [a,b], [2*bb, 3*aa])$Lpoly
 --R 
 --R
 --R   (24)  - 6[a b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 24
 
 --S 25 of 28
@@ -69049,7 +69223,7 @@ r: Lpoly := [p,c]
 --R 
 --R
 --R   (25)  [a b c] + [a c b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 25
 
 --S 26 of 28
@@ -69057,7 +69231,7 @@ r1: Lpoly := eval(r, [a,b,c], [bb, cc, aa])$Lpoly
 --R 
 --R
 --R   (26)  - [a b c]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 26
 
 --S 27 of 28
@@ -69065,7 +69239,7 @@ r2: Lpoly := eval(r, [a,b,c], [cc, aa, bb])$Lpoly
 --R 
 --R
 --R   (27)  - [a c b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 27
 
 --S 28 of 28
@@ -69073,7 +69247,7 @@ r + r1 + r2
 --R 
 --R
 --R   (28)  0
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 28
 )spool
  
@@ -69491,6 +69665,7 @@ LiePolynomial(VarSet:OrderedSet, R:CommutativeRing) : Public == Private where
 
 --S 1 of 1
 )show LieSquareMatrix
+--R 
 --R LieSquareMatrix(n: PositiveInteger,R: CommutativeRing)  is a domain constructor
 --R Abbreviation for LieSquareMatrix is LSQM 
 --R This constructor is exposed in this frame.
@@ -69507,14 +69682,14 @@ LiePolynomial(VarSet:OrderedSet, R:CommutativeRing) : Public == Private where
 --R ?^? : (%,PositiveInteger) -> %        alternative? : () -> Boolean
 --R antiAssociative? : () -> Boolean      antiCommutative? : () -> Boolean
 --R antiCommutator : (%,%) -> %           antisymmetric? : % -> Boolean
---R apply : (Matrix R,%) -> %             associative? : () -> Boolean
---R associator : (%,%,%) -> %             basis : () -> Vector %
---R coerce : % -> Matrix R                coerce : R -> %
+--R apply : (Matrix(R),%) -> %            associative? : () -> Boolean
+--R associator : (%,%,%) -> %             basis : () -> Vector(%)
+--R coerce : % -> Matrix(R)               coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R commutative? : () -> Boolean          commutator : (%,%) -> %
---R convert : % -> Vector R               convert : Vector R -> %
---R coordinates : % -> Vector R           copy : % -> %
---R diagonal? : % -> Boolean              diagonalMatrix : List R -> %
+--R convert : % -> Vector(R)              convert : Vector(R) -> %
+--R coordinates : % -> Vector(R)          copy : % -> %
+--R diagonal? : % -> Boolean              diagonalMatrix : List(R) -> %
 --R diagonalProduct : % -> R              ?.? : (%,Integer) -> R
 --R elt : (%,Integer,Integer) -> R        elt : (%,Integer,Integer,R) -> R
 --R empty : () -> %                       empty? : % -> Boolean
@@ -69522,25 +69697,25 @@ LiePolynomial(VarSet:OrderedSet, R:CommutativeRing) : Public == Private where
 --R hash : % -> SingleInteger             jacobiIdentity? : () -> Boolean
 --R jordanAdmissible? : () -> Boolean     jordanAlgebra? : () -> Boolean
 --R latex : % -> String                   leftAlternative? : () -> Boolean
---R leftDiscriminant : Vector % -> R      leftDiscriminant : () -> R
+--R leftDiscriminant : Vector(%) -> R     leftDiscriminant : () -> R
 --R leftNorm : % -> R                     leftTrace : % -> R
---R leftTraceMatrix : () -> Matrix R      lieAdmissible? : () -> Boolean
---R lieAlgebra? : () -> Boolean           listOfLists : % -> List List R
+--R leftTraceMatrix : () -> Matrix(R)     lieAdmissible? : () -> Boolean
+--R lieAlgebra? : () -> Boolean           listOfLists : % -> List(List(R))
 --R map : ((R -> R),%) -> %               map : (((R,R) -> R),%,%) -> %
---R matrix : List List R -> %             maxColIndex : % -> Integer
+--R matrix : List(List(R)) -> %           maxColIndex : % -> Integer
 --R maxRowIndex : % -> Integer            minColIndex : % -> Integer
 --R minRowIndex : % -> Integer            ncols : % -> NonNegativeInteger
 --R nrows : % -> NonNegativeInteger       one? : % -> Boolean
 --R powerAssociative? : () -> Boolean     qelt : (%,Integer,Integer) -> R
 --R rank : () -> PositiveInteger          recip : % -> Union(%,"failed")
---R represents : Vector R -> %            retract : % -> R
---R rightAlternative? : () -> Boolean     rightDiscriminant : Vector % -> R
---R rightDiscriminant : () -> R           rightNorm : % -> R
---R rightTrace : % -> R                   rightTraceMatrix : () -> Matrix R
---R sample : () -> %                      scalarMatrix : R -> %
---R someBasis : () -> Vector %            square? : % -> Boolean
---R symmetric? : % -> Boolean             trace : % -> R
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R represents : Vector(R) -> %           retract : % -> R
+--R rightAlternative? : () -> Boolean     rightDiscriminant : () -> R
+--R rightNorm : % -> R                    rightTrace : % -> R
+--R rightTraceMatrix : () -> Matrix(R)    sample : () -> %
+--R scalarMatrix : R -> %                 someBasis : () -> Vector(%)
+--R square? : % -> Boolean                symmetric? : % -> Boolean
+--R trace : % -> R                        zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?*? : (DirectProduct(n,R),%) -> DirectProduct(n,R)
 --R ?*? : (%,DirectProduct(n,R)) -> DirectProduct(n,R)
@@ -69549,88 +69724,89 @@ LiePolynomial(VarSet:OrderedSet, R:CommutativeRing) : Public == Private where
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
 --R D : (%,NonNegativeInteger) -> % if R has DIFRING
---R D : (%,Symbol) -> % if R has PDRING SYMBOL
---R D : (%,List Symbol) -> % if R has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
+--R D : (%,Symbol) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
 --R D : (%,(R -> R),NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
---R associatorDependence : () -> List Vector R if R has INTDOM
+--R associatorDependence : () -> List(Vector(R)) if R has INTDOM
 --R characteristic : () -> NonNegativeInteger
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R column : (%,Integer) -> DirectProduct(n,R)
---R conditionsForIdempotents : Vector % -> List Polynomial R
---R conditionsForIdempotents : () -> List Polynomial R
---R coordinates : (%,Vector %) -> Vector R
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : Vector % -> Matrix R
+--R conditionsForIdempotents : Vector(%) -> List(Polynomial(R))
+--R conditionsForIdempotents : () -> List(Polynomial(R))
+--R coordinates : (%,Vector(%)) -> Vector(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : Vector(%) -> Matrix(R)
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R determinant : % -> R if R has commutative *
+--R determinant : % -> R if R has commutative(*)
 --R diagonal : % -> DirectProduct(n,R)
 --R differentiate : % -> % if R has DIFRING
 --R differentiate : (%,NonNegativeInteger) -> % if R has DIFRING
---R differentiate : (%,Symbol) -> % if R has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> %
 --R differentiate : (%,(R -> R)) -> %
---R eval : (%,List R,List R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,R,R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,Equation R) -> % if R has EVALAB R and R has SETCAT
---R eval : (%,List Equation R) -> % if R has EVALAB R and R has SETCAT
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,R,R) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R) and R has SETCAT
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R) and R has SETCAT
 --R every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R inverse : % -> Union(%,"failed") if R has FIELD
---R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial R
---R leftMinimalPolynomial : % -> SparseUnivariatePolynomial R if R has INTDOM
+--R leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R)
+--R leftMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if R has INTDOM
 --R leftPower : (%,PositiveInteger) -> %
---R leftRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if R has FIELD
+--R leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if R has FIELD
 --R leftRecip : % -> Union(%,"failed") if R has INTDOM
---R leftRegularRepresentation : (%,Vector %) -> Matrix R
---R leftRegularRepresentation : % -> Matrix R
---R leftTraceMatrix : Vector % -> Matrix R
+--R leftRegularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R leftRegularRepresentation : % -> Matrix(R)
+--R leftTraceMatrix : Vector(%) -> Matrix(R)
 --R leftUnit : () -> Union(%,"failed") if R has INTDOM
---R leftUnits : () -> Union(Record(particular: %,basis: List %),"failed") if R has INTDOM
+--R leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if R has INTDOM
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((R -> R),%) -> % if $ has shallowlyMutable
 --R member? : (R,%) -> Boolean if $ has finiteAggregate and R has SETCAT
---R members : % -> List R if $ has finiteAggregate
---R minordet : % -> R if R has commutative *
+--R members : % -> List(R) if $ has finiteAggregate
+--R minordet : % -> R if R has commutative(*)
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R noncommutativeJordanAlgebra? : () -> Boolean
---R nullSpace : % -> List DirectProduct(n,R) if R has INTDOM
+--R nullSpace : % -> List(DirectProduct(n,R)) if R has INTDOM
 --R nullity : % -> NonNegativeInteger if R has INTDOM
---R parts : % -> List R if $ has finiteAggregate
+--R parts : % -> List(R) if $ has finiteAggregate
 --R plenaryPower : (%,PositiveInteger) -> %
 --R rank : % -> NonNegativeInteger if R has INTDOM
---R reducedSystem : Matrix % -> Matrix R
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
---R represents : (Vector R,Vector %) -> %
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R reducedSystem : Matrix(%) -> Matrix(R)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
+--R represents : (Vector(R),Vector(%)) -> %
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retract : % -> Integer if R has RETRACT(INT)
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial R
---R rightMinimalPolynomial : % -> SparseUnivariatePolynomial R if R has INTDOM
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(R)
+--R rightDiscriminant : Vector(%) -> R
+--R rightMinimalPolynomial : % -> SparseUnivariatePolynomial(R) if R has INTDOM
 --R rightPower : (%,PositiveInteger) -> %
---R rightRankPolynomial : () -> SparseUnivariatePolynomial Polynomial R if R has FIELD
+--R rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(R)) if R has FIELD
 --R rightRecip : % -> Union(%,"failed") if R has INTDOM
---R rightRegularRepresentation : (%,Vector %) -> Matrix R
---R rightRegularRepresentation : % -> Matrix R
---R rightTraceMatrix : Vector % -> Matrix R
+--R rightRegularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R rightRegularRepresentation : % -> Matrix(R)
+--R rightTraceMatrix : Vector(%) -> Matrix(R)
 --R rightUnit : () -> Union(%,"failed") if R has INTDOM
---R rightUnits : () -> Union(Record(particular: %,basis: List %),"failed") if R has INTDOM
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if R has INTDOM
 --R row : (%,Integer) -> DirectProduct(n,R)
 --R rowEchelon : % -> % if R has EUCDOM
 --R size? : (%,NonNegativeInteger) -> Boolean
---R structuralConstants : Vector % -> Vector Matrix R
---R structuralConstants : () -> Vector Matrix R
+--R structuralConstants : Vector(%) -> Vector(Matrix(R))
+--R structuralConstants : () -> Vector(Matrix(R))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit : () -> Union(%,"failed") if R has INTDOM
 --R
@@ -69900,7 +70076,7 @@ Dx := D()
 --R 
 --R
 --R   (2)  D
---IType: LinearOrdinaryDifferentialOperator(Expression Integer,theMap LAMBDA-CLOSURE(NIL,NIL,NIL,G1404 envArg,SPADCALL(G1404,QUOTE x,ELT(*1;anonymousFunction;0;frame0;internal;MV,0))))
+--IType: LinearOrdinaryDifferentialOperator(Expression(Integer),...
 --E 2
 
 --S 3 of 16
@@ -69912,7 +70088,7 @@ Dop:= Dx^3 + G/x^2*Dx + H/x^3 - 1
 --R   (3)  D  + -- D + --------
 --R              2         3
 --R             x         x
---IType: LinearOrdinaryDifferentialOperator(Expression Integer,theMap LAMBDA-CLOSURE(NIL,NIL,NIL,G1404 envArg,SPADCALL(G1404,QUOTE x,ELT(*1;anonymousFunction;0;frame0;internal;MV,0))))
+--IType: LinearOrdinaryDifferentialOperator(Expression(Integer),...
 --E 3
 
 --S 4 of 16
@@ -69967,21 +70143,21 @@ leq == solve(pans1,[subscript(s,[i]) for i in 1..n])
 leq
 --R 
 --R   Compiling body of rule n to compute value of type PositiveInteger 
---R   Compiling body of rule phi to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi1 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi2 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi3 to compute value of type Polynomial 
---R      Integer 
+--R   Compiling body of rule phi to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi1 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi2 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi3 to compute value of type Polynomial(
+--R      Integer) 
 --R   Compiling body of rule pans to compute value of type 
---R      UnivariatePolynomial(x,Polynomial Integer) 
---R   Compiling body of rule pans1 to compute value of type List 
---R      Polynomial Integer 
---R   Compiling body of rule leq to compute value of type List List 
---R      Equation Fraction Polynomial Integer 
---I   Compiling function G3349 with type Integer -> Boolean 
+--R      UnivariatePolynomial(x,Polynomial(Integer)) 
+--R   Compiling body of rule pans1 to compute value of type List(
+--R      Polynomial(Integer)) 
+--R   Compiling body of rule leq to compute value of type List(List(
+--R      Equation(Fraction(Polynomial(Integer))))) 
+--I   Compiling function G3491 with type Integer -> Boolean 
 --R
 --R   (12)
 --R                           2                                3        2
@@ -70011,20 +70187,20 @@ n==4
 leq
 --R 
 --R   Compiling body of rule n to compute value of type PositiveInteger 
---R   Compiling body of rule phi to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi1 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi2 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi3 to compute value of type Polynomial 
---R      Integer 
+--R   Compiling body of rule phi to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi1 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi2 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi3 to compute value of type Polynomial(
+--R      Integer) 
 --R   Compiling body of rule pans to compute value of type 
---R      UnivariatePolynomial(x,Polynomial Integer) 
---R   Compiling body of rule pans1 to compute value of type List 
---R      Polynomial Integer 
---R   Compiling body of rule leq to compute value of type List List 
---R      Equation Fraction Polynomial Integer 
+--R      UnivariatePolynomial(x,Polynomial(Integer)) 
+--R   Compiling body of rule pans1 to compute value of type List(
+--R      Polynomial(Integer)) 
+--R   Compiling body of rule leq to compute value of type List(List(
+--R      Equation(Fraction(Polynomial(Integer))))) 
 --R
 --R   (14)
 --R   [
@@ -70051,7 +70227,7 @@ leq
 --R           1944
 --R       ]
 --R     ]
---R                         Type: List List Equation Fraction Polynomial Integer
+--R                    Type: List(List(Equation(Fraction(Polynomial(Integer)))))
 --E 14
 
 --S 15 of 16
@@ -70073,20 +70249,20 @@ n==7
 leq
 --R 
 --R   Compiling body of rule n to compute value of type PositiveInteger 
---R   Compiling body of rule phi to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi1 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi2 to compute value of type Expression 
---R      Integer 
---R   Compiling body of rule phi3 to compute value of type Polynomial 
---R      Integer 
+--R   Compiling body of rule phi to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi1 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi2 to compute value of type Expression(
+--R      Integer) 
+--R   Compiling body of rule phi3 to compute value of type Polynomial(
+--R      Integer) 
 --R   Compiling body of rule pans to compute value of type 
---R      UnivariatePolynomial(x,Polynomial Integer) 
---R   Compiling body of rule pans1 to compute value of type List 
---R      Polynomial Integer 
---R   Compiling body of rule leq to compute value of type List List 
---R      Equation Fraction Polynomial Integer 
+--R      UnivariatePolynomial(x,Polynomial(Integer)) 
+--R   Compiling body of rule pans1 to compute value of type List(
+--R      Polynomial(Integer)) 
+--R   Compiling body of rule leq to compute value of type List(List(
+--R      Equation(Fraction(Polynomial(Integer))))) 
 --R
 --R   (16)
 --R   [
@@ -70486,7 +70662,7 @@ LinearOrdinaryDifferentialOperator(A:Ring, diff: A -> A):
 RFZ := Fraction UnivariatePolynomial('x, Integer)
 --R 
 --R
---R   (1)  Fraction UnivariatePolynomial(x,Integer)
+--R   (1)  Fraction(UnivariatePolynomial(x,Integer))
 --R                                                                 Type: Domain
 --E 1
 
@@ -70495,7 +70671,7 @@ x : RFZ := 'x
 --R 
 --R
 --R   (2)  x
---R                               Type: Fraction UnivariatePolynomial(x,Integer)
+--R                              Type: Fraction(UnivariatePolynomial(x,Integer))
 --E 2
 
 --S 3 of 20
@@ -70503,7 +70679,7 @@ Dx : LODO1 RFZ := D()
 --R 
 --R
 --R   (3)  D
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 3
 
 --S 4 of 20
@@ -70513,7 +70689,7 @@ b : LODO1 RFZ := 3*x**2*Dx**2 + 2*Dx + 1/x
 --R          2 2        1
 --R   (4)  3x D  + 2D + -
 --R                     x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 4
 
 --S 5 of 20
@@ -70523,7 +70699,7 @@ a : LODO1 RFZ := b*(5*x*Dx + 7)
 --R           3 3       2        2         7
 --R   (5)  15x D  + (51x  + 10x)D  + 29D + -
 --R                                        x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 5
 
 --S 6 of 20
@@ -70535,7 +70711,7 @@ p := x**2 + 1/x**2
 --R   (6)  ------
 --R           2
 --R          x
---R                               Type: Fraction UnivariatePolynomial(x,Integer)
+--R                              Type: Fraction(UnivariatePolynomial(x,Integer))
 --E 6
 
 --S 7 of 20
@@ -70547,7 +70723,7 @@ p := x**2 + 1/x**2
 --R   (7)  ------------------
 --R                 4
 --R                x
---R                               Type: Fraction UnivariatePolynomial(x,Integer)
+--R                              Type: Fraction(UnivariatePolynomial(x,Integer))
 --E 7
 
 --S 8 of 20
@@ -70555,7 +70731,7 @@ ld := leftDivide(a,b)
 --R 
 --R
 --R   (8)  [quotient= 5x D + 7,remainder= 0]
---RType: Record(quotient: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer),remainder: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer))
+--IType: Record(quotient: LinearOrdinaryDifferentialOperator1(Fraction(...
 --E 8
 
 --S 9 of 20
@@ -70565,7 +70741,7 @@ a = b * ld.quotient + ld.remainder
 --R           3 3       2        2         7     3 3       2        2         7
 --R   (9)  15x D  + (51x  + 10x)D  + 29D + -= 15x D  + (51x  + 10x)D  + 29D + -
 --R                                        x                                  x
---RType: Equation LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: Equation(LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer))))
 --E 9
 
 --S 10 of 20
@@ -70575,7 +70751,7 @@ rd := rightDivide(a,b)
 --R                                              5
 --R   (10)  [quotient= 5x D + 7,remainder= 10D + -]
 --R                                              x
---RType: Record(quotient: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer),remainder: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer))
+--IType: Record(quotient: LinearOrdinaryDifferentialOperator1(...
 --E 10
 
 --S 11 of 20
@@ -70585,7 +70761,7 @@ a = rd.quotient * b + rd.remainder
 --R            3 3       2        2         7     3 3       2        2         7
 --R   (11)  15x D  + (51x  + 10x)D  + 29D + -= 15x D  + (51x  + 10x)D  + 29D + -
 --R                                         x                                  x
---RType: Equation LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: Equation(LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer))))
 --E 11
 
 --S 12 of 20
@@ -70593,7 +70769,7 @@ rightQuotient(a,b)
 --R 
 --R
 --R   (12)  5x D + 7
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 12
 
 --S 13 of 20
@@ -70603,7 +70779,7 @@ rightRemainder(a,b)
 --R               5
 --R   (13)  10D + -
 --R               x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 13
 
 --S 14 of 20
@@ -70611,7 +70787,7 @@ leftExactQuotient(a,b)
 --R 
 --R
 --R   (14)  5x D + 7
---RType: Union(LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer),...)
+--RType: Union(LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer))),...)
 --E 14
 
 --S 15 of 20
@@ -70621,7 +70797,7 @@ e := leftGcd(a,b)
 --R           2 2        1
 --R   (15)  3x D  + 2D + -
 --R                      x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 15
 
 --S 16 of 20
@@ -70629,7 +70805,7 @@ leftRemainder(a, e)
 --R 
 --R
 --R   (16)  0
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 16
 
 --S 17 of 20
@@ -70639,7 +70815,7 @@ rightRemainder(a, e)
 --R               5
 --R   (17)  10D + -
 --R               x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 17
 
 --S 18 of 20
@@ -70649,7 +70825,7 @@ f := rightLcm(a,b)
 --R            3 3       2        2         7
 --R   (18)  15x D  + (51x  + 10x)D  + 29D + -
 --R                                         x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 18
 
 --S 19 of 20
@@ -70659,7 +70835,7 @@ rightRemainder(f, b)
 --R               5
 --R   (19)  10D + -
 --R               x
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 19
 
 --S 20 of 20
@@ -70667,7 +70843,7 @@ leftRemainder(f, b)
 --R 
 --R
 --R   (20)  0
---RType: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(x,Integer)
+--RType: LinearOrdinaryDifferentialOperator1(Fraction(UnivariatePolynomial(x,Integer)))
 --E 20
 )spool
 )lisp (bye)
@@ -70968,7 +71144,7 @@ LinearOrdinaryDifferentialOperator1(A:DifferentialRing) ==
 Q  := Fraction Integer
 --R 
 --R
---R   (1)  Fraction Integer
+--R   (1)  Fraction(Integer)
 --R                                                                 Type: Domain
 --E 1
 
@@ -70976,7 +71152,7 @@ Q  := Fraction Integer
 PQ := UnivariatePolynomial('x, Q)
 --R 
 --R
---R   (2)  UnivariatePolynomial(x,Fraction Integer)
+--R   (2)  UnivariatePolynomial(x,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 2
 
@@ -70985,7 +71161,7 @@ x: PQ := 'x
 --R 
 --R
 --R   (3)  x
---R                               Type: UnivariatePolynomial(x,Fraction Integer)
+--R                              Type: UnivariatePolynomial(x,Fraction(Integer))
 --E 3
 
 --S 4 of 26
@@ -70993,7 +71169,7 @@ Dx: LODO2(Q, PQ) := D()
 --R 
 --R
 --R   (4)  D
---RType: LinearOrdinaryDifferentialOperator2(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: LinearOrdinaryDifferentialOperator2(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 4
 
 --S 5 of 26
@@ -71001,7 +71177,7 @@ a := Dx  + 1
 --R 
 --R
 --R   (5)  D + 1
---RType: LinearOrdinaryDifferentialOperator2(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: LinearOrdinaryDifferentialOperator2(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 5
 
 --S 6 of 26
@@ -71011,7 +71187,7 @@ b := a + 1/2*Dx**2 - 1/2
 --R        1  2       1
 --R   (6)  - D  + D + -
 --R        2          2
---RType: LinearOrdinaryDifferentialOperator2(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: LinearOrdinaryDifferentialOperator2(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 6
 
 --S 7 of 26
@@ -71021,7 +71197,7 @@ p := 4*x**2 + 2/3
 --R          2   2
 --R   (7)  4x  + -
 --R              3
---R                               Type: UnivariatePolynomial(x,Fraction Integer)
+--R                              Type: UnivariatePolynomial(x,Fraction(Integer))
 --E 7
 
 --S 8 of 26
@@ -71031,7 +71207,7 @@ a p
 --R          2        2
 --R   (8)  4x  + 8x + -
 --R                   3
---R                               Type: UnivariatePolynomial(x,Fraction Integer)
+--R                              Type: UnivariatePolynomial(x,Fraction(Integer))
 --E 8
 
 --S 9 of 26
@@ -71041,7 +71217,7 @@ a p
 --R          2         37    2         37
 --R   (9)  2x  + 12x + --= 2x  + 12x + --
 --R                     3               3
---R                      Type: Equation UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Equation(UnivariatePolynomial(x,Fraction(Integer)))
 --E 9
 
 --S 10 of 26
@@ -71051,7 +71227,7 @@ c := (1/9)*b*(a + b)^2
 --R          1  6    5  5   13  4   19  3   79  2    7     1
 --R   (10)  -- D  + -- D  + -- D  + -- D  + -- D  + -- D + -
 --R         72      36      24      18      72      12     8
---RType: LinearOrdinaryDifferentialOperator2(Fraction Integer,UnivariatePolynomial(x,Fraction Integer))
+--RType: LinearOrdinaryDifferentialOperator2(Fraction(Integer),UnivariatePolynomial(x,Fraction(Integer)))
 --E 10
 
 --S 11 of 26
@@ -71061,7 +71237,7 @@ c := (1/9)*b*(a + b)^2
 --R           2   44     541
 --R   (11)  3x  + -- x + ---
 --R                3      36
---R                               Type: UnivariatePolynomial(x,Fraction Integer)
+--R                              Type: UnivariatePolynomial(x,Fraction(Integer))
 --E 11
 )clear all
 --S 12 of 26
@@ -71130,7 +71306,7 @@ p:Vect := directProduct [3*x^2+1,2*x,7*x^3+2*x]
 --R
 --R           2          3
 --R   (7)  [3x  + 1,2x,7x  + 2x]
---RType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer))
+--IType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),...
 --E 18
 
 --S 19 of 26
@@ -71139,7 +71315,7 @@ q: Vect := m * p
 --R
 --R           4    2        5     2        5     3
 --R   (8)  [3x  + x  + 2x,2x  + 3x  + 1,28x  + 8x ]
---RType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer))
+--IType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),...
 --E 19
 
 --S 20 of 26
@@ -71147,7 +71323,7 @@ Dx : Modo := D()
 --R 
 --R
 --R   (9)  D
---RType: LinearOrdinaryDifferentialOperator2(SquareMatrix(3,UnivariatePolynomial(x,Integer)),DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer)))
+--IType: LinearOrdinaryDifferentialOperator2(SquareMatrix(...
 --E 20
 
 --S 21 of 26
@@ -71162,7 +71338,7 @@ a : Modo := Dx  + m
 --R             |           |
 --R             |          2|
 --R             +0   0   4x +
---RType: LinearOrdinaryDifferentialOperator2(SquareMatrix(3,UnivariatePolynomial(x,Integer)),DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer)))
+--IType: LinearOrdinaryDifferentialOperator2(SquareMatrix(...
 --E 21
 
 --S 22 of 26
@@ -71177,7 +71353,7 @@ b : Modo := m*Dx  + 1
 --R         |           |    +0  0  1+
 --R         |          2|
 --R         +0   0   4x +
---RType: LinearOrdinaryDifferentialOperator2(SquareMatrix(3,UnivariatePolynomial(x,Integer)),DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer)))
+--IType: LinearOrdinaryDifferentialOperator2(SquareMatrix(...
 --E 22
 
 --S 23 of 26
@@ -71193,7 +71369,7 @@ c := a*b
 --R   |           |     |                                        |    |           |
 --R   |          2|     |                              4         |    |          2|
 --R   +0   0   4x +     +     0            0        16x  + 8x + 1+    +0   0   4x +
---RType: LinearOrdinaryDifferentialOperator2(SquareMatrix(3,UnivariatePolynomial(x,Integer)),DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer)))
+--IType: LinearOrdinaryDifferentialOperator2(SquareMatrix(3,...
 --E 23
 
 --S 24 of 26
@@ -71202,7 +71378,7 @@ a p
 --R
 --R            4    2        5     2        5     3      2
 --R   (13)  [3x  + x  + 8x,2x  + 3x  + 3,28x  + 8x  + 21x  + 2]
---RType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer))
+--IType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),...
 --E 24
 
 --S 25 of 26
@@ -71211,7 +71387,7 @@ b p
 --R
 --R            3     2       4         4     3     2
 --R   (14)  [6x  + 3x  + 3,2x  + 8x,84x  + 7x  + 8x  + 2x]
---RType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer))
+--IType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),...
 --E 25
 
 --S 26 of 26
@@ -71225,7 +71401,7 @@ b p
 --R    10x   + 10x  + 12x  + 92x  + 6x  + 32x  + 72x  + 28x  + 49x  + 32x + 19,
 --R         8       7        6        5       4       3      2
 --R    2240x  + 224x  + 1280x  + 3508x  + 492x  + 751x  + 98x  + 18x + 4]
---RType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),SquareMatrix(3,UnivariatePolynomial(x,Integer)),UnivariatePolynomial(x,Integer))
+--IType: DirectProductMatrixModule(3,UnivariatePolynomial(x,Integer),...
 --E 26
 )spool
 )lisp (bye)
@@ -71590,7 +71766,7 @@ LinearOrdinaryDifferentialOperator2(A, M): Exports == Implementation where
 --R 
 --R
 --R   (1)  [2,4,5,6]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 1
 
 --S 2 of 34
@@ -71598,7 +71774,7 @@ LinearOrdinaryDifferentialOperator2(A, M): Exports == Implementation where
 --R 
 --R
 --R   (2)  [1]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 2
 
 --S 3 of 34
@@ -71606,7 +71782,7 @@ list(1)
 --R 
 --R
 --R   (3)  [1]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 3
 
 --S 4 of 34
@@ -71614,7 +71790,7 @@ append([1,2,3],[5,6,7])
 --R 
 --R
 --R   (4)  [1,2,3,5,6,7]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 4
 
 --S 5 of 34
@@ -71622,7 +71798,7 @@ cons(10,[9,8,7])
 --R 
 --R
 --R   (5)  [10,9,8,7]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 5
 
 --S 6 of 34
@@ -71646,7 +71822,7 @@ k := [4,3,7,3,8,5,9,2]
 --R 
 --R
 --R   (8)  [4,3,7,3,8,5,9,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 8
 
 --S 9 of 34
@@ -71718,7 +71894,7 @@ k := [4,3,7,3,8,5,9,2]
 --R 
 --R
 --R   (17)  [4,3,7,3,8,5,9,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 17
 
 --S 18 of 34
@@ -71734,7 +71910,7 @@ k
 --R 
 --R
 --R   (19)  [999,3,7,3,8,5,9,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 19
 
 --S 20 of 34
@@ -71742,7 +71918,7 @@ k := [1,2]
 --R 
 --R
 --R   (20)  [1,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 20
 
 --S 21 of 34
@@ -71750,7 +71926,7 @@ m := cons(0,k)
 --R 
 --R
 --R   (21)  [0,1,2]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 21
 
 --S 22 of 34
@@ -71766,7 +71942,7 @@ m
 --R 
 --R
 --R   (23)  [0,99,2]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 23
 
 --S 24 of 34
@@ -71774,7 +71950,7 @@ k
 --R 
 --R
 --R   (24)  [99,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 24
 
 --S 25 of 34
@@ -71782,7 +71958,7 @@ k := [1,2,3]
 --R 
 --R
 --R   (25)  [1,2,3]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 25
 
 --S 26 of 34
@@ -71790,7 +71966,7 @@ rest k
 --R 
 --R
 --R   (26)  [2,3]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 26
 
 --S 27 of 34
@@ -71798,7 +71974,7 @@ removeDuplicates [4,3,4,3,5,3,4]
 --R 
 --R
 --R   (27)  [4,3,5]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 27
 
 --S 28 of 34
@@ -71806,7 +71982,7 @@ reverse [1,2,3,4,5,6]
 --R 
 --R
 --R   (28)  [6,5,4,3,2,1]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 28
 
 --S 29 of 34
@@ -71830,7 +72006,7 @@ reverse(rest(reverse(k)))
 --R 
 --R
 --R   (31)  [1,2]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 31
 
 --S 32 of 34
@@ -71838,7 +72014,7 @@ reverse(rest(reverse(k)))
 --R 
 --R
 --R   (32)  [1..3,10..10,20..23]
---R                                           Type: List Segment PositiveInteger
+--R                                         Type: List(Segment(PositiveInteger))
 --E 32
 
 --S 33 of 34
@@ -71846,7 +72022,7 @@ expand [1..3,10,20..23]
 --R 
 --R
 --R   (33)  [1,2,3,10,20,21,22,23]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 33
 
 --S 34 of 34
@@ -71854,7 +72030,7 @@ expand [1..]
 --R 
 --R
 --R   (34)  [1,2,3,4,5,6,7,8,9,10,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 34
 )spool
 )lisp (bye)
@@ -72406,6 +72582,7 @@ List(S:Type): Exports == Implementation where
 
 --S 1 of 1
 )show ListMonoidOps
+--R 
 --R ListMonoidOps(S: SetCategory,E: AbelianMonoid,un: E)  is a domain constructor
 --R Abbreviation for ListMonoidOps is LMOPS 
 --R This constructor is not exposed in this frame.
@@ -72423,8 +72600,8 @@ List(S:Type): Exports == Implementation where
 --R reverse! : % -> %                     rightMult : (%,S) -> %
 --R size : % -> NonNegativeInteger        ?~=? : (%,%) -> Boolean
 --R commutativeEquality : (%,%) -> Boolean
---R listOfMonoms : % -> List Record(gen: S,exp: E)
---R makeMulti : List Record(gen: S,exp: E) -> %
+--R listOfMonoms : % -> List(Record(gen: S,exp: E))
+--R makeMulti : List(Record(gen: S,exp: E)) -> %
 --R outputForm : (%,((OutputForm,OutputForm) -> OutputForm),((OutputForm,OutputForm) -> OutputForm),Integer) -> OutputForm
 --R retractIfCan : % -> Union(S,"failed")
 --R
@@ -72654,14 +72831,15 @@ ListMonoidOps(S, E, un): Exports == Implementation where
 
 --S 1 of 1
 )show ListMultiDictionary
---R ListMultiDictionary S: SetCategory  is a domain constructor
+--R 
+--R ListMultiDictionary(S: SetCategory)  is a domain constructor
 --R Abbreviation for ListMultiDictionary is LMDICT 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for LMDICT 
 --R
 --R------------------------------- Operations --------------------------------
---R bag : List S -> %                     construct : List S -> %
---R copy : % -> %                         dictionary : List S -> %
+--R bag : List(S) -> %                    construct : List(S) -> %
+--R copy : % -> %                         dictionary : List(S) -> %
 --R dictionary : () -> %                  duplicates? : % -> Boolean
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
@@ -72672,14 +72850,14 @@ ListMonoidOps(S, E, un): Exports == Implementation where
 --R ?=? : (%,%) -> Boolean if S has SETCAT
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if S has SETCAT
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R duplicates : % -> List Record(entry: S,count: NonNegativeInteger)
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R duplicates : % -> List(Record(entry: S,count: NonNegativeInteger))
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
 --R hash : % -> SingleInteger if S has SETCAT
@@ -72688,9 +72866,9 @@ ListMonoidOps(S, E, un): Exports == Implementation where
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S,S) -> S if $ has finiteAggregate and S has SETCAT
@@ -72931,7 +73109,8 @@ ListMultiDictionary(S:SetCategory): EE == II where
 
 --S 1 of 1
 )show LocalAlgebra
---R LocalAlgebra(A: Algebra R,R: CommutativeRing,S: SubsetCategory(Monoid,R))  is a domain constructor
+--R 
+--R LocalAlgebra(A: Algebra(R),R: CommutativeRing,S: SubsetCategory(Monoid,R))  is a domain constructor
 --R Abbreviation for LocalAlgebra is LA 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for LA 
@@ -73076,7 +73255,8 @@ LocalAlgebra(A: Algebra R,
 
 --S 1 of 1
 )show Localize
---R Localize(M: Module R,R: CommutativeRing,S: SubsetCategory(Monoid,R))  is a domain constructor
+--R 
+--R Localize(M: Module(R),R: CommutativeRing,S: SubsetCategory(Monoid,R))  is a domain constructor
 --R Abbreviation for Localize is LO 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for LO 
@@ -73260,7 +73440,7 @@ c:Symbol :='c
 lword:= LyndonWord(Symbol)
 --R 
 --R
---R   (4)  LyndonWord Symbol
+--R   (4)  LyndonWord(Symbol)
 --R                                                                 Type: Domain
 --E 4
 
@@ -73268,7 +73448,7 @@ lword:= LyndonWord(Symbol)
 magma := Magma(Symbol)
 --R 
 --R
---R   (5)  Magma Symbol
+--R   (5)  Magma(Symbol)
 --R                                                                 Type: Domain
 --E 5
 
@@ -73276,7 +73456,7 @@ magma := Magma(Symbol)
 word := OrderedFreeMonoid(Symbol)
 --R 
 --R
---R   (6)  OrderedFreeMonoid Symbol
+--R   (6)  OrderedFreeMonoid(Symbol)
 --R                                                                 Type: Domain
 --E 6
 
@@ -73288,7 +73468,7 @@ LyndonWordsList1([a,b,c],3)$lword
 --R   [[[a],[b],[c]], [[a b],[a c],[b c]],
 --R       2     2       2                      2    2       2
 --R    [[a b],[a c],[a b ],[a b c],[a c b],[a c ],[b c],[b c ]]]
---R                             Type: OneDimensionalArray List LyndonWord Symbol
+--R                          Type: OneDimensionalArray(List(LyndonWord(Symbol)))
 --E 7
 
 --S 8 of 22
@@ -73300,7 +73480,7 @@ LyndonWordsList([a,b,c],3)$lword
 --R   [[a], [b], [c], [a b], [a c], [b c], [a b], [a c], [a b ], [a b c], [a c b],
 --R        2     2        2
 --R    [a c ], [b c], [b c ]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 8
 
 --S 9 of 22
@@ -73312,7 +73492,7 @@ lw := LyndonWordsList([a,b],5)$lword
 --R   [[a], [b], [a b], [a b], [a b ], [a b], [a b ], [a b ], [a b], [a b ],
 --R      2          2 3           2       4
 --R    [a b a b], [a b ], [a b a b ], [a b ]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 9
 
 --S 10 of 22
@@ -73321,7 +73501,7 @@ w1 : word := lw.4 :: word
 --R
 --R          2
 --R   (10)  a b
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 10
 
 --S 11 of 22
@@ -73330,7 +73510,7 @@ w2 : word := lw.5 :: word
 --R
 --R            2
 --R   (11)  a b
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 11
 
 --S 12 of 22
@@ -73338,7 +73518,7 @@ factor(a::word)$lword
 --R 
 --R
 --R   (12)  [[a]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 12
 
 --S 13 of 22
@@ -73347,7 +73527,7 @@ factor(w1*w2)$lword
 --R
 --R            2     2
 --R   (13)  [[a b a b ]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 13
 
 --S 14 of 22
@@ -73356,7 +73536,7 @@ factor(w2*w2)$lword
 --R
 --R              2      2
 --R   (14)  [[a b ],[a b ]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 14
 
 --S 15 of 22
@@ -73365,7 +73545,7 @@ factor(w2*w1)$lword
 --R
 --R              2    2
 --R   (15)  [[a b ],[a b]]
---R                                                 Type: List LyndonWord Symbol
+--R                                               Type: List(LyndonWord(Symbol))
 --E 15
 
 --S 16 of 22
@@ -73398,7 +73578,7 @@ lyndonIfCan(w1)$lword
 --R
 --R           2
 --R   (19)  [a b]
---R                                           Type: Union(LyndonWord Symbol,...)
+--R                                          Type: Union(LyndonWord(Symbol),...)
 --E 19
 
 --S 20 of 22
@@ -73415,7 +73595,7 @@ lyndon(w1)$lword
 --R
 --R           2
 --R   (21)  [a b]
---R                                                      Type: LyndonWord Symbol
+--R                                                     Type: LyndonWord(Symbol)
 --E 21
 
 --S 22 of 22
@@ -73424,7 +73604,7 @@ lyndon(w1*w2)$lword
 --R
 --R           2     2
 --R   (22)  [a b a b ]
---R                                                      Type: LyndonWord Symbol
+--R                                                     Type: LyndonWord(Symbol)
 --E 22
 )spool
 )lisp (bye)
@@ -73780,6 +73960,7 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 
 --S 1 of 1
 )show MachineComplex
+--R 
 --R MachineComplex  is a domain constructor
 --R Abbreviation for MachineComplex is MCMPLX 
 --R This constructor is exposed in this frame.
@@ -73795,8 +73976,8 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : % -> Complex Float
---R coerce : Complex Integer -> %         coerce : Complex Float -> %
+--R basis : () -> Vector(%)               coerce : % -> Complex(Float)
+--R coerce : Complex(Integer) -> %        coerce : Complex(Float) -> %
 --R coerce : MachineFloat -> %            coerce : Integer -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              conjugate : % -> %
@@ -73811,20 +73992,20 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R trace : % -> MachineFloat             unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R ?*? : (%,Fraction Integer) -> % if MachineFloat has FIELD
---R ?*? : (Fraction Integer,%) -> % if MachineFloat has FIELD
+--R ?*? : (%,Fraction(Integer)) -> % if MachineFloat has FIELD
+--R ?*? : (Fraction(Integer),%) -> % if MachineFloat has FIELD
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,Integer) -> % if MachineFloat has FIELD
---R ?**? : (%,Fraction Integer) -> % if MachineFloat has RADCAT and MachineFloat has TRANFUN
+--R ?**? : (%,Fraction(Integer)) -> % if MachineFloat has RADCAT and MachineFloat has TRANFUN
 --R ?**? : (%,%) -> % if MachineFloat has TRANFUN
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,%) -> % if MachineFloat has FIELD
 --R D : % -> % if MachineFloat has DIFRING
 --R D : (%,NonNegativeInteger) -> % if MachineFloat has DIFRING
---R D : (%,Symbol) -> % if MachineFloat has PDRING SYMBOL
---R D : (%,List Symbol) -> % if MachineFloat has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if MachineFloat has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if MachineFloat has PDRING SYMBOL
+--R D : (%,Symbol) -> % if MachineFloat has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if MachineFloat has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if MachineFloat has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if MachineFloat has PDRING(SYMBOL)
 --R D : (%,(MachineFloat -> MachineFloat),NonNegativeInteger) -> %
 --R D : (%,(MachineFloat -> MachineFloat)) -> %
 --R ?^? : (%,Integer) -> % if MachineFloat has FIELD
@@ -73844,27 +74025,27 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R atan : % -> % if MachineFloat has TRANFUN
 --R atanh : % -> % if MachineFloat has TRANFUN
 --R characteristic : () -> NonNegativeInteger
---R characteristicPolynomial : % -> SparseUnivariatePolynomial MachineFloat
+--R characteristicPolynomial : % -> SparseUnivariatePolynomial(MachineFloat)
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has CHARNZ
 --R charthRoot : % -> % if MachineFloat has FFIELDC
---R coerce : Fraction Integer -> % if MachineFloat has FIELD or MachineFloat has RETRACT FRAC INT
---R coerce : Complex MachineInteger -> %
---R coerce : Complex MachineFloat -> %
+--R coerce : Fraction(Integer) -> % if MachineFloat has FIELD or MachineFloat has RETRACT(FRAC(INT))
+--R coerce : Complex(MachineInteger) -> %
+--R coerce : Complex(MachineFloat) -> %
 --R complex : (MachineFloat,MachineFloat) -> %
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FFIELDC
---R convert : % -> Vector MachineFloat
---R convert : Vector MachineFloat -> %
---R convert : % -> SparseUnivariatePolynomial MachineFloat
---R convert : SparseUnivariatePolynomial MachineFloat -> %
---R convert : % -> Pattern Integer if MachineFloat has KONVERT PATTERN INT
---R convert : % -> Pattern Float if MachineFloat has KONVERT PATTERN FLOAT
---R convert : % -> Complex Float if MachineFloat has REAL
---R convert : % -> Complex DoubleFloat if MachineFloat has REAL
---R convert : % -> InputForm if MachineFloat has KONVERT INFORM
---R coordinates : (%,Vector %) -> Vector MachineFloat
---R coordinates : (Vector %,Vector %) -> Matrix MachineFloat
---R coordinates : % -> Vector MachineFloat
---R coordinates : Vector % -> Matrix MachineFloat
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FFIELDC
+--R convert : % -> Vector(MachineFloat)
+--R convert : Vector(MachineFloat) -> %
+--R convert : % -> SparseUnivariatePolynomial(MachineFloat)
+--R convert : SparseUnivariatePolynomial(MachineFloat) -> %
+--R convert : % -> Pattern(Integer) if MachineFloat has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if MachineFloat has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Complex(Float) if MachineFloat has REAL
+--R convert : % -> Complex(DoubleFloat) if MachineFloat has REAL
+--R convert : % -> InputForm if MachineFloat has KONVERT(INFORM)
+--R coordinates : (%,Vector(%)) -> Vector(MachineFloat)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(MachineFloat)
+--R coordinates : % -> Vector(MachineFloat)
+--R coordinates : Vector(%) -> Matrix(MachineFloat)
 --R cos : % -> % if MachineFloat has TRANFUN
 --R cosh : % -> % if MachineFloat has TRANFUN
 --R cot : % -> % if MachineFloat has TRANFUN
@@ -73872,58 +74053,58 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R createPrimitiveElement : () -> % if MachineFloat has FFIELDC
 --R csc : % -> % if MachineFloat has TRANFUN
 --R csch : % -> % if MachineFloat has TRANFUN
---R definingPolynomial : () -> SparseUnivariatePolynomial MachineFloat
---R derivationCoordinates : (Vector %,(MachineFloat -> MachineFloat)) -> Matrix MachineFloat if MachineFloat has FIELD
+--R definingPolynomial : () -> SparseUnivariatePolynomial(MachineFloat)
+--R derivationCoordinates : (Vector(%),(MachineFloat -> MachineFloat)) -> Matrix(MachineFloat) if MachineFloat has FIELD
 --R differentiate : % -> % if MachineFloat has DIFRING
 --R differentiate : (%,NonNegativeInteger) -> % if MachineFloat has DIFRING
---R differentiate : (%,Symbol) -> % if MachineFloat has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if MachineFloat has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if MachineFloat has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if MachineFloat has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if MachineFloat has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if MachineFloat has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if MachineFloat has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if MachineFloat has PDRING(SYMBOL)
 --R differentiate : (%,(MachineFloat -> MachineFloat),NonNegativeInteger) -> %
 --R differentiate : (%,(MachineFloat -> MachineFloat)) -> %
 --R discreteLog : % -> NonNegativeInteger if MachineFloat has FFIELDC
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if MachineFloat has FFIELDC
---R discriminant : Vector % -> MachineFloat
+--R discriminant : Vector(%) -> MachineFloat
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if MachineFloat has EUCDOM
 --R ?.? : (%,MachineFloat) -> % if MachineFloat has ELTAB(MFLOAT,MFLOAT)
 --R euclideanSize : % -> NonNegativeInteger if MachineFloat has EUCDOM
---R eval : (%,List MachineFloat,List MachineFloat) -> % if MachineFloat has EVALAB MFLOAT
---R eval : (%,MachineFloat,MachineFloat) -> % if MachineFloat has EVALAB MFLOAT
---R eval : (%,Equation MachineFloat) -> % if MachineFloat has EVALAB MFLOAT
---R eval : (%,List Equation MachineFloat) -> % if MachineFloat has EVALAB MFLOAT
---R eval : (%,List Symbol,List MachineFloat) -> % if MachineFloat has IEVALAB(SYMBOL,MFLOAT)
+--R eval : (%,List(MachineFloat),List(MachineFloat)) -> % if MachineFloat has EVALAB(MFLOAT)
+--R eval : (%,MachineFloat,MachineFloat) -> % if MachineFloat has EVALAB(MFLOAT)
+--R eval : (%,Equation(MachineFloat)) -> % if MachineFloat has EVALAB(MFLOAT)
+--R eval : (%,List(Equation(MachineFloat))) -> % if MachineFloat has EVALAB(MFLOAT)
+--R eval : (%,List(Symbol),List(MachineFloat)) -> % if MachineFloat has IEVALAB(SYMBOL,MFLOAT)
 --R eval : (%,Symbol,MachineFloat) -> % if MachineFloat has IEVALAB(SYMBOL,MFLOAT)
 --R exp : % -> % if MachineFloat has TRANFUN
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if MachineFloat has EUCDOM
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if MachineFloat has EUCDOM
 --R exquo : (%,MachineFloat) -> Union(%,"failed") if MachineFloat has INTDOM
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if MachineFloat has EUCDOM
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if MachineFloat has EUCDOM
---R factor : % -> Factored % if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if MachineFloat has EUCDOM and MachineFloat has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if MachineFloat has EUCDOM and MachineFloat has PFECAT
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if MachineFloat has FFIELDC
+--R factor : % -> Factored(%) if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if MachineFloat has EUCDOM and MachineFloat has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if MachineFloat has EUCDOM and MachineFloat has PFECAT
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if MachineFloat has FFIELDC
 --R gcd : (%,%) -> % if MachineFloat has EUCDOM
---R gcd : List % -> % if MachineFloat has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if MachineFloat has EUCDOM
+--R gcd : List(%) -> % if MachineFloat has EUCDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if MachineFloat has EUCDOM
 --R index : PositiveInteger -> % if MachineFloat has FINITE
 --R init : () -> % if MachineFloat has FFIELDC
 --R inv : % -> % if MachineFloat has FIELD
 --R lcm : (%,%) -> % if MachineFloat has EUCDOM
---R lcm : List % -> % if MachineFloat has EUCDOM
---R lift : % -> SparseUnivariatePolynomial MachineFloat
+--R lcm : List(%) -> % if MachineFloat has EUCDOM
+--R lift : % -> SparseUnivariatePolynomial(MachineFloat)
 --R log : % -> % if MachineFloat has TRANFUN
 --R lookup : % -> PositiveInteger if MachineFloat has FINITE
 --R map : ((MachineFloat -> MachineFloat),%) -> %
---R minimalPolynomial : % -> SparseUnivariatePolynomial MachineFloat if MachineFloat has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if MachineFloat has EUCDOM
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(MachineFloat) if MachineFloat has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if MachineFloat has EUCDOM
 --R nextItem : % -> Union(%,"failed") if MachineFloat has FFIELDC
 --R nthRoot : (%,Integer) -> % if MachineFloat has RADCAT and MachineFloat has TRANFUN
 --R order : % -> PositiveInteger if MachineFloat has FFIELDC
---R order : % -> OnePointCompletion PositiveInteger if MachineFloat has FFIELDC
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if MachineFloat has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if MachineFloat has PATMAB FLOAT
+--R order : % -> OnePointCompletion(PositiveInteger) if MachineFloat has FFIELDC
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if MachineFloat has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if MachineFloat has PATMAB(FLOAT)
 --R pi : () -> % if MachineFloat has TRANFUN
 --R polarCoordinates : % -> Record(r: MachineFloat,phi: MachineFloat) if MachineFloat has RNS and MachineFloat has TRANFUN
 --R prime? : % -> Boolean if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
@@ -73931,26 +74112,26 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R primeFrobenius : % -> % if MachineFloat has FFIELDC
 --R primitive? : % -> Boolean if MachineFloat has FFIELDC
 --R primitiveElement : () -> % if MachineFloat has FFIELDC
---R principalIdeal : List % -> Record(coef: List %,generator: %) if MachineFloat has EUCDOM
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if MachineFloat has EUCDOM
 --R ?quo? : (%,%) -> % if MachineFloat has EUCDOM
 --R random : () -> % if MachineFloat has FINITE
---R rational : % -> Fraction Integer if MachineFloat has INS
+--R rational : % -> Fraction(Integer) if MachineFloat has INS
 --R rational? : % -> Boolean if MachineFloat has INS
---R rationalIfCan : % -> Union(Fraction Integer,"failed") if MachineFloat has INS
---R reduce : SparseUnivariatePolynomial MachineFloat -> %
---R reduce : Fraction SparseUnivariatePolynomial MachineFloat -> Union(%,"failed") if MachineFloat has FIELD
---R reducedSystem : Matrix % -> Matrix Integer if MachineFloat has LINEXP INT
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if MachineFloat has LINEXP INT
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix MachineFloat,vec: Vector MachineFloat)
---R reducedSystem : Matrix % -> Matrix MachineFloat
---R regularRepresentation : (%,Vector %) -> Matrix MachineFloat
---R regularRepresentation : % -> Matrix MachineFloat
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed") if MachineFloat has INS
+--R reduce : SparseUnivariatePolynomial(MachineFloat) -> %
+--R reduce : Fraction(SparseUnivariatePolynomial(MachineFloat)) -> Union(%,"failed") if MachineFloat has FIELD
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if MachineFloat has LINEXP(INT)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if MachineFloat has LINEXP(INT)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(MachineFloat),vec: Vector(MachineFloat))
+--R reducedSystem : Matrix(%) -> Matrix(MachineFloat)
+--R regularRepresentation : (%,Vector(%)) -> Matrix(MachineFloat)
+--R regularRepresentation : % -> Matrix(MachineFloat)
 --R ?rem? : (%,%) -> % if MachineFloat has EUCDOM
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if MachineFloat has FFIELDC
---R represents : (Vector MachineFloat,Vector %) -> %
---R represents : Vector MachineFloat -> %
---R retract : % -> Fraction Integer if MachineFloat has RETRACT FRAC INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if MachineFloat has RETRACT FRAC INT
+--R represents : (Vector(MachineFloat),Vector(%)) -> %
+--R represents : Vector(MachineFloat) -> %
+--R retract : % -> Fraction(Integer) if MachineFloat has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if MachineFloat has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(MachineFloat,"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
 --R sec : % -> % if MachineFloat has TRANFUN
@@ -73959,17 +74140,17 @@ LyndonWord(VarSet:OrderedSet):Public == Private where
 --R sinh : % -> % if MachineFloat has TRANFUN
 --R size : () -> NonNegativeInteger if MachineFloat has FINITE
 --R sizeLess? : (%,%) -> Boolean if MachineFloat has EUCDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if MachineFloat has EUCDOM and MachineFloat has PFECAT
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if MachineFloat has EUCDOM and MachineFloat has PFECAT
 --R sqrt : % -> % if MachineFloat has RADCAT and MachineFloat has TRANFUN
---R squareFree : % -> Factored % if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
+--R squareFree : % -> Factored(%) if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
 --R squareFreePart : % -> % if MachineFloat has EUCDOM and MachineFloat has PFECAT or MachineFloat has FIELD
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if MachineFloat has EUCDOM and MachineFloat has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if MachineFloat has EUCDOM and MachineFloat has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if MachineFloat has FFIELDC
 --R tan : % -> % if MachineFloat has TRANFUN
 --R tanh : % -> % if MachineFloat has TRANFUN
---R traceMatrix : Vector % -> Matrix MachineFloat
---R traceMatrix : () -> Matrix MachineFloat
+--R traceMatrix : Vector(%) -> Matrix(MachineFloat)
+--R traceMatrix : () -> Matrix(MachineFloat)
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
 --E 1
@@ -74201,55 +74382,56 @@ MachineComplex():Exports == Implementation where
 
 --S 1 of 1
 )show MachineFloat
+--R 
 --R MachineFloat  is a domain constructor
 --R Abbreviation for MachineFloat is MFLOAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MFLOAT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
---R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Fraction Integer) -> %
---R ?**? : (%,Integer) -> %               ?**? : (%,PositiveInteger) -> %
---R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
---R -? : % -> %                           ?/? : (%,%) -> %
---R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
---R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
---R ?>=? : (%,%) -> Boolean               1 : () -> %
---R 0 : () -> %                           ?^? : (%,Integer) -> %
---R ?^? : (%,PositiveInteger) -> %        abs : % -> %
---R associates? : (%,%) -> Boolean        base : () -> PositiveInteger
---R bits : () -> PositiveInteger          ceiling : % -> %
---R coerce : MachineInteger -> %          coerce : % -> Float
---R coerce : Float -> %                   coerce : Fraction Integer -> %
---R coerce : Integer -> %                 coerce : Fraction Integer -> %
---R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              convert : % -> Pattern Float
---R convert : % -> DoubleFloat            convert : % -> Float
---R digits : () -> PositiveInteger        exponent : % -> Integer
---R factor : % -> Factored %              float : (Integer,Integer) -> %
---R floor : % -> %                        fractionPart : % -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
---R hash : % -> SingleInteger             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
---R lcm : (%,%) -> %                      mantissa : % -> Integer
---R max : (%,%) -> %                      maximumExponent : () -> Integer
---R min : (%,%) -> %                      minimumExponent : () -> Integer
---R negative? : % -> Boolean              norm : % -> %
---R nthRoot : (%,Integer) -> %            one? : % -> Boolean
---R order : % -> Integer                  positive? : % -> Boolean
---R precision : () -> PositiveInteger     prime? : % -> Boolean
---R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
---R ?rem? : (%,%) -> %                    retract : % -> Float
---R retract : % -> Fraction Integer       retract : % -> Integer
---R round : % -> %                        sample : () -> %
---R sign : % -> Integer                   sizeLess? : (%,%) -> Boolean
---R sqrt : % -> %                         squareFree : % -> Factored %
---R squareFreePart : % -> %               truncate : % -> %
---R unit? : % -> Boolean                  unitCanonical : % -> %
---R wholePart : % -> Integer              zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
+--R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
+--R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
+--R ?-? : (%,%) -> %                      -? : % -> %
+--R ?/? : (%,%) -> %                      ?<? : (%,%) -> Boolean
+--R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
+--R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
+--R abs : % -> %                          associates? : (%,%) -> Boolean
+--R base : () -> PositiveInteger          bits : () -> PositiveInteger
+--R ceiling : % -> %                      coerce : MachineInteger -> %
+--R coerce : % -> Float                   coerce : Float -> %
+--R coerce : Fraction(Integer) -> %       coerce : Integer -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
+--R coerce : Integer -> %                 coerce : % -> OutputForm
+--R convert : % -> Pattern(Float)         convert : % -> DoubleFloat
+--R convert : % -> Float                  digits : () -> PositiveInteger
+--R exponent : % -> Integer               factor : % -> Factored(%)
+--R float : (Integer,Integer) -> %        floor : % -> %
+--R fractionPart : % -> %                 gcd : List(%) -> %
+--R gcd : (%,%) -> %                      hash : % -> SingleInteger
+--R inv : % -> %                          latex : % -> String
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R mantissa : % -> Integer               max : (%,%) -> %
+--R maximumExponent : () -> Integer       min : (%,%) -> %
+--R minimumExponent : () -> Integer       negative? : % -> Boolean
+--R norm : % -> %                         nthRoot : (%,Integer) -> %
+--R one? : % -> Boolean                   order : % -> Integer
+--R positive? : % -> Boolean              precision : () -> PositiveInteger
+--R prime? : % -> Boolean                 ?quo? : (%,%) -> %
+--R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
+--R retract : % -> Float                  retract : % -> Fraction(Integer)
+--R retract : % -> Integer                round : % -> %
+--R sample : () -> %                      sign : % -> Integer
+--R sizeLess? : (%,%) -> Boolean          sqrt : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
+--R truncate : % -> %                     unit? : % -> Boolean
+--R unitCanonical : % -> %                wholePart : % -> Integer
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R base : PositiveInteger -> PositiveInteger
@@ -74260,23 +74442,23 @@ MachineComplex():Exports == Implementation where
 --R digits : PositiveInteger -> PositiveInteger if $ has arbitraryPrecision
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R float : (Integer,Integer,PositiveInteger) -> %
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R increasePrecision : Integer -> PositiveInteger if $ has arbitraryPrecision
---R max : () -> % if not has($,arbitraryExponent) and not has($,arbitraryPrecision)
+--R max : () -> % if not(has($,arbitraryExponent)) and not(has($,arbitraryPrecision))
 --R maximumExponent : Integer -> Integer
---R min : () -> % if not has($,arbitraryExponent) and not has($,arbitraryPrecision)
+--R min : () -> % if not(has($,arbitraryExponent)) and not(has($,arbitraryPrecision))
 --R minimumExponent : Integer -> Integer
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
 --R precision : PositiveInteger -> PositiveInteger
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R retractIfCan : % -> Union(Float,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -74707,6 +74889,7 @@ MachineFloat(): Exports == Implementation where
 
 --S 1 of 1
 )show MachineInteger
+--R 
 --R MachineInteger  is a domain constructor
 --R Abbreviation for MachineInteger is MINT 
 --R This constructor is exposed in this frame.
@@ -74727,16 +74910,16 @@ MachineFloat(): Exports == Implementation where
 --R bit? : (%,%) -> Boolean               coerce : Integer -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              convert : % -> Integer
---R convert : % -> InputForm              convert : % -> Pattern Integer
+--R convert : % -> InputForm              convert : % -> Pattern(Integer)
 --R convert : % -> Float                  convert : % -> DoubleFloat
 --R copy : % -> %                         dec : % -> %
 --R differentiate : % -> %                even? : % -> Boolean
---R factor : % -> Factored %              factorial : % -> %
---R gcd : (%,%) -> %                      gcd : List % -> %
+--R factor : % -> Factored(%)             factorial : % -> %
+--R gcd : (%,%) -> %                      gcd : List(%) -> %
 --R hash : % -> %                         hash : % -> SingleInteger
 --R inc : % -> %                          init : () -> %
 --R invmod : (%,%) -> %                   latex : % -> String
---R lcm : (%,%) -> %                      lcm : List % -> %
+--R lcm : (%,%) -> %                      lcm : List(%) -> %
 --R length : % -> %                       mask : % -> %
 --R max : (%,%) -> %                      maxint : () -> PositiveInteger
 --R min : (%,%) -> %                      mulmod : (%,%,%) -> %
@@ -74745,12 +74928,12 @@ MachineFloat(): Exports == Implementation where
 --R positive? : % -> Boolean              positiveRemainder : (%,%) -> %
 --R powmod : (%,%,%) -> %                 prime? : % -> Boolean
 --R ?quo? : (%,%) -> %                    random : () -> %
---R random : % -> %                       rational : % -> Fraction Integer
+--R random : % -> %                       rational : % -> Fraction(Integer)
 --R rational? : % -> Boolean              recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    retract : % -> Integer
 --R sample : () -> %                      shift : (%,%) -> %
 --R sign : % -> Integer                   sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R submod : (%,%,%) -> %                 symmetricRemainder : (%,%) -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -74758,23 +74941,23 @@ MachineFloat(): Exports == Implementation where
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coerce : Expression Integer -> Expression %
+--R coerce : Expression(Integer) -> Expression(%)
 --R differentiate : (%,NonNegativeInteger) -> %
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R maxint : PositiveInteger -> PositiveInteger
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed")
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%)
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R rationalIfCan : % -> Union(Fraction Integer,"failed")
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer)
---R reducedSystem : Matrix % -> Matrix Integer
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed")
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer))
+--R reducedSystem : Matrix(%) -> Matrix(Integer)
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -74987,7 +75170,7 @@ z:Symbol :='z
 word := OrderedFreeMonoid(Symbol)
 --R 
 --R
---R   (4)  OrderedFreeMonoid Symbol
+--R   (4)  OrderedFreeMonoid(Symbol)
 --R                                                                 Type: Domain
 --E 4
 
@@ -74995,7 +75178,7 @@ word := OrderedFreeMonoid(Symbol)
 tree := Magma(Symbol)
 --R 
 --R
---R   (5)  Magma Symbol
+--R   (5)  Magma(Symbol)
 --R                                                                 Type: Domain
 --E 5
 
@@ -75004,7 +75187,7 @@ a:tree := x*x
 --R 
 --R
 --R   (6)  [x,x]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 6
 
 --S 7 of 22
@@ -75012,7 +75195,7 @@ b:tree := y*y
 --R 
 --R
 --R   (7)  [y,y]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 7
 
 --S 8 of 22
@@ -75020,7 +75203,7 @@ c:tree := a*b
 --R 
 --R
 --R   (8)  [[x,x],[y,y]]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 8
 
 --S 9 of 22
@@ -75028,7 +75211,7 @@ left c
 --R 
 --R
 --R   (9)  [x,x]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 9
 
 --S 10 of 22
@@ -75036,7 +75219,7 @@ right c
 --R 
 --R
 --R   (10)  [y,y]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 10
 
 --S 11 of 22
@@ -75053,7 +75236,7 @@ c::word
 --R
 --R          2 2
 --R   (12)  x y
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 12
 
 --S 13 of 22
@@ -75093,7 +75276,7 @@ rest c
 --R 
 --R
 --R   (17)  [x,[y,y]]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 17
 
 --S 18 of 22
@@ -75101,7 +75284,7 @@ rest rest c
 --R 
 --R
 --R   (18)  [y,y]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 18
 
 --S 19 of 22
@@ -75109,7 +75292,7 @@ ax:tree := a*x
 --R 
 --R
 --R   (19)  [[x,x],x]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 19
 
 --S 20 of 22
@@ -75117,7 +75300,7 @@ xa:tree := x*a
 --R 
 --R
 --R   (20)  [x,[x,x]]
---R                                                           Type: Magma Symbol
+--R                                                          Type: Magma(Symbol)
 --E 20
 
 --S 21 of 22
@@ -75446,7 +75629,8 @@ Magma(VarSet:OrderedSet):Public == Private where
 
 --S 1 of 1
 )show MakeCachableSet
---R MakeCachableSet S: SetCategory  is a domain constructor
+--R 
+--R MakeCachableSet(S: SetCategory)  is a domain constructor
 --R Abbreviation for MakeCachableSet is MKCHSET 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MKCHSET 
@@ -77220,7 +77404,7 @@ m : Matrix(Integer) := new(3,3,0)
 --R   (1)  |0  0  0|
 --R        |       |
 --R        +0  0  0+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 1
 
 --S 2 of 38
@@ -77248,7 +77432,7 @@ m
 --R   (4)  |0  0   5|
 --R        |        |
 --R        +0  0   0+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 4
 
 --S 5 of 38
@@ -77258,7 +77442,7 @@ matrix [ [1,2,3,4],[0,9,8,7] ]
 --R        +1  2  3  4+
 --R   (5)  |          |
 --R        +0  9  8  7+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 5
 
 --S 6 of 38
@@ -77278,7 +77462,7 @@ dm := diagonalMatrix [1,x**2,x**3,x**4,x**5]
 --R        |                 |
 --R        |                5|
 --R        +0  0   0   0   x +
---R                                              Type: Matrix Polynomial Integer
+--R                                            Type: Matrix(Polynomial(Integer))
 --E 6
 
 --S 7 of 38
@@ -77297,7 +77481,7 @@ setRow!(dm,5,vector [1,1,1,1,1])
 --R        |0  0   0   x   0|
 --R        |                |
 --R        +1  1   1   1   1+
---R                                              Type: Matrix Polynomial Integer
+--R                                            Type: Matrix(Polynomial(Integer))
 --E 7
 
 --S 8 of 38
@@ -77315,7 +77499,7 @@ setColumn!(dm,2,vector [y,y,y,y,y])
 --R        |0  y  0   x   0|
 --R        |               |
 --R        +1  y  1   1   1+
---R                                              Type: Matrix Polynomial Integer
+--R                                            Type: Matrix(Polynomial(Integer))
 --E 8
 
 --S 9 of 38
@@ -77333,7 +77517,7 @@ cdm := copy(dm)
 --R        |0  y  0   x   0|
 --R        |               |
 --R        +1  y  1   1   1+
---R                                              Type: Matrix Polynomial Integer
+--R                                            Type: Matrix(Polynomial(Integer))
 --E 9
 
 --S 10 of 38
@@ -77342,7 +77526,7 @@ setelt(dm,4,1,1-x**7)
 --R
 --R            7
 --R   (10)  - x  + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 10
 
 --S 11 of 38
@@ -77360,7 +77544,7 @@ setelt(dm,4,1,1-x**7)
 --R          |- x  + 1  y  0   x   0| |0  y  0   x   0|
 --R          |                      | |               |
 --R          +   1      y  1   1   1+ +1  y  1   1   1+
---R                                         Type: List Matrix Polynomial Integer
+--R                                      Type: List(Matrix(Polynomial(Integer)))
 --E 11
 
 --S 12 of 38
@@ -77371,7 +77555,7 @@ subMatrix(dm,2,3,2,4)
 --R   (12)  |        |
 --R         |    3   |
 --R         +y  x   0+
---R                                              Type: Matrix Polynomial Integer
+--R                                            Type: Matrix(Polynomial(Integer))
 --E 12
 
 --S 13 of 38
@@ -77385,7 +77569,7 @@ d := diagonalMatrix [1.2,-1.3,1.4,-1.5]
 --R         |0.0   0.0   1.4   0.0 |
 --R         |                      |
 --R         +0.0   0.0   0.0  - 1.5+
---R                                                           Type: Matrix Float
+--R                                                          Type: Matrix(Float)
 --E 13
 
 --S 14 of 38
@@ -77395,7 +77579,7 @@ e := matrix [ [6.7,9.11],[-31.33,67.19] ]
 --R         +  6.7    9.11 +
 --R   (14)  |              |
 --R         +- 31.33  67.19+
---R                                                           Type: Matrix Float
+--R                                                          Type: Matrix(Float)
 --E 14
 
 --S 15 of 38
@@ -77409,7 +77593,7 @@ setsubMatrix!(d,1,2,e)
 --R         |0.0    0.0     1.4    0.0 |
 --R         |                          |
 --R         +0.0    0.0     0.0   - 1.5+
---R                                                           Type: Matrix Float
+--R                                                          Type: Matrix(Float)
 --E 15
 
 --S 16 of 38
@@ -77423,7 +77607,7 @@ d
 --R         |0.0    0.0     1.4    0.0 |
 --R         |                          |
 --R         +0.0    0.0     0.0   - 1.5+
---R                                                           Type: Matrix Float
+--R                                                          Type: Matrix(Float)
 --E 16
 
 --S 17 of 38
@@ -77437,7 +77621,7 @@ a := matrix [ [1/2,1/3,1/4],[1/5,1/6,1/7] ]
 --R         |1  1  1|
 --R         |-  -  -|
 --R         +5  6  7+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 17
 
 --S 18 of 38
@@ -77451,7 +77635,7 @@ b := matrix [ [3/5,3/7,3/11],[3/13,3/17,3/19] ]
 --R         | 3   3   3|
 --R         |--  --  --|
 --R         +13  17  19+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 18
 
 --S 19 of 38
@@ -77465,7 +77649,7 @@ horizConcat(a,b)
 --R         |1  1  1   3   3   3|
 --R         |-  -  -  --  --  --|
 --R         +5  6  7  13  17  19+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 19
 
 --S 20 of 38
@@ -77487,7 +77671,7 @@ vab := vertConcat(a,b)
 --R         | 3   3   3|
 --R         |--  --  --|
 --R         +13  17  19+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 20
 
 --S 21 of 38
@@ -77505,7 +77689,7 @@ transpose vab
 --R         |1  1   3   3|
 --R         |-  -  --  --|
 --R         +4  7  11  19+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 21
 
 --S 22 of 38
@@ -77515,7 +77699,7 @@ m := matrix [ [1,2],[3,4] ]
 --R         +1  2+
 --R   (22)  |    |
 --R         +3  4+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 22
 
 --S 23 of 38
@@ -77525,7 +77709,7 @@ m := matrix [ [1,2],[3,4] ]
 --R         +- 20  - 40+
 --R   (23)  |          |
 --R         +- 60  - 80+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 23
 
 --S 24 of 38
@@ -77535,7 +77719,7 @@ n := matrix([ [1,0,-2],[-3,5,1] ])
 --R         + 1   0  - 2+
 --R   (24)  |           |
 --R         +- 3  5   1 +
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 24
 
 --S 25 of 38
@@ -77545,7 +77729,7 @@ m * n
 --R         +- 5  10   0 +
 --R   (25)  |            |
 --R         +- 9  20  - 2+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 25
 
 --S 26 of 38
@@ -77553,7 +77737,7 @@ vec := column(n,3)
 --R 
 --R
 --R   (26)  [- 2,1]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 26
 
 --S 27 of 38
@@ -77561,7 +77745,7 @@ vec * m
 --R 
 --R
 --R   (27)  [1,0]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 27
 
 --S 28 of 38
@@ -77569,7 +77753,7 @@ m * vec
 --R 
 --R
 --R   (28)  [0,- 2]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 28
 
 --S 29 of 38
@@ -77587,7 +77771,7 @@ hilb := matrix([ [1/(i + j) for i in 1..3] for j in 1..3])
 --R         |1  1  1|
 --R         |-  -  -|
 --R         +4  5  6+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 29
 
 --S 30 of 38
@@ -77599,7 +77783,7 @@ inverse(hilb)
 --R   (30)  |- 240   900   - 720|
 --R         |                   |
 --R         + 180   - 720   600 +
---R                                     Type: Union(Matrix Fraction Integer,...)
+--R                                   Type: Union(Matrix(Fraction(Integer)),...)
 --E 30
 
 --S 31 of 38
@@ -77613,7 +77797,7 @@ mm := matrix([ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ])
 --R         |9   10  11  12|
 --R         |              |
 --R         +13  14  15  16+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 31
 
 --S 32 of 38
@@ -77661,7 +77845,7 @@ nullSpace(mm)
 --R 
 --R
 --R   (37)  [[1,- 2,1,0],[2,- 3,0,1]]
---R                                                    Type: List Vector Integer
+--R                                                  Type: List(Vector(Integer))
 --E 37
 
 --S 38 of 38
@@ -77675,7 +77859,7 @@ rowEchelon(mm)
 --R         |0  0  0  0 |
 --R         |           |
 --R         +0  0  0  0 +
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 38
 )spool
 )lisp (bye)
@@ -78394,7 +78578,8 @@ Matrix(R): Exports == Implementation where
 
 --S 1 of 1
 )show ModMonic
---R ModMonic(R: Ring,Rep: UnivariatePolynomialCategory R)  is a domain constructor
+--R 
+--R ModMonic(R: Ring,Rep: UnivariatePolynomialCategory(R))  is a domain constructor
 --R Abbreviation for ModMonic is MODMON 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MODMON 
@@ -78405,31 +78590,30 @@ Matrix(R): Exports == Implementation where
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R An : % -> Vector R                    D : (%,(R -> R)) -> %
+--R An : % -> Vector(R)                   D : (%,(R -> R)) -> %
 --R D : % -> %                            D : (%,NonNegativeInteger) -> %
---R 1 : () -> %                           UnVectorise : Vector R -> %
---R Vectorise : % -> Vector R             0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List R
+--R 1 : () -> %                           UnVectorise : Vector(R) -> %
+--R Vectorise : % -> Vector(R)            0 : () -> %
+--R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List(R)
 --R coerce : Rep -> %                     coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> NonNegativeInteger      differentiate : % -> %
 --R ?.? : (%,%) -> %                      ?.? : (%,R) -> R
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
 --R ground : % -> R                       ground? : % -> Boolean
 --R hash : % -> SingleInteger             init : () -> % if R has STEP
 --R latex : % -> String                   leadingCoefficient : % -> R
 --R leadingMonomial : % -> %              lift : % -> Rep
 --R map : ((R -> R),%) -> %               modulus : () -> Rep
---R monomial? : % -> Boolean              monomials : % -> List %
---R one? : % -> Boolean                   pow : () -> PrimitiveArray %
---R primitiveMonomials : % -> List %      pseudoRemainder : (%,%) -> %
---R recip : % -> Union(%,"failed")        reduce : Rep -> %
---R reductum : % -> %                     retract : % -> R
---R sample : () -> %                      setPoly : Rep -> Rep
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (Fraction Integer,%) -> % if R has ALGEBRA FRAC INT
---R ?*? : (%,Fraction Integer) -> % if R has ALGEBRA FRAC INT
+--R monomial? : % -> Boolean              monomials : % -> List(%)
+--R one? : % -> Boolean                   pow : () -> PrimitiveArray(%)
+--R pseudoRemainder : (%,%) -> %          recip : % -> Union(%,"failed")
+--R reduce : Rep -> %                     reductum : % -> %
+--R retract : % -> R                      sample : () -> %
+--R setPoly : Rep -> Rep                  zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
+--R ?*? : (Fraction(Integer),%) -> % if R has ALGEBRA(FRAC(INT))
+--R ?*? : (%,Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
@@ -78438,147 +78622,150 @@ Matrix(R): Exports == Implementation where
 --R ?>? : (%,%) -> Boolean if R has ORDSET
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
 --R D : (%,(R -> R),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,List Symbol) -> % if R has PDRING SYMBOL
---R D : (%,Symbol) -> % if R has PDRING SYMBOL
---R D : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R D : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
---R D : (%,List SingletonAsOrderedSet) -> %
+--R D : (%,List(SingletonAsOrderedSet)) -> %
 --R D : (%,SingletonAsOrderedSet) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R associates? : (%,%) -> Boolean if R has INTDOM
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and R has PFECAT or R has CHARNZ
---R coefficient : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R coefficient : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R coefficient : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R coefficient : (%,NonNegativeInteger) -> R
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT)) or R has RETRACT(FRAC(INT))
 --R coerce : SingletonAsOrderedSet -> %
---R composite : (Fraction %,%) -> Union(Fraction %,"failed") if R has INTDOM
+--R composite : (Fraction(%),%) -> Union(Fraction(%),"failed") if R has INTDOM
 --R composite : (%,%) -> Union(%,"failed") if R has INTDOM
---R computePowers : () -> PrimitiveArray %
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and R has PFECAT
+--R computePowers : () -> PrimitiveArray(%)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and R has PFECAT
 --R content : (%,SingletonAsOrderedSet) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> InputForm if SingletonAsOrderedSet has KONVERT INFORM and R has KONVERT INFORM
---R convert : % -> Pattern Integer if SingletonAsOrderedSet has KONVERT PATTERN INT and R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if SingletonAsOrderedSet has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT
---R degree : (%,List SingletonAsOrderedSet) -> List NonNegativeInteger
+--R convert : % -> InputForm if SingletonAsOrderedSet has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if SingletonAsOrderedSet has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if SingletonAsOrderedSet has KONVERT(PATTERN(FLOAT)) and R has KONVERT(PATTERN(FLOAT))
+--R degree : (%,List(SingletonAsOrderedSet)) -> List(NonNegativeInteger)
 --R degree : (%,SingletonAsOrderedSet) -> NonNegativeInteger
 --R differentiate : (%,(R -> R),%) -> %
 --R differentiate : (%,(R -> R)) -> %
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if R has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if R has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> %
---R differentiate : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R differentiate : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R differentiate : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
---R differentiate : (%,List SingletonAsOrderedSet) -> %
+--R differentiate : (%,List(SingletonAsOrderedSet)) -> %
 --R differentiate : (%,SingletonAsOrderedSet) -> %
 --R discriminant : % -> R if R has COMRING
 --R discriminant : (%,SingletonAsOrderedSet) -> % if R has COMRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R divideExponents : (%,NonNegativeInteger) -> Union(%,"failed")
---R ?.? : (%,Fraction %) -> Fraction % if R has INTDOM
---R elt : (Fraction %,R) -> R if R has FIELD
---R elt : (Fraction %,Fraction %) -> Fraction % if R has INTDOM
+--R ?.? : (%,Fraction(%)) -> Fraction(%) if R has INTDOM
+--R elt : (Fraction(%),R) -> R if R has FIELD
+--R elt : (Fraction(%),Fraction(%)) -> Fraction(%) if R has INTDOM
 --R euclideanSize : % -> NonNegativeInteger if R has FIELD
---R eval : (%,List SingletonAsOrderedSet,List %) -> %
+--R eval : (%,List(SingletonAsOrderedSet),List(%)) -> %
 --R eval : (%,SingletonAsOrderedSet,%) -> %
---R eval : (%,List SingletonAsOrderedSet,List R) -> %
+--R eval : (%,List(SingletonAsOrderedSet),List(R)) -> %
 --R eval : (%,SingletonAsOrderedSet,R) -> %
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has FIELD
---R factor : % -> Factored % if R has PFECAT
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R factor : % -> Factored(%) if R has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R frobenius : % -> % if R has FFIELDC
 --R gcd : (%,%) -> % if R has GCDDOM
---R gcd : List % -> % if R has GCDDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM
+--R gcd : List(%) -> % if R has GCDDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GCDDOM
 --R index : PositiveInteger -> % if R has FINITE
---R integrate : % -> % if R has ALGEBRA FRAC INT
+--R integrate : % -> % if R has ALGEBRA(FRAC(INT))
 --R isExpt : % -> Union(Record(var: SingletonAsOrderedSet,exponent: NonNegativeInteger),"failed")
---R isPlus : % -> Union(List %,"failed")
---R isTimes : % -> Union(List %,"failed")
+--R isPlus : % -> Union(List(%),"failed")
+--R isTimes : % -> Union(List(%),"failed")
 --R karatsubaDivide : (%,NonNegativeInteger) -> Record(quotient: %,remainder: %)
 --R lcm : (%,%) -> % if R has GCDDOM
---R lcm : List % -> % if R has GCDDOM
+--R lcm : List(%) -> % if R has GCDDOM
 --R lookup : % -> PositiveInteger if R has FINITE
 --R mainVariable : % -> Union(SingletonAsOrderedSet,"failed")
---R makeSUP : % -> SparseUnivariatePolynomial R
+--R makeSUP : % -> SparseUnivariatePolynomial(R)
 --R mapExponents : ((NonNegativeInteger -> NonNegativeInteger),%) -> %
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---R minimumDegree : (%,List SingletonAsOrderedSet) -> List NonNegativeInteger
+--R minimumDegree : (%,List(SingletonAsOrderedSet)) -> List(NonNegativeInteger)
 --R minimumDegree : (%,SingletonAsOrderedSet) -> NonNegativeInteger
 --R minimumDegree : % -> NonNegativeInteger
 --R monicDivide : (%,%) -> Record(quotient: %,remainder: %)
 --R monicDivide : (%,%,SingletonAsOrderedSet) -> Record(quotient: %,remainder: %)
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (R,NonNegativeInteger) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R multiplyExponents : (%,NonNegativeInteger) -> %
---R multivariate : (SparseUnivariatePolynomial %,SingletonAsOrderedSet) -> %
---R multivariate : (SparseUnivariatePolynomial R,SingletonAsOrderedSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),SingletonAsOrderedSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),SingletonAsOrderedSet) -> %
 --R nextItem : % -> Union(%,"failed") if R has STEP
 --R numberOfMonomials : % -> NonNegativeInteger
 --R order : (%,%) -> NonNegativeInteger if R has INTDOM
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SingletonAsOrderedSet has PATMAB INT and R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SingletonAsOrderedSet has PATMAB FLOAT and R has PATMAB FLOAT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SingletonAsOrderedSet has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SingletonAsOrderedSet has PATMAB(FLOAT) and R has PATMAB(FLOAT)
 --R pomopo! : (%,R,NonNegativeInteger,%) -> %
 --R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,SingletonAsOrderedSet) -> % if R has GCDDOM
 --R primitivePart : % -> % if R has GCDDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %) if R has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has FIELD
 --R pseudoDivide : (%,%) -> Record(coef: R,quotient: %,remainder: %) if R has INTDOM
 --R pseudoQuotient : (%,%) -> % if R has INTDOM
 --R ?quo? : (%,%) -> % if R has FIELD
 --R random : () -> % if R has FINITE
---R reducedSystem : Matrix % -> Matrix R
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
+--R reducedSystem : Matrix(%) -> Matrix(R)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
 --R ?rem? : (%,%) -> % if R has FIELD
 --R resultant : (%,%) -> R if R has COMRING
 --R resultant : (%,%,SingletonAsOrderedSet) -> % if R has COMRING
 --R retract : % -> SingletonAsOrderedSet
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(SingletonAsOrderedSet,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(R,"failed")
 --R separate : (%,%) -> Record(primePart: %,commonPart: %) if R has GCDDOM
 --R shiftLeft : (%,NonNegativeInteger) -> %
 --R shiftRight : (%,NonNegativeInteger) -> %
 --R size : () -> NonNegativeInteger if R has FINITE
 --R sizeLess? : (%,%) -> Boolean if R has FIELD
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has PFECAT
---R squareFree : % -> Factored % if R has GCDDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if R has PFECAT
+--R squareFree : % -> Factored(%) if R has GCDDOM
 --R squareFreePart : % -> % if R has GCDDOM
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R subResultantGcd : (%,%) -> % if R has INTDOM
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R totalDegree : (%,List SingletonAsOrderedSet) -> NonNegativeInteger
+--R totalDegree : (%,List(SingletonAsOrderedSet)) -> NonNegativeInteger
 --R totalDegree : % -> NonNegativeInteger
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM
---R univariate : % -> SparseUnivariatePolynomial R
---R univariate : (%,SingletonAsOrderedSet) -> SparseUnivariatePolynomial %
---R unmakeSUP : SparseUnivariatePolynomial R -> %
---R variables : % -> List SingletonAsOrderedSet
---R vectorise : (%,NonNegativeInteger) -> Vector R
+--R univariate : % -> SparseUnivariatePolynomial(R)
+--R univariate : (%,SingletonAsOrderedSet) -> SparseUnivariatePolynomial(%)
+--R unmakeSUP : SparseUnivariatePolynomial(R) -> %
+--R variables : % -> List(SingletonAsOrderedSet)
+--R vectorise : (%,NonNegativeInteger) -> Vector(R)
 --R
 --E 1
 
@@ -78917,13 +79104,14 @@ ModMonic(R,Rep): C == T
 
 --S 1 of 1
 )show ModularField
+--R 
 --R ModularField(R: CommutativeRing,Mod: AbelianMonoid,reduction: ((R,Mod) -> R),merge: ((Mod,Mod) -> Union(Mod,"failed")),exactQuo: ((R,R,Mod) -> Union(R,"failed")))  is a domain constructor
 --R Abbreviation for ModularField is MODFIELD 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MODFIELD 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -78932,17 +79120,17 @@ ModMonic(R,Rep): C == T
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        coerce : % -> R
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R modulus : % -> Mod                    one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        reduce : (R,Mod) -> %
 --R ?rem? : (%,%) -> %                    sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
@@ -78953,13 +79141,13 @@ ModMonic(R,Rep): C == T
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
 --R exQuo : (%,%) -> Union(%,"failed")
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -79370,7 +79558,8 @@ ModuleMonomial(IS: OrderedSet,
 
 --S 1 of 1
 )show ModuleOperator
---R ModuleOperator(R: Ring,M: LeftModule R)  is a domain constructor
+--R 
+--R ModuleOperator(R: Ring,M: LeftModule(R))  is a domain constructor
 --R Abbreviation for ModuleOperator is MODOP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MODOP 
@@ -79402,7 +79591,7 @@ ModuleMonomial(IS: OrderedSet,
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
 --R conjug : R -> R if R has COMRING
 --R evaluateInverse : (%,(M -> M)) -> %
---R makeop : (R,FreeGroup BasicOperator) -> %
+--R makeop : (R,FreeGroup(BasicOperator)) -> %
 --R retractIfCan : % -> Union(BasicOperator,"failed")
 --R retractIfCan : % -> Union(R,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -79709,7 +79898,8 @@ ModuleOperator(R: Ring, M:LeftModule(R)): Exports == Implementation where
 
 --S 1 of 1
 )show MoebiusTransform
---R MoebiusTransform F: Field  is a domain constructor
+--R 
+--R MoebiusTransform(F: Field)  is a domain constructor
 --R Abbreviation for MoebiusTransform is MOEBIUS 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for MOEBIUS 
@@ -79730,7 +79920,7 @@ ModuleOperator(R: Ring, M:LeftModule(R)): Exports == Implementation where
 --R shift : F -> %                        ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R eval : (%,OnePointCompletion F) -> OnePointCompletion F
+--R eval : (%,OnePointCompletion(F)) -> OnePointCompletion(F)
 --R
 --E 1
 
@@ -79896,6 +80086,7 @@ MoebiusTransform(F): Exports == Implementation where
 
 --S 1 of 1
 )show MonoidRing
+--R 
 --R MonoidRing(R: Ring,M: Monoid)  is a domain constructor
 --R Abbreviation for MonoidRing is MRING 
 --R This constructor is not exposed in this frame.
@@ -79908,12 +80099,12 @@ MoebiusTransform(F): Exports == Implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coefficient : (%,M) -> R
---R coefficients : % -> List R            coerce : R -> %
+--R coefficients : % -> List(R)           coerce : R -> %
 --R coerce : M -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   map : ((R -> R),%) -> %
 --R monomial : (R,M) -> %                 monomial? : % -> Boolean
---R monomials : % -> List %               one? : % -> Boolean
+--R monomials : % -> List(%)              one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        retract : % -> R
 --R retract : % -> M                      sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -79924,7 +80115,7 @@ MoebiusTransform(F): Exports == Implementation where
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : List Record(coef: R,monom: M) -> %
+--R coerce : List(Record(coef: R,monom: M)) -> %
 --R index : PositiveInteger -> % if M has FINITE and R has FINITE
 --R leadingCoefficient : % -> R if M has ORDSET
 --R leadingMonomial : % -> M if M has ORDSET
@@ -79936,7 +80127,7 @@ MoebiusTransform(F): Exports == Implementation where
 --R retractIfCan : % -> Union(M,"failed")
 --R size : () -> NonNegativeInteger if M has FINITE and R has FINITE
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> List Record(coef: R,monom: M)
+--R terms : % -> List(Record(coef: R,monom: M))
 --R
 --E 1
 
@@ -80338,7 +80529,7 @@ s := multiset [1,2,3,4,5,4,3,2,3,4,5,6,7,4,10]
 --R 
 --R
 --R   (1)  {1,2: 2,3: 3,4: 4,2: 5,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 1
 
 --S 2 of 14
@@ -80346,7 +80537,7 @@ insert!(3,s)
 --R 
 --R
 --R   (2)  {1,2: 2,4: 3,4: 4,2: 5,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 2
 
 --S 3 of 14
@@ -80354,7 +80545,7 @@ remove!(3,s,1)
 --R 
 --R
 --R   (3)  {1,2: 2,3: 3,4: 4,2: 5,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 3
 
 --S 4 of 14
@@ -80362,7 +80553,7 @@ s
 --R 
 --R
 --R   (4)  {1,2: 2,3: 3,4: 4,2: 5,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 4
 
 --S 5 of 14
@@ -80370,7 +80561,7 @@ remove!(5,s)
 --R 
 --R
 --R   (5)  {1,2: 2,3: 3,4: 4,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 5
 
 --S 6 of 14
@@ -80378,7 +80569,7 @@ s
 --R 
 --R
 --R   (6)  {1,2: 2,3: 3,4: 4,6,7,10}
---R                                               Type: Multiset PositiveInteger
+--R                                              Type: Multiset(PositiveInteger)
 --E 6
 
 --S 7 of 14
@@ -80394,7 +80585,7 @@ t := multiset [2,2,2,-9]
 --R 
 --R
 --R   (8)  {3: 2,- 9}
---R                                                       Type: Multiset Integer
+--R                                                      Type: Multiset(Integer)
 --E 8
 
 --S 9 of 14
@@ -80402,7 +80593,7 @@ U := union(s,t)
 --R 
 --R
 --R   (9)  {1,5: 2,3: 3,4: 4,6,7,10,- 9}
---R                                                       Type: Multiset Integer
+--R                                                      Type: Multiset(Integer)
 --E 9
 
 --S 10 of 14
@@ -80410,7 +80601,7 @@ I := intersect(s,t)
 --R 
 --R
 --R   (10)  {5: 2}
---R                                                       Type: Multiset Integer
+--R                                                      Type: Multiset(Integer)
 --E 10
 
 --S 11 of 14
@@ -80418,7 +80609,7 @@ difference(s,t)
 --R 
 --R
 --R   (11)  {1,3: 3,4: 4,6,7,10}
---R                                                       Type: Multiset Integer
+--R                                                      Type: Multiset(Integer)
 --E 11
 
 --S 12 of 14
@@ -80426,7 +80617,7 @@ S := symmetricDifference(s,t)
 --R 
 --R
 --R   (12)  {1,3: 3,4: 4,6,7,10,- 9}
---R                                                       Type: Multiset Integer
+--R                                                      Type: Multiset(Integer)
 --E 12
 
 --S 13 of 14
@@ -80442,7 +80633,7 @@ t1 := multiset [1,2,2,3]; [t1 < t, t1 < s, t < s, t1 <= s]
 --R 
 --R
 --R   (14)  [false,true,false,true]
---R                                                           Type: List Boolean
+--R                                                          Type: List(Boolean)
 --E 14
 )spool
 )lisp (bye)
@@ -80926,7 +81117,7 @@ p :: POLY INT
 --R 
 --R
 --R   (4)  p
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 4
 
 --S 5 of 9
@@ -80934,7 +81125,7 @@ p :: POLY INT
 --R 
 --R
 --R   (5)  p
---R                       Type: MultivariatePolynomial([a,b],Polynomial Integer)
+--R                      Type: MultivariatePolynomial([a,b],Polynomial(Integer))
 --E 5
 
 --S 6 of 9
@@ -80952,7 +81143,7 @@ q := (x^2 - x*(z+1)/y +2)^2
 --R   (7)  x  + -------- x  + ----------------- x  + -------- x + 4
 --R                 y                  2                 y
 --R                                   y
---R Type: UnivariatePolynomial(x,Fraction MultivariatePolynomial([y,z],Integer))
+--RType: UnivariatePolynomial(x,Fraction(MultivariatePolynomial([y,z],Integer)))
 --E 7
 
 --S 8 of 9
@@ -80965,7 +81156,7 @@ q :: UP(z, FRAC MPOLY([x,y],INT))
 --R   -- z  + -------------------- z + ---------------------------------------
 --R    2                2                                  2
 --R   y                y                                  y
---R Type: UnivariatePolynomial(z,Fraction MultivariatePolynomial([x,y],Integer))
+--RType: UnivariatePolynomial(z,Fraction(MultivariatePolynomial([x,y],Integer)))
 --E 8
 
 --S 9 of 9
@@ -80977,7 +81168,7 @@ q :: MPOLY([x,z], FRAC UP(y,INT))
 --R   (9)  x  + (- - z - -)x  + (-- z  + -- z + -------)x  + (- - z - -)x + 4
 --R                y     y        2       2         2           y     y
 --R                              y       y         y
---R Type: MultivariatePolynomial([x,z],Fraction UnivariatePolynomial(y,Integer))
+--RType: MultivariatePolynomial([x,z],Fraction(UnivariatePolynomial(y,Integer)))
 --E 9
 )spool
 )lisp (bye)
@@ -81966,14 +82157,15 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 
 --S 1 of 1
 )show NeitherSparseOrDensePowerSeries
---R NeitherSparseOrDensePowerSeries K: Field  is a domain constructor
+--R 
+--R NeitherSparseOrDensePowerSeries(K: Field)  is a domain constructor
 --R Abbreviation for NeitherSparseOrDensePowerSeries is NSDPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for NSDPS 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,K) -> %                      ?*? : (K,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -81982,11 +82174,11 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        center : % -> K
---R children : % -> List %                coefOfFirstNonZeroTerm : % -> K
---R coefficient : (%,Integer) -> K        coerce : Fraction Integer -> %
+--R children : % -> List(%)               coefOfFirstNonZeroTerm : % -> K
+--R coefficient : (%,Integer) -> K        coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R concat : (%,%) -> %                   concat : List % -> %
+--R concat : (%,%) -> %                   concat : List(%) -> %
 --R copy : % -> %                         cycleEntry : % -> %
 --R cycleTail : % -> %                    cyclic? : % -> Boolean
 --R degree : % -> Integer                 delay : (() -> %) -> %
@@ -81995,18 +82187,18 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                explicitEntries? : % -> Boolean
 --R explicitlyEmpty? : % -> Boolean       explicitlyFinite? : % -> Boolean
---R extend : (%,Integer) -> %             factor : % -> Factored %
+--R extend : (%,Integer) -> %             factor : % -> Factored(%)
 --R filterUpTo : (%,Integer) -> %         findCoef : (%,Integer) -> K
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R inv : % -> %                          latex : % -> String
 --R lazy? : % -> Boolean                  lazyEvaluate : % -> %
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R leadingCoefficient : % -> K           leadingMonomial : % -> %
 --R leaf? : % -> Boolean                  map : ((K -> K),%) -> %
 --R monomial : (K,Integer) -> %           monomial? : % -> Boolean
---R nodes : % -> List %                   one? : % -> Boolean
+--R nodes : % -> List(%)                  one? : % -> Boolean
 --R order : % -> Integer                  order : % -> Integer
 --R order : (%,Integer) -> Integer        pole? : % -> Boolean
 --R posExpnPart : % -> %                  possiblyInfinite? : % -> Boolean
@@ -82018,7 +82210,7 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R rest : % -> %                         rst : % -> %
 --R sample : () -> %                      sbt : (%,%) -> %
 --R series : (Integer,K,%) -> %           shift : (%,Integer) -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               tail : % -> %
 --R truncate : (%,Integer) -> %           unit? : % -> Boolean
 --R unitCanonical : % -> %                variable : % -> Symbol
@@ -82027,10 +82219,10 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,K) -> % if K has FIELD
---R D : (%,List Symbol,List NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R D : (%,List Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R D : (%,Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K
 --R D : % -> % if K has *: (Integer,K) -> K
 --R ?^? : (%,NonNegativeInteger) -> %
@@ -82039,44 +82231,44 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if K has CHARNZ
 --R child? : (%,%) -> Boolean if Record(k: Integer,c: K) has SETCAT
---R coerce : % -> Stream Record(k: Integer,c: K)
---R coerce : Stream Record(k: Integer,c: K) -> %
+--R coerce : % -> Stream(Record(k: Integer,c: K))
+--R coerce : Stream(Record(k: Integer,c: K)) -> %
 --R coerce : K -> % if K has COMRING
 --R concat : (Record(k: Integer,c: K),%) -> %
 --R concat : (%,Record(k: Integer,c: K)) -> %
 --R concat! : (%,%) -> % if $ has shallowlyMutable
 --R concat! : (%,Record(k: Integer,c: K)) -> % if $ has shallowlyMutable
---R construct : List Record(k: Integer,c: K) -> %
---R convert : % -> InputForm if Record(k: Integer,c: K) has KONVERT INFORM
+--R construct : List(Record(k: Integer,c: K)) -> %
+--R convert : % -> InputForm if Record(k: Integer,c: K) has KONVERT(INFORM)
 --R count : ((Record(k: Integer,c: K) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Record(k: Integer,c: K),%) -> NonNegativeInteger if $ has finiteAggregate and Record(k: Integer,c: K) has SETCAT
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---R delete : (%,UniversalSegment Integer) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING SYMBOL
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if K has *: (Integer,K) -> K and K has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K
 --R differentiate : % -> % if K has *: (Integer,K) -> K
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R ?.value : (%,value) -> Record(k: Integer,c: K)
 --R ?.first : (%,first) -> Record(k: Integer,c: K)
 --R ?.last : (%,last) -> Record(k: Integer,c: K)
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R ?.? : (%,Integer) -> Record(k: Integer,c: K)
 --R elt : (%,Integer,Record(k: Integer,c: K)) -> Record(k: Integer,c: K)
 --R ?.? : (%,%) -> % if Integer has SGROUP
---R entries : % -> List Record(k: Integer,c: K)
+--R entries : % -> List(Record(k: Integer,c: K))
 --R entry? : (Record(k: Integer,c: K),%) -> Boolean if $ has finiteAggregate and Record(k: Integer,c: K) has SETCAT
 --R euclideanSize : % -> NonNegativeInteger
---R eval : (%,List Equation Record(k: Integer,c: K)) -> % if Record(k: Integer,c: K) has EVALAB Record(k: Integer,c: K) and Record(k: Integer,c: K) has SETCAT
---R eval : (%,Equation Record(k: Integer,c: K)) -> % if Record(k: Integer,c: K) has EVALAB Record(k: Integer,c: K) and Record(k: Integer,c: K) has SETCAT
---R eval : (%,Record(k: Integer,c: K),Record(k: Integer,c: K)) -> % if Record(k: Integer,c: K) has EVALAB Record(k: Integer,c: K) and Record(k: Integer,c: K) has SETCAT
---R eval : (%,List Record(k: Integer,c: K),List Record(k: Integer,c: K)) -> % if Record(k: Integer,c: K) has EVALAB Record(k: Integer,c: K) and Record(k: Integer,c: K) has SETCAT
---R eval : (%,K) -> Stream K if K has **: (K,Integer) -> K
+--R eval : (%,List(Equation(Record(k: Integer,c: K)))) -> % if Record(k: Integer,c: K) has EVALAB(Record(k: Integer,c: K)) and Record(k: Integer,c: K) has SETCAT
+--R eval : (%,Equation(Record(k: Integer,c: K))) -> % if Record(k: Integer,c: K) has EVALAB(Record(k: Integer,c: K)) and Record(k: Integer,c: K) has SETCAT
+--R eval : (%,Record(k: Integer,c: K),Record(k: Integer,c: K)) -> % if Record(k: Integer,c: K) has EVALAB(Record(k: Integer,c: K)) and Record(k: Integer,c: K) has SETCAT
+--R eval : (%,List(Record(k: Integer,c: K)),List(Record(k: Integer,c: K))) -> % if Record(k: Integer,c: K) has EVALAB(Record(k: Integer,c: K)) and Record(k: Integer,c: K) has SETCAT
+--R eval : (%,K) -> Stream(K) if K has **: (K,Integer) -> K
 --R every? : ((Record(k: Integer,c: K) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
@@ -82086,31 +82278,31 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R first : % -> Record(k: Integer,c: K)
 --R first : (%,NonNegativeInteger) -> %
 --R frst : % -> Record(k: Integer,c: K)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R insert : (Record(k: Integer,c: K),%,Integer) -> %
 --R last : % -> Record(k: Integer,c: K)
 --R last : (%,NonNegativeInteger) -> %
---R leaves : % -> List Record(k: Integer,c: K)
+--R leaves : % -> List(Record(k: Integer,c: K))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map : ((Record(k: Integer,c: K) -> Record(k: Integer,c: K)),%) -> %
 --R map : (((Record(k: Integer,c: K),Record(k: Integer,c: K)) -> Record(k: Integer,c: K)),%,%) -> %
 --R map! : ((Record(k: Integer,c: K) -> Record(k: Integer,c: K)),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Record(k: Integer,c: K),%) -> Boolean if $ has finiteAggregate and Record(k: Integer,c: K) has SETCAT
---R members : % -> List Record(k: Integer,c: K) if $ has finiteAggregate
+--R members : % -> List(Record(k: Integer,c: K)) if $ has finiteAggregate
 --R minIndex : % -> Integer if Integer has ORDSET
 --R monomial : (%,SingletonAsOrderedSet,Integer) -> %
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
---R monomial2series : (List %,List NonNegativeInteger,Integer) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
+--R monomial2series : (List(%),List(NonNegativeInteger),Integer) -> %
 --R more? : (%,NonNegativeInteger) -> Boolean
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R new : (NonNegativeInteger,Record(k: Integer,c: K)) -> %
 --R node? : (%,%) -> Boolean if Record(k: Integer,c: K) has SETCAT
 --R numberOfComputedEntries : % -> NonNegativeInteger
 --R orderIfNegative : % -> Union(Integer,"failed")
---R parts : % -> List Record(k: Integer,c: K) if $ has finiteAggregate
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R parts : % -> List(Record(k: Integer,c: K)) if $ has finiteAggregate
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R qelt : (%,Integer) -> Record(k: Integer,c: K)
 --R qsetelt! : (%,Integer,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R reduce : (((Record(k: Integer,c: K),Record(k: Integer,c: K)) -> Record(k: Integer,c: K)),%) -> Record(k: Integer,c: K) if $ has finiteAggregate
@@ -82122,12 +82314,12 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R rest : (%,NonNegativeInteger) -> %
 --R second : % -> Record(k: Integer,c: K)
 --R select : ((Record(k: Integer,c: K) -> Boolean),%) -> %
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,value,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R setelt : (%,first,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R setelt : (%,rest,%) -> % if $ has shallowlyMutable
 --R setelt : (%,last,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
---R setelt : (%,UniversalSegment Integer,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R setelt : (%,Integer,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R setfirst! : (%,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
 --R setlast! : (%,Record(k: Integer,c: K)) -> Record(k: Integer,c: K) if $ has shallowlyMutable
@@ -82137,12 +82329,12 @@ MyUnivariatePolynomial(x:Symbol, R:Ring):
 --R split! : (%,Integer) -> % if $ has shallowlyMutable
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
---R terms : % -> Stream Record(k: Integer,c: K)
+--R terms : % -> Stream(Record(k: Integer,c: K))
 --R third : % -> Record(k: Integer,c: K)
 --R truncate : (%,Integer,Integer) -> %
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R value : % -> Record(k: Integer,c: K)
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -82580,6 +82772,7 @@ by means of triangular sets.
 
 --S 1 of 1
 )show NewSparseMultivariatePolynomial
+--R 
 --R NewSparseMultivariatePolynomial(R: Ring,VarSet: OrderedSet)  is a domain constructor
 --R Abbreviation for NewSparseMultivariatePolynomial is NSMP 
 --R This constructor is not exposed in this frame.
@@ -82591,42 +82784,40 @@ by means of triangular sets.
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List VarSet) -> %              D : (%,VarSet) -> %
+--R D : (%,List(VarSet)) -> %             D : (%,VarSet) -> %
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List R
+--R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List(R)
 --R coerce : VarSet -> %                  coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R deepestInitial : % -> %               deepestTail : % -> %
 --R differentiate : (%,VarSet) -> %       eval : (%,VarSet,%) -> %
---R eval : (%,VarSet,R) -> %              eval : (%,List %,List %) -> %
---R eval : (%,%,%) -> %                   eval : (%,Equation %) -> %
---R eval : (%,List Equation %) -> %       ground : % -> R
+--R eval : (%,VarSet,R) -> %              eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           ground : % -> R
 --R ground? : % -> Boolean                hash : % -> SingleInteger
 --R head : % -> %                         headReduce : (%,%) -> %
 --R headReduced? : (%,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R init : % -> %                         initiallyReduce : (%,%) -> %
---R iteratedInitials : % -> List %        latex : % -> String
+--R iteratedInitials : % -> List(%)       latex : % -> String
 --R lazyPquo : (%,%,VarSet) -> %          lazyPquo : (%,%) -> %
 --R lazyPrem : (%,%,VarSet) -> %          lazyPrem : (%,%) -> %
 --R leadingCoefficient : % -> R           leadingMonomial : % -> %
---R leastMonomial : % -> %                mainCoefficients : % -> List %
---R mainMonomial : % -> %                 mainMonomials : % -> List %
+--R leastMonomial : % -> %                mainCoefficients : % -> List(%)
+--R mainMonomial : % -> %                 mainMonomials : % -> List(%)
 --R map : ((R -> R),%) -> %               mdeg : % -> NonNegativeInteger
 --R monic? : % -> Boolean                 monicModulo : (%,%) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R mvar : % -> VarSet                    normalized? : (%,%) -> Boolean
 --R one? : % -> Boolean                   pquo : (%,%,VarSet) -> %
 --R pquo : (%,%) -> %                     prem : (%,%,VarSet) -> %
---R prem : (%,%) -> %                     primitiveMonomials : % -> List %
---R quasiMonic? : % -> Boolean            recip : % -> Union(%,"failed")
---R reduced? : (%,List %) -> Boolean      reduced? : (%,%) -> Boolean
+--R prem : (%,%) -> %                     quasiMonic? : % -> Boolean
+--R recip : % -> Union(%,"failed")        reduced? : (%,%) -> Boolean
 --R reductum : (%,VarSet) -> %            reductum : % -> %
 --R retract : % -> VarSet                 retract : % -> R
 --R sample : () -> %                      supRittWu? : (%,%) -> Boolean
---R tail : % -> %                         variables : % -> List VarSet
+--R tail : % -> %                         variables : % -> List(VarSet)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (Fraction Integer,%) -> % if R has ALGEBRA FRAC INT
---R ?*? : (%,Fraction Integer) -> % if R has ALGEBRA FRAC INT
+--R ?*? : (Fraction(Integer),%) -> % if R has ALGEBRA(FRAC(INT))
+--R ?*? : (%,Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
@@ -82634,7 +82825,7 @@ by means of triangular sets.
 --R ?<=? : (%,%) -> Boolean if R has ORDSET
 --R ?>? : (%,%) -> Boolean if R has ORDSET
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
---R D : (%,List VarSet,List NonNegativeInteger) -> %
+--R D : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R D : (%,VarSet,NonNegativeInteger) -> %
 --R LazardQuotient : (%,%,NonNegativeInteger) -> % if R has INTDOM
 --R LazardQuotient2 : (%,%,%,NonNegativeInteger) -> % if R has INTDOM
@@ -82644,34 +82835,36 @@ by means of triangular sets.
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and R has PFECAT or R has CHARNZ
---R coefficient : (%,List VarSet,List NonNegativeInteger) -> %
+--R coefficient : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R coefficient : (%,VarSet,NonNegativeInteger) -> %
---R coefficient : (%,IndexedExponents VarSet) -> R
+--R coefficient : (%,IndexedExponents(VarSet)) -> R
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT)) or R has RETRACT(FRAC(INT))
 --R coerce : SparseMultivariatePolynomial(R,VarSet) -> %
 --R coerce : % -> SparseMultivariatePolynomial(R,VarSet)
---R coerce : % -> Polynomial R if VarSet has KONVERT SYMBOL
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and R has PFECAT
+--R coerce : % -> Polynomial(R) if VarSet has KONVERT(SYMBOL)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and R has PFECAT
 --R content : (%,VarSet) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> Polynomial R if VarSet has KONVERT SYMBOL
---R convert : % -> String if R has RETRACT INT and VarSet has KONVERT SYMBOL
---R convert : Polynomial R -> % if VarSet has KONVERT SYMBOL
---R convert : Polynomial Integer -> % if R has ALGEBRA INT and VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) or R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
---R convert : Polynomial Fraction Integer -> % if R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
---R convert : % -> InputForm if R has KONVERT INFORM and VarSet has KONVERT INFORM
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT and VarSet has KONVERT PATTERN INT
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT and VarSet has KONVERT PATTERN FLOAT
---R degree : (%,List VarSet) -> List NonNegativeInteger
+--R convert : % -> Polynomial(R) if VarSet has KONVERT(SYMBOL)
+--R convert : % -> String if R has RETRACT(INT) and VarSet has KONVERT(SYMBOL)
+--R convert : Polynomial(R) -> % if VarSet has KONVERT(SYMBOL)
+--R convert : Polynomial(Integer) -> % if R has ALGEBRA(INT) and VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) or R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
+--R convert : Polynomial(Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
+--R convert : % -> InputForm if R has KONVERT(INFORM) and VarSet has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT)) and VarSet has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT)) and VarSet has KONVERT(PATTERN(FLOAT))
+--R degree : (%,List(VarSet)) -> List(NonNegativeInteger)
 --R degree : (%,VarSet) -> NonNegativeInteger
---R degree : % -> IndexedExponents VarSet
---R differentiate : (%,List VarSet,List NonNegativeInteger) -> %
+--R degree : % -> IndexedExponents(VarSet)
+--R differentiate : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R differentiate : (%,VarSet,NonNegativeInteger) -> %
---R differentiate : (%,List VarSet) -> %
+--R differentiate : (%,List(VarSet)) -> %
 --R discriminant : (%,VarSet) -> % if R has COMRING
---R eval : (%,List VarSet,List %) -> %
---R eval : (%,List VarSet,List R) -> %
+--R eval : (%,List(VarSet),List(%)) -> %
+--R eval : (%,List(VarSet),List(R)) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
 --R exactQuotient : (%,%) -> % if R has INTDOM
 --R exactQuotient : (%,R) -> % if R has INTDOM
 --R exactQuotient! : (%,%) -> % if R has INTDOM
@@ -82679,21 +82872,21 @@ by means of triangular sets.
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R extendedSubResultantGcd : (%,%) -> Record(gcd: %,coef1: %,coef2: %) if R has INTDOM
---R factor : % -> Factored % if R has PFECAT
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R factor : % -> Factored(%) if R has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R gcd : (%,%) -> % if R has GCDDOM
---R gcd : List % -> % if R has GCDDOM
+--R gcd : List(%) -> % if R has GCDDOM
 --R gcd : (R,%) -> R if R has GCDDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GCDDOM
 --R halfExtendedSubResultantGcd1 : (%,%) -> Record(gcd: %,coef1: %) if R has INTDOM
 --R halfExtendedSubResultantGcd2 : (%,%) -> Record(gcd: %,coef2: %) if R has INTDOM
---R headReduced? : (%,List %) -> Boolean
---R initiallyReduced? : (%,List %) -> Boolean
+--R headReduced? : (%,List(%)) -> Boolean
+--R initiallyReduced? : (%,List(%)) -> Boolean
 --R initiallyReduced? : (%,%) -> Boolean
 --R isExpt : % -> Union(Record(var: VarSet,exponent: NonNegativeInteger),"failed")
---R isPlus : % -> Union(List %,"failed")
---R isTimes : % -> Union(List %,"failed")
+--R isPlus : % -> Union(List(%),"failed")
+--R isTimes : % -> Union(List(%),"failed")
 --R lastSubResultant : (%,%) -> % if R has INTDOM
 --R lazyPremWithDefault : (%,%,VarSet) -> Record(coef: %,gap: NonNegativeInteger,remainder: %)
 --R lazyPremWithDefault : (%,%) -> Record(coef: %,gap: NonNegativeInteger,remainder: %)
@@ -82701,71 +82894,73 @@ by means of triangular sets.
 --R lazyPseudoDivide : (%,%) -> Record(coef: %,gap: NonNegativeInteger,quotient: %,remainder: %)
 --R lazyResidueClass : (%,%) -> Record(polnum: %,polden: %,power: NonNegativeInteger)
 --R lcm : (%,%) -> % if R has GCDDOM
---R lcm : List % -> % if R has GCDDOM
+--R lcm : List(%) -> % if R has GCDDOM
 --R leadingCoefficient : (%,VarSet) -> %
 --R mainContent : % -> % if R has GCDDOM
 --R mainPrimitivePart : % -> % if R has GCDDOM
 --R mainSquareFreePart : % -> % if R has GCDDOM
 --R mainVariable : % -> Union(VarSet,"failed")
---R mapExponents : ((IndexedExponents VarSet -> IndexedExponents VarSet),%) -> %
+--R mapExponents : ((IndexedExponents(VarSet) -> IndexedExponents(VarSet)),%) -> %
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---R minimumDegree : (%,List VarSet) -> List NonNegativeInteger
+--R minimumDegree : (%,List(VarSet)) -> List(NonNegativeInteger)
 --R minimumDegree : (%,VarSet) -> NonNegativeInteger
---R minimumDegree : % -> IndexedExponents VarSet
+--R minimumDegree : % -> IndexedExponents(VarSet)
 --R monicDivide : (%,%,VarSet) -> Record(quotient: %,remainder: %)
---R monomial : (%,List VarSet,List NonNegativeInteger) -> %
+--R monomial : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,VarSet,NonNegativeInteger) -> %
---R monomial : (R,IndexedExponents VarSet) -> %
---R multivariate : (SparseUnivariatePolynomial %,VarSet) -> %
---R multivariate : (SparseUnivariatePolynomial R,VarSet) -> %
+--R monomial : (R,IndexedExponents(VarSet)) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),VarSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),VarSet) -> %
 --R nextsubResultant2 : (%,%,%,%) -> % if R has INTDOM
---R normalized? : (%,List %) -> Boolean
+--R normalized? : (%,List(%)) -> Boolean
 --R numberOfMonomials : % -> NonNegativeInteger
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT and VarSet has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT and VarSet has PATMAB FLOAT
---R pomopo! : (%,R,IndexedExponents VarSet,%) -> %
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT) and VarSet has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT) and VarSet has PATMAB(FLOAT)
+--R pomopo! : (%,R,IndexedExponents(VarSet),%) -> %
 --R primPartElseUnitCanonical : % -> % if R has INTDOM
 --R primPartElseUnitCanonical! : % -> % if R has INTDOM
 --R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,VarSet) -> % if R has GCDDOM
 --R primitivePart : % -> % if R has GCDDOM
 --R primitivePart! : % -> % if R has GCDDOM
 --R pseudoDivide : (%,%) -> Record(quotient: %,remainder: %)
---R reducedSystem : Matrix % -> Matrix R
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
+--R reduced? : (%,List(%)) -> Boolean
+--R reducedSystem : Matrix(%) -> Matrix(R)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
 --R resultant : (%,%) -> % if R has INTDOM
 --R resultant : (%,%,VarSet) -> % if R has COMRING
 --R retract : % -> SparseMultivariatePolynomial(R,VarSet)
---R retract : Polynomial R -> % if VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) and not has(R,Algebra Integer) or R has ALGEBRA INT and VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) and not has(R,IntegerNumberSystem) or R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL and not has(R,QuotientFieldCategory Integer)
---R retract : Polynomial Integer -> % if R has ALGEBRA INT and VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) or R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
---R retract : Polynomial Fraction Integer -> % if R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
+--R retract : Polynomial(R) -> % if VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) and not(has(R,Algebra(Integer))) or R has ALGEBRA(INT) and VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) and not(has(R,IntegerNumberSystem)) or R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL) and not(has(R,QuotientFieldCategory(Integer)))
+--R retract : Polynomial(Integer) -> % if R has ALGEBRA(INT) and VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) or R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
+--R retract : Polynomial(Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(SparseMultivariatePolynomial(R,VarSet),"failed")
---R retractIfCan : Polynomial R -> Union(%,"failed") if VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) and not has(R,Algebra Integer) or R has ALGEBRA INT and VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) and not has(R,IntegerNumberSystem) or R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL and not has(R,QuotientFieldCategory Integer)
---R retractIfCan : Polynomial Integer -> Union(%,"failed") if R has ALGEBRA INT and VarSet has KONVERT SYMBOL and not has(R,Algebra Fraction Integer) or R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
---R retractIfCan : Polynomial Fraction Integer -> Union(%,"failed") if R has ALGEBRA FRAC INT and VarSet has KONVERT SYMBOL
+--R retractIfCan : Polynomial(R) -> Union(%,"failed") if VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) and not(has(R,Algebra(Integer))) or R has ALGEBRA(INT) and VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) and not(has(R,IntegerNumberSystem)) or R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL) and not(has(R,QuotientFieldCategory(Integer)))
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed") if R has ALGEBRA(INT) and VarSet has KONVERT(SYMBOL) and not(has(R,Algebra(Fraction(Integer)))) or R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
+--R retractIfCan : Polynomial(Fraction(Integer)) -> Union(%,"failed") if R has ALGEBRA(FRAC(INT)) and VarSet has KONVERT(SYMBOL)
 --R retractIfCan : % -> Union(VarSet,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(R,"failed")
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has PFECAT
---R squareFree : % -> Factored % if R has GCDDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if R has PFECAT
+--R squareFree : % -> Factored(%) if R has GCDDOM
 --R squareFreePart : % -> % if R has GCDDOM
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
---R subResultantChain : (%,%) -> List % if R has INTDOM
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
+--R subResultantChain : (%,%) -> List(%) if R has INTDOM
 --R subResultantGcd : (%,%) -> % if R has INTDOM
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R totalDegree : (%,List VarSet) -> NonNegativeInteger
+--R totalDegree : (%,List(VarSet)) -> NonNegativeInteger
 --R totalDegree : % -> NonNegativeInteger
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM
---R univariate : % -> SparseUnivariatePolynomial R
---R univariate : (%,VarSet) -> SparseUnivariatePolynomial %
+--R univariate : % -> SparseUnivariatePolynomial(R)
+--R univariate : (%,VarSet) -> SparseUnivariatePolynomial(%)
 --R
 --E 1
 
@@ -83351,7 +83546,8 @@ constructur {\bf SparseUnivariatePolynomial}.
 
 --S 1 of 1
 )show NewSparseUnivariatePolynomial
---R NewSparseUnivariatePolynomial R: Ring  is a domain constructor
+--R 
+--R NewSparseUnivariatePolynomial(R: Ring)  is a domain constructor
 --R Abbreviation for NewSparseUnivariatePolynomial is NSUP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for NSUP 
@@ -83365,25 +83561,23 @@ constructur {\bf SparseUnivariatePolynomial}.
 --R D : (%,(R -> R)) -> %                 D : % -> %
 --R D : (%,NonNegativeInteger) -> %       1 : () -> %
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R coefficients : % -> List R            coerce : R -> %
+--R coefficients : % -> List(R)           coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> NonNegativeInteger      differentiate : % -> %
 --R ?.? : (%,%) -> %                      ?.? : (%,R) -> R
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
 --R ground : % -> R                       ground? : % -> Boolean
 --R hash : % -> SingleInteger             init : () -> % if R has STEP
 --R latex : % -> String                   lazyPseudoQuotient : (%,%) -> %
 --R leadingCoefficient : % -> R           leadingMonomial : % -> %
 --R map : ((R -> R),%) -> %               monicModulo : (%,%) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
---R one? : % -> Boolean                   primitiveMonomials : % -> List %
---R pseudoRemainder : (%,%) -> %          recip : % -> Union(%,"failed")
---R reductum : % -> %                     retract : % -> R
---R sample : () -> %                      zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
---R ?*? : (Fraction Integer,%) -> % if R has ALGEBRA FRAC INT
---R ?*? : (%,Fraction Integer) -> % if R has ALGEBRA FRAC INT
+--R monomial? : % -> Boolean              monomials : % -> List(%)
+--R one? : % -> Boolean                   pseudoRemainder : (%,%) -> %
+--R recip : % -> Union(%,"failed")        reductum : % -> %
+--R retract : % -> R                      sample : () -> %
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R ?*? : (Fraction(Integer),%) -> % if R has ALGEBRA(FRAC(INT))
+--R ?*? : (%,Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT))
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
@@ -83392,157 +83586,160 @@ constructur {\bf SparseUnivariatePolynomial}.
 --R ?>? : (%,%) -> Boolean if R has ORDSET
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
 --R D : (%,(R -> R),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R D : (%,List Symbol) -> % if R has PDRING SYMBOL
---R D : (%,Symbol) -> % if R has PDRING SYMBOL
---R D : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if R has PDRING(SYMBOL)
+--R D : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R D : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
---R D : (%,List SingletonAsOrderedSet) -> %
+--R D : (%,List(SingletonAsOrderedSet)) -> %
 --R D : (%,SingletonAsOrderedSet) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R associates? : (%,%) -> Boolean if R has INTDOM
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and R has PFECAT or R has CHARNZ
---R coefficient : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R coefficient : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R coefficient : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R coefficient : (%,NonNegativeInteger) -> R
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT
---R coerce : SparseUnivariatePolynomial R -> %
---R coerce : % -> SparseUnivariatePolynomial R
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT)) or R has RETRACT(FRAC(INT))
+--R coerce : SparseUnivariatePolynomial(R) -> %
+--R coerce : % -> SparseUnivariatePolynomial(R)
 --R coerce : SingletonAsOrderedSet -> %
---R composite : (Fraction %,%) -> Union(Fraction %,"failed") if R has INTDOM
+--R composite : (Fraction(%),%) -> Union(Fraction(%),"failed") if R has INTDOM
 --R composite : (%,%) -> Union(%,"failed") if R has INTDOM
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and R has PFECAT
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and R has PFECAT
 --R content : (%,SingletonAsOrderedSet) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> InputForm if SingletonAsOrderedSet has KONVERT INFORM and R has KONVERT INFORM
---R convert : % -> Pattern Integer if SingletonAsOrderedSet has KONVERT PATTERN INT and R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if SingletonAsOrderedSet has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT
---R degree : (%,List SingletonAsOrderedSet) -> List NonNegativeInteger
+--R convert : % -> InputForm if SingletonAsOrderedSet has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if SingletonAsOrderedSet has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if SingletonAsOrderedSet has KONVERT(PATTERN(FLOAT)) and R has KONVERT(PATTERN(FLOAT))
+--R degree : (%,List(SingletonAsOrderedSet)) -> List(NonNegativeInteger)
 --R degree : (%,SingletonAsOrderedSet) -> NonNegativeInteger
 --R differentiate : (%,(R -> R),%) -> %
 --R differentiate : (%,(R -> R)) -> %
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if R has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if R has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> %
---R differentiate : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R differentiate : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R differentiate : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
---R differentiate : (%,List SingletonAsOrderedSet) -> %
+--R differentiate : (%,List(SingletonAsOrderedSet)) -> %
 --R differentiate : (%,SingletonAsOrderedSet) -> %
 --R discriminant : % -> R if R has COMRING
 --R discriminant : (%,SingletonAsOrderedSet) -> % if R has COMRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R divideExponents : (%,NonNegativeInteger) -> Union(%,"failed")
---R ?.? : (%,Fraction %) -> Fraction % if R has INTDOM
---R elt : (Fraction %,R) -> R if R has FIELD
---R elt : (Fraction %,Fraction %) -> Fraction % if R has INTDOM
+--R ?.? : (%,Fraction(%)) -> Fraction(%) if R has INTDOM
+--R elt : (Fraction(%),R) -> R if R has FIELD
+--R elt : (Fraction(%),Fraction(%)) -> Fraction(%) if R has INTDOM
 --R euclideanSize : % -> NonNegativeInteger if R has FIELD
---R eval : (%,List SingletonAsOrderedSet,List %) -> %
+--R eval : (%,List(SingletonAsOrderedSet),List(%)) -> %
 --R eval : (%,SingletonAsOrderedSet,%) -> %
---R eval : (%,List SingletonAsOrderedSet,List R) -> %
+--R eval : (%,List(SingletonAsOrderedSet),List(R)) -> %
 --R eval : (%,SingletonAsOrderedSet,R) -> %
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has FIELD
 --R extendedResultant : (%,%) -> Record(resultant: R,coef1: %,coef2: %) if R has INTDOM
 --R extendedSubResultantGcd : (%,%) -> Record(gcd: %,coef1: %,coef2: %) if R has INTDOM
---R factor : % -> Factored % if R has PFECAT
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R factor : % -> Factored(%) if R has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R fmecg : (%,NonNegativeInteger,R,%) -> %
 --R gcd : (%,%) -> % if R has GCDDOM
---R gcd : List % -> % if R has GCDDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM
+--R gcd : List(%) -> % if R has GCDDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GCDDOM
 --R halfExtendedResultant1 : (%,%) -> Record(resultant: R,coef1: %) if R has INTDOM
 --R halfExtendedResultant2 : (%,%) -> Record(resultant: R,coef2: %) if R has INTDOM
 --R halfExtendedSubResultantGcd1 : (%,%) -> Record(gcd: %,coef1: %) if R has INTDOM
 --R halfExtendedSubResultantGcd2 : (%,%) -> Record(gcd: %,coef2: %) if R has INTDOM
---R integrate : % -> % if R has ALGEBRA FRAC INT
+--R integrate : % -> % if R has ALGEBRA(FRAC(INT))
 --R isExpt : % -> Union(Record(var: SingletonAsOrderedSet,exponent: NonNegativeInteger),"failed")
---R isPlus : % -> Union(List %,"failed")
---R isTimes : % -> Union(List %,"failed")
+--R isPlus : % -> Union(List(%),"failed")
+--R isTimes : % -> Union(List(%),"failed")
 --R karatsubaDivide : (%,NonNegativeInteger) -> Record(quotient: %,remainder: %)
 --R lastSubResultant : (%,%) -> % if R has INTDOM
 --R lazyPseudoDivide : (%,%) -> Record(coef: R,gap: NonNegativeInteger,quotient: %,remainder: %)
 --R lazyPseudoRemainder : (%,%) -> %
 --R lazyResidueClass : (%,%) -> Record(polnum: %,polden: R,power: NonNegativeInteger)
 --R lcm : (%,%) -> % if R has GCDDOM
---R lcm : List % -> % if R has GCDDOM
+--R lcm : List(%) -> % if R has GCDDOM
 --R mainVariable : % -> Union(SingletonAsOrderedSet,"failed")
---R makeSUP : % -> SparseUnivariatePolynomial R
+--R makeSUP : % -> SparseUnivariatePolynomial(R)
 --R mapExponents : ((NonNegativeInteger -> NonNegativeInteger),%) -> %
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---R minimumDegree : (%,List SingletonAsOrderedSet) -> List NonNegativeInteger
+--R minimumDegree : (%,List(SingletonAsOrderedSet)) -> List(NonNegativeInteger)
 --R minimumDegree : (%,SingletonAsOrderedSet) -> NonNegativeInteger
 --R minimumDegree : % -> NonNegativeInteger
 --R monicDivide : (%,%) -> Record(quotient: %,remainder: %)
 --R monicDivide : (%,%,SingletonAsOrderedSet) -> Record(quotient: %,remainder: %)
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (R,NonNegativeInteger) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R multiplyExponents : (%,NonNegativeInteger) -> %
---R multivariate : (SparseUnivariatePolynomial %,SingletonAsOrderedSet) -> %
---R multivariate : (SparseUnivariatePolynomial R,SingletonAsOrderedSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),SingletonAsOrderedSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),SingletonAsOrderedSet) -> %
 --R nextItem : % -> Union(%,"failed") if R has STEP
 --R numberOfMonomials : % -> NonNegativeInteger
 --R order : (%,%) -> NonNegativeInteger if R has INTDOM
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SingletonAsOrderedSet has PATMAB INT and R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SingletonAsOrderedSet has PATMAB FLOAT and R has PATMAB FLOAT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SingletonAsOrderedSet has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SingletonAsOrderedSet has PATMAB(FLOAT) and R has PATMAB(FLOAT)
 --R pomopo! : (%,R,NonNegativeInteger,%) -> %
 --R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,SingletonAsOrderedSet) -> % if R has GCDDOM
 --R primitivePart : % -> % if R has GCDDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %) if R has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has FIELD
 --R pseudoDivide : (%,%) -> Record(coef: R,quotient: %,remainder: %) if R has INTDOM
 --R pseudoQuotient : (%,%) -> % if R has INTDOM
 --R ?quo? : (%,%) -> % if R has FIELD
---R reducedSystem : Matrix % -> Matrix R
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
+--R reducedSystem : Matrix(%) -> Matrix(R)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
 --R ?rem? : (%,%) -> % if R has FIELD
 --R resultant : (%,%) -> R if R has COMRING
 --R resultant : (%,%,SingletonAsOrderedSet) -> % if R has COMRING
---R retract : % -> SparseUnivariatePolynomial R
+--R retract : % -> SparseUnivariatePolynomial(R)
 --R retract : % -> SingletonAsOrderedSet
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retractIfCan : % -> Union(SparseUnivariatePolynomial R,"failed")
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(SparseUnivariatePolynomial(R),"failed")
 --R retractIfCan : % -> Union(SingletonAsOrderedSet,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(R,"failed")
 --R separate : (%,%) -> Record(primePart: %,commonPart: %) if R has GCDDOM
 --R shiftLeft : (%,NonNegativeInteger) -> %
 --R shiftRight : (%,NonNegativeInteger) -> %
 --R sizeLess? : (%,%) -> Boolean if R has FIELD
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has PFECAT
---R squareFree : % -> Factored % if R has GCDDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if R has PFECAT
+--R squareFree : % -> Factored(%) if R has GCDDOM
 --R squareFreePart : % -> % if R has GCDDOM
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --R subResultantGcd : (%,%) -> % if R has INTDOM
---R subResultantsChain : (%,%) -> List % if R has INTDOM
+--R subResultantsChain : (%,%) -> List(%) if R has INTDOM
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R totalDegree : (%,List SingletonAsOrderedSet) -> NonNegativeInteger
+--R totalDegree : (%,List(SingletonAsOrderedSet)) -> NonNegativeInteger
 --R totalDegree : % -> NonNegativeInteger
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM
---R univariate : % -> SparseUnivariatePolynomial R
---R univariate : (%,SingletonAsOrderedSet) -> SparseUnivariatePolynomial %
---R unmakeSUP : SparseUnivariatePolynomial R -> %
---R variables : % -> List SingletonAsOrderedSet
---R vectorise : (%,NonNegativeInteger) -> Vector R
+--R univariate : % -> SparseUnivariatePolynomial(R)
+--R univariate : (%,SingletonAsOrderedSet) -> SparseUnivariatePolynomial(%)
+--R unmakeSUP : SparseUnivariatePolynomial(R) -> %
+--R variables : % -> List(SingletonAsOrderedSet)
+--R vectorise : (%,NonNegativeInteger) -> Vector(R)
 --R
 --E 1
 
@@ -83978,7 +84175,7 @@ NewSparseUnivariatePolynomial(R): Exports == Implementation where
 --R 
 --R
 --R   (1)  []
---R                                                              Type: List None
+--R                                                             Type: List(None)
 --E 1
 
 --S 2 of 3
@@ -83986,7 +84183,7 @@ NewSparseUnivariatePolynomial(R): Exports == Implementation where
 --R 
 --R
 --R   (2)  []
---R                                                             Type: List Float
+--R                                                            Type: List(Float)
 --E 2
 
 --S 3 of 3
@@ -83994,7 +84191,7 @@ NewSparseUnivariatePolynomial(R): Exports == Implementation where
 --R 
 --R
 --R   (3)  []
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 3 
 )spool
 )lisp (bye)
@@ -84236,7 +84433,7 @@ x:=monomial(1,1)$UFPS PF 1783
 --R 
 --R
 --R   (1)  x
---R                            Type: UnivariateFormalPowerSeries PrimeField 1783
+--R                          Type: UnivariateFormalPowerSeries(PrimeField(1783))
 --E 1
 
 --S 2 of 8
@@ -84245,7 +84442,7 @@ s:=retract(sin x)$NOTTING PF 1783
 --R
 --R                3        5       7       9      11
 --R   (2)  x + 297x  + 1679x  + 427x  + 316x  + O(x  )
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 2
 
 --S 3 of 8
@@ -84254,7 +84451,7 @@ s^2
 --R
 --R                3       5        7        9      11
 --R   (3)  x + 594x  + 535x  + 1166x  + 1379x  + O(x  )
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 3
 
 --S 4 of 8
@@ -84263,7 +84460,7 @@ s^-1
 --R
 --R                 3       5       7        9      11
 --R   (4)  x + 1486x  + 847x  + 207x  + 1701x  + O(x  )
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 4
 
 --S 5 of 8
@@ -84272,7 +84469,7 @@ s^-1*s
 --R
 --R               11
 --R   (5)  x + O(x  )
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 5
 
 --S 6 of 8
@@ -84281,20 +84478,20 @@ s*s^-1
 --R
 --R               11
 --R   (6)  x + O(x  )
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 6
 
 --S 7 of 8
 sample()$NOTTING(PF(1783))
 --R
 --R   (7)  x
---R                                        Type: NottinghamGroup PrimeField 1783
+--R                                      Type: NottinghamGroup(PrimeField(1783))
 --E 7
 
 --S 8 of 8
 )show NottinghamGroup
 --R 
---R NottinghamGroup F: FiniteFieldCategory  is a domain constructor
+--R NottinghamGroup(F: FiniteFieldCategory)  is a domain constructor
 --R Abbreviation for NottinghamGroup is NOTTING 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for NOTTING 
@@ -84311,7 +84508,7 @@ sample()$NOTTING(PF(1783))
 --R sample : () -> %                      ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R retract : UnivariateFormalPowerSeries F -> %
+--R retract : UnivariateFormalPowerSeries(F) -> %
 --R
 --E 8
 
@@ -84431,6 +84628,7 @@ NottinghamGroup(F:FiniteFieldCategory): Group with
 
 --S 1 of 1
 )show NumericalIntegrationProblem
+--R 
 --R NumericalIntegrationProblem  is a domain constructor
 --R Abbreviation for NumericalIntegrationProblem is NIPROB 
 --R This constructor is exposed in this frame.
@@ -84440,10 +84638,10 @@ NottinghamGroup(F:FiniteFieldCategory): Group with
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R coerce : Union(nia: Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),mdnia: Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)) -> %
---R coerce : Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> %
---R coerce : Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> %
---R retract : % -> Union(nia: Record(var: Symbol,fn: Expression DoubleFloat,range: Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),mdnia: Record(fn: Expression DoubleFloat,range: List Segment OrderedCompletion DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat))
+--R coerce : Union(nia: Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),mdnia: Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat)) -> %
+--R coerce : Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat) -> %
+--R coerce : Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat) -> %
+--R retract : % -> Union(nia: Record(var: Symbol,fn: Expression(DoubleFloat),range: Segment(OrderedCompletion(DoubleFloat)),abserr: DoubleFloat,relerr: DoubleFloat),mdnia: Record(fn: Expression(DoubleFloat),range: List(Segment(OrderedCompletion(DoubleFloat))),abserr: DoubleFloat,relerr: DoubleFloat))
 --R
 --E 1
 
@@ -84557,6 +84755,7 @@ NumericalIntegrationProblem(): EE == II where
 
 --S 1 of 1
 )show NumericalODEProblem
+--R 
 --R NumericalODEProblem  is a domain constructor
 --R Abbreviation for NumericalODEProblem is ODEPROB 
 --R This constructor is exposed in this frame.
@@ -84566,8 +84765,8 @@ NumericalIntegrationProblem(): EE == II where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R coerce : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> %
---R retract : % -> Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)
+--R coerce : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> %
+--R retract : % -> Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat)
 --R
 --E 1
 
@@ -84665,6 +84864,7 @@ NumericalODEProblem(): EE == II where
 
 --S 1 of 1
 )show NumericalOptimizationProblem
+--R 
 --R NumericalOptimizationProblem  is a domain constructor
 --R Abbreviation for NumericalOptimizationProblem is OPTPROB 
 --R This constructor is exposed in this frame.
@@ -84674,10 +84874,10 @@ NumericalODEProblem(): EE == II where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R coerce : Union(noa: Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat),lsa: Record(lfn: List Expression DoubleFloat,init: List DoubleFloat)) -> %
---R coerce : Record(lfn: List Expression DoubleFloat,init: List DoubleFloat) -> %
---R coerce : Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat) -> %
---R retract : % -> Union(noa: Record(fn: Expression DoubleFloat,init: List DoubleFloat,lb: List OrderedCompletion DoubleFloat,cf: List Expression DoubleFloat,ub: List OrderedCompletion DoubleFloat),lsa: Record(lfn: List Expression DoubleFloat,init: List DoubleFloat))
+--R coerce : Union(noa: Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))),lsa: Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat))) -> %
+--R coerce : Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)) -> %
+--R coerce : Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))) -> %
+--R retract : % -> Union(noa: Record(fn: Expression(DoubleFloat),init: List(DoubleFloat),lb: List(OrderedCompletion(DoubleFloat)),cf: List(Expression(DoubleFloat)),ub: List(OrderedCompletion(DoubleFloat))),lsa: Record(lfn: List(Expression(DoubleFloat)),init: List(DoubleFloat)))
 --R
 --E 1
 
@@ -84792,6 +84992,7 @@ NumericalOptimizationProblem(): EE == II where
 
 --S 1 of 1
 )show NumericalPDEProblem
+--R 
 --R NumericalPDEProblem  is a domain constructor
 --R Abbreviation for NumericalPDEProblem is PDEPROB 
 --R This constructor is exposed in this frame.
@@ -84801,8 +85002,8 @@ NumericalOptimizationProblem(): EE == II where
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R coerce : Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat) -> %
---R retract : % -> Record(pde: List Expression DoubleFloat,constraints: List Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix DoubleFloat,dFinish: Matrix DoubleFloat),f: List List Expression DoubleFloat,st: String,tol: DoubleFloat)
+--R coerce : Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat) -> %
+--R retract : % -> Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat)
 --R
 --E 1
 
@@ -84957,7 +85158,7 @@ oci1 := octon(1,2,3,4,5,6,7,8)
 --R 
 --R
 --R   (1)  1 + 2i + 3j + 4k + 5E + 6I + 7J + 8K
---R                                                       Type: Octonion Integer
+--R                                                      Type: Octonion(Integer)
 --E 1
 
 --S 2 of 15
@@ -84965,7 +85166,7 @@ oci2 := octon(7,2,3,-4,5,6,-7,0)
 --R 
 --R
 --R   (2)  7 + 2i + 3j - 4k + 5E + 6I - 7J
---R                                                       Type: Octonion Integer
+--R                                                      Type: Octonion(Integer)
 --E 2
 
 --S 3 of 15
@@ -84973,7 +85174,7 @@ oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))
 --R 
 --R
 --R   (3)  - 7 - 12i + 3j - 10k + 5E + 6I + 9J
---R                                                       Type: Octonion Integer
+--R                                                      Type: Octonion(Integer)
 --E 3
 
 --S 4 of 15
@@ -84981,7 +85182,7 @@ oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))
 --R 
 --R
 --R   (4)  2696i - 2928j - 4072k + 16E - 1192I + 832J + 2616K
---R                                                       Type: Octonion Integer
+--R                                                      Type: Octonion(Integer)
 --E 4
 
 --S 5 of 15
@@ -84990,7 +85191,7 @@ oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))
 --R 
 --R
 --R   (5)  [1,2,3,4,5,6,7,8]
---R                                                   Type: List PositiveInteger
+--R                                                  Type: List(PositiveInteger)
 --E 5
 
 --S 6 of 15
@@ -84998,7 +85199,7 @@ q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk)
 --R 
 --R
 --R   (6)  q1 + qi i + qj j + qk k
---R                                          Type: Quaternion Polynomial Integer
+--R                                        Type: Quaternion(Polynomial(Integer))
 --E 6
 
 --S 7 of 15
@@ -85006,7 +85207,7 @@ E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0)
 --R 
 --R
 --R   (7)  E
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 7
 
 --S 8 of 15
@@ -85014,7 +85215,7 @@ q * E
 --R 
 --R
 --R   (8)  q1 E + qi I + qj J + qk K
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 8
 
 --S 9 of 15
@@ -85022,7 +85223,7 @@ E * q
 --R 
 --R
 --R   (9)  q1 E - qi I - qj J - qk K
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 9
 
 --S 10 of 15
@@ -85030,7 +85231,7 @@ q * 1$(Octonion Polynomial Integer)
 --R 
 --R
 --R   (10)  q1 + qi i + qj j + qk k
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 10
 
 --S 11 of 15
@@ -85038,7 +85239,7 @@ q * 1$(Octonion Polynomial Integer)
 --R 
 --R
 --R   (11)  q1 + qi i + qj j + qk k
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 11
 
 --S 12 of 15
@@ -85046,7 +85247,7 @@ o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK)
 --R 
 --R
 --R   (12)  o1 + oi i + oj j + ok k + oE E + oI I + oJ J + oK K
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 12
 
 --S 13 of 15
@@ -85055,7 +85256,7 @@ norm o
 --R
 --R           2     2     2     2     2     2     2     2
 --R   (13)  ok  + oj  + oi  + oK  + oJ  + oI  + oE  + o1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 13
 
 --S 14 of 15
@@ -85063,7 +85264,7 @@ p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK)
 --R 
 --R
 --R   (14)  p1 + pi i + pj j + pk k + pE E + pI I + pJ J + pK K
---R                                            Type: Octonion Polynomial Integer
+--R                                          Type: Octonion(Polynomial(Integer))
 --E 14
 
 --S 15 of 15
@@ -85071,7 +85272,7 @@ norm(o*p)-norm(p)*norm(o)
 --R 
 --R
 --R   (15)  0
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 15
 )spool
 )lisp (bye)
@@ -85327,6 +85528,7 @@ Octonion(R:CommutativeRing): export == impl where
 
 --S 1 of 1
 )show ODEIntensityFunctionsTable
+--R 
 --R ODEIntensityFunctionsTable  is a domain constructor
 --R Abbreviation for ODEIntensityFunctionsTable is ODEIFTBL 
 --R This constructor is exposed in this frame.
@@ -85334,10 +85536,10 @@ Octonion(R:CommutativeRing): export == impl where
 --R
 --R------------------------------- Operations --------------------------------
 --R clearTheIFTable : () -> Void          showTheIFTable : () -> %
---R iFTable : List Record(key: Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float)) -> %
---R insert! : Record(key: Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float)) -> %
---R keys : % -> List Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat)
---R showIntensityFunctions : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector Expression DoubleFloat,yinit: List DoubleFloat,intvals: List DoubleFloat,g: Expression DoubleFloat,abserr: DoubleFloat,relerr: DoubleFloat) -> Union(Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float),"failed")
+--R iFTable : List(Record(key: Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float))) -> %
+--R insert! : Record(key: Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat),entry: Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float)) -> %
+--R keys : % -> List(Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat))
+--R showIntensityFunctions : Record(xinit: DoubleFloat,xend: DoubleFloat,fn: Vector(Expression(DoubleFloat)),yinit: List(DoubleFloat),intvals: List(DoubleFloat),g: Expression(DoubleFloat),abserr: DoubleFloat,relerr: DoubleFloat) -> Union(Record(stiffness: Float,stability: Float,expense: Float,accuracy: Float,intermediateResults: Float),"failed")
 --R
 --E 1
 
@@ -85466,7 +85668,7 @@ oneDimensionalArray [i**2 for i in 1..10]
 --R 
 --R
 --R   (1)  [1,4,9,16,25,36,49,64,81,100]
---R                                    Type: OneDimensionalArray PositiveInteger
+--R                                   Type: OneDimensionalArray(PositiveInteger)
 --E 1
 
 --S 2 of 9
@@ -85474,7 +85676,7 @@ a : ARRAY1 INT := new(10,0)
 --R 
 --R
 --R   (2)  [0,0,0,0,0,0,0,0,0,0]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 2
 
 --S 3 of 9
@@ -85482,7 +85684,7 @@ for i in 1..10 repeat a.i := i; a
 --R 
 --R
 --R   (3)  [1,2,3,4,5,6,7,8,9,10]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 3
 
 --S 4 of 9
@@ -85490,7 +85692,7 @@ map!(i +-> i ** 2,a); a
 --R 
 --R
 --R   (4)  [1,4,9,16,25,36,49,64,81,100]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 4
 
 --S 5 of 9
@@ -85498,7 +85700,7 @@ reverse! a
 --R 
 --R
 --R   (5)  [100,81,64,49,36,25,16,9,4,1]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 5
 
 --S 6 of 9
@@ -85506,7 +85708,7 @@ swap!(a,4,5); a
 --R 
 --R
 --R   (6)  [100,81,64,36,49,25,16,9,4,1]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 6
 
 --S 7 of 9
@@ -85514,7 +85716,7 @@ sort! a
 --R 
 --R
 --R   (7)  [1,4,9,16,25,36,49,64,81,100]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 7
 
 --S 8 of 9
@@ -85522,7 +85724,7 @@ b := a(6..10)
 --R 
 --R
 --R   (8)  [36,49,64,81,100]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 8
 
 --S 9 of 9
@@ -85530,7 +85732,7 @@ copyInto!(a,b,1)
 --R 
 --R
 --R   (9)  [36,49,64,81,100,36,49,64,81,100]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 9
 )spool
 )lisp (bye)
@@ -85734,7 +85936,8 @@ OneDimensionalArray(S:Type): Exports == Implementation where
 
 --S 1 of 1
 )show OnePointCompletion
---R OnePointCompletion R: SetCategory  is a domain constructor
+--R 
+--R OnePointCompletion(R: SetCategory)  is a domain constructor
 --R Abbreviation for OnePointCompletion is ONECOMP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ONECOMP 
@@ -85763,22 +85966,22 @@ OneDimensionalArray(S:Type): Exports == Implementation where
 --R ?^? : (%,PositiveInteger) -> % if R has ORDRING
 --R abs : % -> % if R has ORDRING
 --R characteristic : () -> NonNegativeInteger if R has ORDRING
---R coerce : Integer -> % if R has ORDRING or R has RETRACT INT
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Integer -> % if R has ORDRING or R has RETRACT(INT)
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R max : (%,%) -> % if R has ORDRING
 --R min : (%,%) -> % if R has ORDRING
 --R negative? : % -> Boolean if R has ORDRING
 --R one? : % -> Boolean if R has ORDRING
 --R positive? : % -> Boolean if R has ORDRING
---R rational : % -> Fraction Integer if R has INS
+--R rational : % -> Fraction(Integer) if R has INS
 --R rational? : % -> Boolean if R has INS
---R rationalIfCan : % -> Union(Fraction Integer,"failed") if R has INS
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed") if R has INS
 --R recip : % -> Union(%,"failed") if R has ORDRING
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retract : % -> Integer if R has RETRACT(INT)
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
 --R sample : () -> % if R has ABELGRP
 --R sign : % -> Integer if R has ORDRING
 --R subtractIfCan : (%,%) -> Union(%,"failed") if R has ABELGRP
@@ -86467,6 +86670,7 @@ OpenMathEncoding(): SetCategory with
 
 --S 1 of 1
 )show OpenMathError
+--R 
 --R OpenMathError  is a domain constructor
 --R Abbreviation for OpenMathError is OMERR 
 --R This constructor is exposed in this frame.
@@ -86474,10 +86678,10 @@ OpenMathEncoding(): SetCategory with
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
---R errorInfo : % -> List Symbol          hash : % -> SingleInteger
+--R errorInfo : % -> List(Symbol)         hash : % -> SingleInteger
 --R latex : % -> String                   ?~=? : (%,%) -> Boolean
 --R errorKind : % -> OpenMathErrorKind
---R omError : (OpenMathErrorKind,List Symbol) -> %
+--R omError : (OpenMathErrorKind,List(Symbol)) -> %
 --R
 --E 1
 
@@ -86702,7 +86906,7 @@ t := operator("tilde") :: OP(R)
 --R 
 --R
 --R   (2)  tilde
---R                                       Type: Operator SquareMatrix(2,Integer)
+--R                                      Type: Operator(SquareMatrix(2,Integer))
 --E 2
 
 --S 3 of 21
@@ -86716,7 +86920,7 @@ evaluate(t, m +-> transpose m)
 --R 
 --R
 --R   (3)  tilde
---R                                       Type: Operator SquareMatrix(2,Integer)
+--R                                      Type: Operator(SquareMatrix(2,Integer))
 --E 4
 
 --S 5 of 21
@@ -86736,7 +86940,7 @@ rho := t * s
 --R             +0  1+
 --R   (5)  tilde|    |
 --R             +1  0+
---R                                       Type: Operator SquareMatrix(2,Integer)
+--R                                      Type: Operator(SquareMatrix(2,Integer))
 --E 6
 
 --S 7 of 21
@@ -86746,7 +86950,7 @@ z := rho**4 - 1
 --R                   +0  1+     +0  1+     +0  1+     +0  1+
 --R   (6)  - 1 + tilde|    |tilde|    |tilde|    |tilde|    |
 --R                   +1  0+     +1  0+     +1  0+     +1  0+
---R                                       Type: Operator SquareMatrix(2,Integer)
+--R                                      Type: Operator(SquareMatrix(2,Integer))
 --E 7
 
 --S 8 of 21
@@ -86806,7 +87010,7 @@ b := t * s - s * t
 --R           +0  1+             +0  1+
 --R   (12)  - |    |tilde + tilde|    |
 --R           +1  0+             +1  0+
---R                                       Type: Operator SquareMatrix(2,Integer)
+--R                                      Type: Operator(SquareMatrix(2,Integer))
 --E 13
 
 --S 14 of 21
@@ -86833,7 +87037,7 @@ dx := operator("D") :: OP(POLY FRAC INT)
 --R 
 --R
 --R   (15)  D
---R                                   Type: Operator Polynomial Fraction Integer
+--R                                Type: Operator(Polynomial(Fraction(Integer)))
 --E 16
 
 --S 17 of 21
@@ -86841,7 +87045,7 @@ evaluate(dx, p +-> D(p, 'x))
 --R 
 --R
 --R   (16)  D
---R                                   Type: Operator Polynomial Fraction Integer
+--R                                Type: Operator(Polynomial(Fraction(Integer)))
 --E 17
 
 --S 18 of 21
@@ -86853,8 +87057,8 @@ E n == (1 - x**2) * dx**2 - 2 * x * dx + n*(n+1)
 --S 19 of 21
 L 15
 --R 
---R   Compiling function L with type Integer -> Polynomial Fraction 
---R      Integer 
+--R   Compiling function L with type Integer -> Polynomial(Fraction(
+--R      Integer)) 
 --R   Compiling function L as a recurrence relation.
 --R
 --R   (18)
@@ -86865,18 +87069,18 @@ L 15
 --R       2909907  5   255255  3   6435
 --R     - ------- x  + ------ x  - ---- x
 --R         2048        2048       2048
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 19
 
 --S 20 of 21
 E 15
 --R 
---R   Compiling function E with type PositiveInteger -> Operator 
---R      Polynomial Fraction Integer 
+--R   Compiling function E with type PositiveInteger -> Operator(
+--R      Polynomial(Fraction(Integer))) 
 --R
 --R                        2      2
 --R   (19)  240 - 2x D - (x  - 1)D
---R                                   Type: Operator Polynomial Fraction Integer
+--R                                Type: Operator(Polynomial(Fraction(Integer)))
 --E 20
 
 --S 21 of 21
@@ -86884,7 +87088,7 @@ E 15
 --R 
 --R
 --R   (20)  0
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 21
 )spool
 )lisp (bye)
@@ -87136,7 +87340,8 @@ Operator(R: Ring) == ModuleOperator(R,R)
 
 --S 1 of 1
 )show OppositeMonogenicLinearOperator
---R OppositeMonogenicLinearOperator(P: MonogenicLinearOperator R,R: Ring)  is a domain constructor
+--R 
+--R OppositeMonogenicLinearOperator(P: MonogenicLinearOperator(R),R: Ring)  is a domain constructor
 --R Abbreviation for OppositeMonogenicLinearOperator is OMLO 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for OMLO 
@@ -87280,7 +87485,8 @@ OppositeMonogenicLinearOperator(P, R): OPRcat == OPRdef where
 
 --S 1 of 1
 )show OrderedCompletion
---R OrderedCompletion R: SetCategory  is a domain constructor
+--R 
+--R OrderedCompletion(R: SetCategory)  is a domain constructor
 --R Abbreviation for OrderedCompletion is ORDCOMP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ORDCOMP 
@@ -87310,22 +87516,22 @@ OppositeMonogenicLinearOperator(P, R): OPRcat == OPRdef where
 --R ?^? : (%,PositiveInteger) -> % if R has ORDRING
 --R abs : % -> % if R has ORDRING
 --R characteristic : () -> NonNegativeInteger if R has ORDRING
---R coerce : Integer -> % if R has ORDRING or R has RETRACT INT
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Integer -> % if R has ORDRING or R has RETRACT(INT)
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R max : (%,%) -> % if R has ORDRING
 --R min : (%,%) -> % if R has ORDRING
 --R negative? : % -> Boolean if R has ORDRING
 --R one? : % -> Boolean if R has ORDRING
 --R positive? : % -> Boolean if R has ORDRING
---R rational : % -> Fraction Integer if R has INS
+--R rational : % -> Fraction(Integer) if R has INS
 --R rational? : % -> Boolean if R has INS
---R rationalIfCan : % -> Union(Fraction Integer,"failed") if R has INS
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed") if R has INS
 --R recip : % -> Union(%,"failed") if R has ORDRING
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retract : % -> Integer if R has RETRACT(INT)
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
 --R sample : () -> % if R has ABELGRP
 --R sign : % -> Integer if R has ORDRING
 --R subtractIfCan : (%,%) -> Union(%,"failed") if R has ABELGRP
@@ -87544,19 +87750,20 @@ OrderedCompletion(R:SetCategory): Exports == Implementation where
 
 --S 1 of 1
 )show OrderedDirectProduct
---R OrderedDirectProduct(dim: NonNegativeInteger,S: OrderedAbelianMonoidSup,f: ((Vector S,Vector S) -> Boolean))  is a domain constructor
+--R 
+--R OrderedDirectProduct(dim: NonNegativeInteger,S: OrderedAbelianMonoidSup,f: ((Vector(S),Vector(S)) -> Boolean))  is a domain constructor
 --R Abbreviation for OrderedDirectProduct is ODP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ODP 
 --R
 --R------------------------------- Operations --------------------------------
 --R -? : % -> % if S has RING             1 : () -> % if S has MONOID
---R 0 : () -> % if S has CABMON           coerce : % -> Vector S
---R copy : % -> %                         directProduct : Vector S -> %
+--R 0 : () -> % if S has CABMON           coerce : % -> Vector(S)
+--R copy : % -> %                         directProduct : Vector(S) -> %
 --R ?.? : (%,Integer) -> S                elt : (%,Integer,S) -> S
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List S                 eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R map : ((S -> S),%) -> %               qelt : (%,Integer) -> S
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -87578,10 +87785,10 @@ OrderedCompletion(R:SetCategory): Exports == Implementation where
 --R ?>=? : (%,%) -> Boolean if S has OAMONS or S has ORDRING
 --R D : (%,(S -> S)) -> % if S has RING
 --R D : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R D : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R D : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
 --R D : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
 --R D : % -> % if S has DIFRING and S has RING
 --R ?^? : (%,PositiveInteger) -> % if S has MONOID
@@ -87590,26 +87797,26 @@ OrderedCompletion(R:SetCategory): Exports == Implementation where
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R characteristic : () -> NonNegativeInteger if S has RING
 --R coerce : S -> % if S has SETCAT
---R coerce : Fraction Integer -> % if S has RETRACT FRAC INT and S has SETCAT
---R coerce : Integer -> % if S has RETRACT INT and S has SETCAT or S has RING
+--R coerce : Fraction(Integer) -> % if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R coerce : Integer -> % if S has RETRACT(INT) and S has SETCAT or S has RING
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R differentiate : (%,(S -> S)) -> % if S has RING
 --R differentiate : (%,(S -> S),NonNegativeInteger) -> % if S has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL and S has RING
---R differentiate : (%,Symbol) -> % if S has PDRING SYMBOL and S has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,List(Symbol)) -> % if S has PDRING(SYMBOL) and S has RING
+--R differentiate : (%,Symbol) -> % if S has PDRING(SYMBOL) and S has RING
 --R differentiate : (%,NonNegativeInteger) -> % if S has DIFRING and S has RING
 --R differentiate : % -> % if S has DIFRING and S has RING
 --R dimension : () -> CardinalNumber if S has FIELD
 --R dot : (%,%) -> S if S has RING
 --R entry? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,S) -> % if $ has shallowlyMutable
 --R first : % -> S if Integer has ORDSET
@@ -87622,27 +87829,27 @@ OrderedCompletion(R:SetCategory): Exports == Implementation where
 --R max : (%,%) -> % if S has OAMONS or S has ORDRING
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R min : (%,%) -> % if S has OAMONS or S has ORDRING
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R negative? : % -> Boolean if S has ORDRING
 --R one? : % -> Boolean if S has MONOID
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R positive? : % -> Boolean if S has ORDRING
 --R qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R random : () -> % if S has FINITE
 --R recip : % -> Union(%,"failed") if S has MONOID
---R reducedSystem : Matrix % -> Matrix S if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S) if S has RING
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT and S has RING
---R reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(S) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(S),vec: Vector(S)) if S has RING
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if S has LINEXP(INT) and S has RING
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if S has LINEXP(INT) and S has RING
 --R retract : % -> S if S has SETCAT
---R retract : % -> Fraction Integer if S has RETRACT FRAC INT and S has SETCAT
---R retract : % -> Integer if S has RETRACT INT and S has SETCAT
+--R retract : % -> Fraction(Integer) if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retract : % -> Integer if S has RETRACT(INT) and S has SETCAT
 --R retractIfCan : % -> Union(S,"failed") if S has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT FRAC INT and S has SETCAT
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT and S has SETCAT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(FRAC(INT)) and S has SETCAT
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT) and S has SETCAT
 --R setelt : (%,Integer,S) -> S if $ has shallowlyMutable
 --R sign : % -> Integer if S has ORDRING
 --R size : () -> NonNegativeInteger if S has FINITE
@@ -87809,7 +88016,7 @@ m1:=(x*y*y*z)$OFMONOID(Symbol)
 --R
 --R           2
 --R   (1)  x y z
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 1
 
 --S 2 of 24
@@ -87817,7 +88024,7 @@ m2:=(x*y)$OFMONOID(Symbol)
 --R 
 --R
 --R   (2)  x y
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 2
 
 --S 3 of 24
@@ -87825,7 +88032,7 @@ lquo(m1,m2)
 --R 
 --R
 --R   (3)  y z
---R                                    Type: Union(OrderedFreeMonoid Symbol,...)
+--R                                   Type: Union(OrderedFreeMonoid(Symbol),...)
 --E 3
 
 --S 4 of 24
@@ -87834,7 +88041,7 @@ m3:=(y*y)$OFMONOID(Symbol)
 --R
 --R         2
 --R   (4)  y
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 4
 
 --S 5 of 24
@@ -87842,7 +88049,7 @@ divide(m1,m2)
 --R 
 --R
 --R   (5)  [lm= y z,rm= "failed"]
---RType: Union(Record(lm: Union(OrderedFreeMonoid Symbol,"failed"),rm: Union(OrderedFreeMonoid Symbol,"failed")),...)
+--IType: Union(Record(lm: Union(OrderedFreeMonoid(Symbol),"failed"),...
 --E 5
 
 --S 6 of 24
@@ -87850,7 +88057,7 @@ divide(m1,m3)
 --R 
 --R
 --R   (6)  [lm= "failed",rm= "failed"]
---RType: Union(Record(lm: Union(OrderedFreeMonoid Symbol,"failed"),rm: Union(OrderedFreeMonoid Symbol,"failed")),...)
+--IType: Union(Record(lm: Union(OrderedFreeMonoid(Symbol),"failed"),...
 --E 6
 
 --S 7 of 24
@@ -87859,7 +88066,7 @@ m4:=(y^3)$OFMONOID(Symbol)
 --R
 --R         3
 --R   (7)  y
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 7
 
 --S 8 of 24
@@ -87867,7 +88074,7 @@ divide(m1,m4)
 --R 
 --R
 --R   (8)  [lm= "failed",rm= "failed"]
---RType: Union(Record(lm: Union(OrderedFreeMonoid Symbol,"failed"),rm: Union(OrderedFreeMonoid Symbol,"failed")),...)
+--IType: Union(Record(lm: Union(OrderedFreeMonoid(Symbol),"failed"),...
 --E 8
 
 )set function compile on
@@ -87946,10 +88153,10 @@ subs(w:M):H ==
     monom(n2,1)$H * (a::K*x::V+b::K)$H * monom(n2,1)$H
   monom(n1,1)$H * (y::V*x::V*y::V)$H * monom(n1,1)$H
 --R 
---R   Function declaration subs : OrderedFreeMonoid OrderedVariableList [x
---R      ,y] -> XDistributedPolynomial(OrderedVariableList [x,y],
---R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
---R      [a,b])) has been added to workspace.
+--R   Function declaration subs : OrderedFreeMonoid(OrderedVariableList([x
+--R      ,y])) -> XDistributedPolynomial(OrderedVariableList([x,y]),
+--R      SparseMultivariatePolynomial(Fraction(Integer),
+--R      OrderedVariableList([a,b]))) has been added to workspace.
 --R                                                                   Type: Void
 --E 14
 
@@ -87957,12 +88164,12 @@ subs(w:M):H ==
 --S 15 of 24
 newterm(x:Record(k:M,c:K)):H == x.c*subs(x,k)
 --R 
---R   Function declaration newterm : Record(k: OrderedFreeMonoid 
---R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
---R      Fraction Integer,OrderedVariableList [a,b])) -> 
---R      XDistributedPolynomial(OrderedVariableList [x,y],
---R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
---R      [a,b])) has been added to workspace.
+--R   Function declaration newterm : Record(k: OrderedFreeMonoid(
+--R      OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(
+--R      Fraction(Integer),OrderedVariableList([a,b]))) -> 
+--R      XDistributedPolynomial(OrderedVariableList([x,y]),
+--R      SparseMultivariatePolynomial(Fraction(Integer),
+--R      OrderedVariableList([a,b]))) has been added to workspace.
 --R                                                                   Type: Void
 --E 15
 
@@ -87972,10 +88179,11 @@ newterm(x:Record(k:M,c:K)):H == x.c*subs(x,k)
 newpoly(t:H):H == reduce(+,map(newterm,listOfTerms(t)))
 --R 
 --R   Function declaration newpoly : XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) has been added to workspace.
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) -> XDistributedPolynomial(
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) has been added to 
+--R      workspace.
 --R                                                                   Type: Void
 --E 16
 
@@ -87993,10 +88201,10 @@ p1:(x::V+y::V)$H^2
 newpoly(p1)
 --R 
 --R   Compiling function newpoly with type XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) 
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) -> XDistributedPolynomial(
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) 
 --R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
 --R                                )what op subs
@@ -88004,18 +88212,18 @@ newpoly(p1)
 --R      name.
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
 --R   AXIOM will attempt to step through and interpret the code.
---R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
---R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
---R      Fraction Integer,OrderedVariableList [a,b])) -> 
---R      XDistributedPolynomial(OrderedVariableList [x,y],
---R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
---R      [a,b])) 
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid(
+--R      OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(
+--R      Fraction(Integer),OrderedVariableList([a,b]))) -> 
+--R      XDistributedPolynomial(OrderedVariableList([x,y]),
+--R      SparseMultivariatePolynomial(Fraction(Integer),
+--R      OrderedVariableList([a,b]))) 
 --R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
 --R                                )what op subs
@@ -88025,8 +88233,8 @@ newpoly(p1)
 --RDaly Bug
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -88038,7 +88246,7 @@ p2:=(x::V+y::V)$H^3
 --R
 --R          3    2               2      2            2     3
 --R   (17)  y  + y x + y x y + y x  + x y  + x y x + x y + x
---RType: XDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--IType: XDistributedPolynomial(OrderedVariableList([x,y]),...
 --E 19
 
 --S 20 of 24
@@ -88051,8 +88259,8 @@ pNew:=newpoly(p2)
 --R      name.
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -88072,8 +88280,8 @@ pNew:=newpoly(p2)
 --RDaly Bug
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -88092,18 +88300,18 @@ while pNew ~= p2 repeat
 --R      name.
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
 --R   AXIOM will attempt to step through and interpret the code.
---R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
---R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
---R      Fraction Integer,OrderedVariableList [a,b])) -> 
---R      XDistributedPolynomial(OrderedVariableList [x,y],
---R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
---R      [a,b])) 
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid(
+--R      OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(
+--R      Fraction(Integer),OrderedVariableList([a,b]))) -> 
+--R      XDistributedPolynomial(OrderedVariableList([x,y]),
+--R      SparseMultivariatePolynomial(Fraction(Integer),
+--R      OrderedVariableList([a,b]))) 
 --R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
 --R                                )what op subs
@@ -88113,8 +88321,8 @@ while pNew ~= p2 repeat
 --RDaly Bug
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -88138,10 +88346,11 @@ reduce(p:H):H ==
   p3
 --R 
 --R   Function declaration reduce : XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) has been added to workspace.
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) -> XDistributedPolynomial(
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) has been added to 
+--R      workspace.
 --R   Compiled code for newpoly has been cleared.
 --R                                                                   Type: Void
 --E 23
@@ -88150,15 +88359,15 @@ reduce(p:H):H ==
 reduce(p2)
 --R 
 --R   Compiling function newpoly with type XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) 
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) -> XDistributedPolynomial(
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) 
 --R   Compiling function reduce with type XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) 
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) -> XDistributedPolynomial(
+--R      OrderedVariableList([x,y]),SparseMultivariatePolynomial(Fraction(
+--R      Integer),OrderedVariableList([a,b]))) 
 --R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
 --R                                )what op subs
@@ -88166,18 +88375,18 @@ reduce(p2)
 --R      name.
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
 --R   AXIOM will attempt to step through and interpret the code.
---R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
---R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
---R      Fraction Integer,OrderedVariableList [a,b])) -> 
---R      XDistributedPolynomial(OrderedVariableList [x,y],
---R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
---R      [a,b])) 
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid(
+--R      OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(
+--R      Fraction(Integer),OrderedVariableList([a,b]))) -> 
+--R      XDistributedPolynomial(OrderedVariableList([x,y]),
+--R      SparseMultivariatePolynomial(Fraction(Integer),
+--R      OrderedVariableList([a,b]))) 
 --R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
 --R                                )what op subs
@@ -88187,8 +88396,8 @@ reduce(p2)
 --RDaly Bug
 --R   Cannot find a definition or applicable library operation named subs 
 --R      with argument type(s) 
---RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R                                 Variable k
+--RRecord(k: OrderedFreeMonoid(OrderedVariableList([x,y])),c: SparseMultivariatePolynomial(Fraction(Integer),OrderedVariableList([a,b])))
+--R                                 Variable(k)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -88617,14 +88826,14 @@ ls:List Symbol:=['x,'a,'z]
 --R 
 --R
 --R   (1)  [x,a,z]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 1
 
 --S 2 of 5
 Z:=OVAR ls
 --R 
 --R
---R   (2)  OrderedVariableList [x,a,z]
+--R   (2)  OrderedVariableList([x,a,z])
 --R                                                                 Type: Domain
 --E 2
 
@@ -88643,7 +88852,7 @@ lv:=[index(i::PI)$Z for i in 1..size()$Z]
 --I   Compiling function G1572 with type NonNegativeInteger -> Boolean 
 --R
 --R   (4)  [x,a,z]
---R                                       Type: List OrderedVariableList [x,a,z]
+--R                                     Type: List(OrderedVariableList([x,a,z]))
 --E 4
 
 --S 5 of 5
@@ -88776,7 +88985,7 @@ OrderedVariableList(VariableList:List Symbol):
 dpol:= ODPOL(FRAC INT)
 --R 
 --R
---R   (1)  OrderlyDifferentialPolynomial Fraction Integer
+--R   (1)  OrderlyDifferentialPolynomial(Fraction(Integer))
 --R                                                                 Type: Domain
 --E 1
 
@@ -88785,7 +88994,7 @@ w := makeVariable('w)$dpol
 --R 
 --R
 --R   (2)  theMap(DPOLCAT-;makeVariable;AM;17!0,0)
---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer)
+--RType: (NonNegativeInteger -> OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 2
 
 --S 3 of 36
@@ -88793,7 +89002,7 @@ z := makeVariable('z)$dpol
 --R 
 --R
 --R   (3)  theMap(DPOLCAT-;makeVariable;AM;17!0,0)
---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer)
+--RType: (NonNegativeInteger -> OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 3
 
 --S 4 of 36
@@ -88802,7 +89011,7 @@ w.5
 --R
 --R   (4)  w
 --R         5
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 4
 
 --S 5 of 36
@@ -88810,7 +89019,7 @@ w 0
 --R 
 --R
 --R   (5)  w
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 5
 
 --S 6 of 36
@@ -88819,7 +89028,7 @@ w 0
 --R
 --R   (6)  [z ,z ,z ,z ,z ]
 --R          1  2  3  4  5
---R                    Type: List OrderlyDifferentialPolynomial Fraction Integer
+--R                 Type: List(OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 6
 
 --S 7 of 36
@@ -88829,7 +89038,7 @@ f:= w.4 - w.1 * w.1 * z.3
 --R               2
 --R   (7)  w  - w  z
 --R         4    1  3
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 7
 
 --S 8 of 36
@@ -88839,7 +89048,7 @@ g:=(z.1)**3 * (z.2)**2 - w.2
 --R          3  2
 --R   (8)  z  z   - w
 --R         1  2     2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 8
 
 --S 9 of 36
@@ -88849,7 +89058,7 @@ D(f)
 --R               2
 --R   (9)  w  - w  z  - 2w w z
 --R         5    1  4     1 2 3
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 9
 
 --S 10 of 36
@@ -88864,7 +89073,7 @@ D(f,4)
 --R                                         2
 --R     (- 8w w  - 24w w )z  - 8w z w  - 6w  z
 --R          1 4      2 3  4     2 3 4     3  3
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 10
 
 --S 11 of 36
@@ -88872,7 +89081,7 @@ df:=makeVariable(f)$dpol
 --R 
 --R
 --R   (11)  theMap(DPOLCAT-;makeVariable;AM;17!0,0)
---R Type: (NonNegativeInteger -> OrderlyDifferentialPolynomial Fraction Integer)
+--RType: (NonNegativeInteger -> OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 11
 
 --S 12 of 36
@@ -88887,7 +89096,7 @@ df.4
 --R                                         2
 --R     (- 8w w  - 24w w )z  - 8w z w  - 6w  z
 --R          1 4      2 3  4     2 3 4     3  3
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 12
 
 --S 13 of 36
@@ -88911,7 +89120,7 @@ differentialVariables(g)
 --R 
 --R
 --R   (15)  [z,w]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 15
 
 --S 16 of 36
@@ -88921,7 +89130,7 @@ degree(g)
 --R           2  3
 --R   (16)  z  z
 --R          2  1
---R                    Type: IndexedExponents OrderlyDifferentialVariable Symbol
+--R                  Type: IndexedExponents(OrderlyDifferentialVariable(Symbol))
 --E 16
 
 --S 17 of 36
@@ -88937,7 +89146,7 @@ weights(g)
 --R 
 --R
 --R   (18)  [7,2]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 18
 
 --S 19 of 36
@@ -88945,7 +89154,7 @@ weights(g,'w)
 --R 
 --R
 --R   (19)  [2]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 19
 
 --S 20 of 36
@@ -88971,7 +89180,7 @@ eval(g,['w::Symbol],[f])
 --R                  2                           2        3  2
 --R   (22)  - w  + w  z  + 4w w z  + (2w w  + 2w  )z  + z  z
 --R            6    1  5     1 2 4      1 3     2   3    1  2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 22
 
 --S 23 of 36
@@ -88981,7 +89190,7 @@ eval(g,variables(w.0),[f])
 --R           3  2
 --R   (23)  z  z   - w
 --R          1  2     2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 23
 
 --S 24 of 36
@@ -88991,7 +89200,7 @@ monomials(g)
 --R            3  2
 --R   (24)  [z  z  ,- w ]
 --R           1  2     2
---R                    Type: List OrderlyDifferentialPolynomial Fraction Integer
+--R                 Type: List(OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 24
 
 --S 25 of 36
@@ -89000,7 +89209,7 @@ variables(g)
 --R
 --R   (25)  [z ,w ,z ]
 --R           2  2  1
---R                                Type: List OrderlyDifferentialVariable Symbol
+--R                              Type: List(OrderlyDifferentialVariable(Symbol))
 --E 25
 
 --S 26 of 36
@@ -89008,7 +89217,7 @@ gcd(f,g)
 --R 
 --R
 --R   (26)  1
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 26
 
 --S 27 of 36
@@ -89018,7 +89227,7 @@ groebner([f,g])
 --R                 2     3  2
 --R   (27)  [w  - w  z ,z  z   - w ]
 --R           4    1  3  1  2     2
---R                    Type: List OrderlyDifferentialPolynomial Fraction Integer
+--R                 Type: List(OrderlyDifferentialPolynomial(Fraction(Integer)))
 --E 27
 
 --S 28 of 36
@@ -89027,7 +89236,7 @@ lg:=leader(g)
 --R
 --R   (28)  z
 --R          2
---R                                     Type: OrderlyDifferentialVariable Symbol
+--R                                    Type: OrderlyDifferentialVariable(Symbol)
 --E 28
 
 --S 29 of 36
@@ -89037,7 +89246,7 @@ sg:=separant(g)
 --R            3
 --R   (29)  2z  z
 --R           1  2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 29
 
 --S 30 of 36
@@ -89047,7 +89256,7 @@ ig:=initial(g)
 --R           3
 --R   (30)  z
 --R          1
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 30
 
 --S 31 of 36
@@ -89057,7 +89266,7 @@ g1 := D g
 --R            3               2  3
 --R   (31)  2z  z z  - w  + 3z  z
 --R           1  2 3    3     1  2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 31
 
 --S 32 of 36
@@ -89066,7 +89275,7 @@ lg1:= leader g1
 --R
 --R   (32)  z
 --R          3
---R                                     Type: OrderlyDifferentialVariable Symbol
+--R                                    Type: OrderlyDifferentialVariable(Symbol)
 --E 32
 
 --S 33 of 36
@@ -89076,7 +89285,7 @@ pdf:=D(f, lg1)
 --R             2
 --R   (33)  - w
 --R            1
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 33
 
 --S 34 of 36
@@ -89086,7 +89295,7 @@ prf:=sg * f- pdf * g1
 --R            3         2        2  2  3
 --R   (34)  2z  z w  - w  w  + 3w  z  z
 --R           1  2 4    1  3     1  1  2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 34
 
 --S 35 of 36
@@ -89096,7 +89305,7 @@ lcf:=leadingCoefficient univariate(prf, lg)
 --R            2  2
 --R   (35)  3w  z
 --R           1  1
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 35
 
 --S 36 of 36
@@ -89106,7 +89315,7 @@ ig * prf - lcf * g * lg
 --R            6         2  3        2  2
 --R   (36)  2z  z w  - w  z  w  + 3w  z  w z
 --R           1  2 4    1  1  3     1  1  2 2
---R                         Type: OrderlyDifferentialPolynomial Fraction Integer
+--R                       Type: OrderlyDifferentialPolynomial(Fraction(Integer))
 --E 36
 )spool
 )lisp (bye)
@@ -89575,7 +89784,8 @@ OrderlyDifferentialPolynomial(R):
 
 --S 1 of 1
 )show OrderlyDifferentialVariable
---R OrderlyDifferentialVariable S: OrderedSet  is a domain constructor
+--R 
+--R OrderlyDifferentialVariable(S: OrderedSet)  is a domain constructor
 --R Abbreviation for OrderlyDifferentialVariable is ODVAR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ODVAR 
@@ -89693,7 +89903,8 @@ OrderlyDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S)
 
 --S 1 of 1
 )show OrdinaryDifferentialRing
---R OrdinaryDifferentialRing(Kernels: SetCategory,R: PartialDifferentialRing Kernels,var: Kernels)  is a domain constructor
+--R 
+--R OrdinaryDifferentialRing(Kernels: SetCategory,R: PartialDifferentialRing(Kernels),var: Kernels)  is a domain constructor
 --R Abbreviation for OrdinaryDifferentialRing is ODR 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ODR 
@@ -89713,8 +89924,8 @@ OrderlyDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S)
 --R one? : % -> Boolean                   recip : % -> Union(%,"failed")
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R ?*? : (%,Fraction Integer) -> % if R has FIELD
---R ?*? : (Fraction Integer,%) -> % if R has FIELD
+--R ?*? : (%,Fraction(Integer)) -> % if R has FIELD
+--R ?*? : (Fraction(Integer),%) -> % if R has FIELD
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,Integer) -> % if R has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
@@ -89724,27 +89935,27 @@ OrderlyDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S)
 --R associates? : (%,%) -> Boolean if R has FIELD
 --R characteristic : () -> NonNegativeInteger
 --R coerce : % -> % if R has FIELD
---R coerce : Fraction Integer -> % if R has FIELD
+--R coerce : Fraction(Integer) -> % if R has FIELD
 --R differentiate : (%,NonNegativeInteger) -> %
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R euclideanSize : % -> NonNegativeInteger if R has FIELD
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R exquo : (%,%) -> Union(%,"failed") if R has FIELD
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has FIELD
---R factor : % -> Factored % if R has FIELD
+--R factor : % -> Factored(%) if R has FIELD
 --R gcd : (%,%) -> % if R has FIELD
---R gcd : List % -> % if R has FIELD
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has FIELD
+--R gcd : List(%) -> % if R has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has FIELD
 --R lcm : (%,%) -> % if R has FIELD
---R lcm : List % -> % if R has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R lcm : List(%) -> % if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R prime? : % -> Boolean if R has FIELD
---R principalIdeal : List % -> Record(coef: List %,generator: %) if R has FIELD
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has FIELD
 --R ?quo? : (%,%) -> % if R has FIELD
 --R ?rem? : (%,%) -> % if R has FIELD
 --R sizeLess? : (%,%) -> Boolean if R has FIELD
---R squareFree : % -> Factored % if R has FIELD
+--R squareFree : % -> Factored(%) if R has FIELD
 --R squareFreePart : % -> % if R has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit? : % -> Boolean if R has FIELD
@@ -89879,7 +90090,8 @@ OrdinaryDifferentialRing(Kernels,R,var): DRcategory == DRcapsule where
 
 --S 1 of 1
 )show OrdinaryWeightedPolynomials
---R OrdinaryWeightedPolynomials(R: Ring,vl: List Symbol,wl: List NonNegativeInteger,wtlevel: NonNegativeInteger)  is a domain constructor
+--R 
+--R OrdinaryWeightedPolynomials(R: Ring,vl: List(Symbol),wl: List(NonNegativeInteger),wtlevel: NonNegativeInteger)  is a domain constructor
 --R Abbreviation for OrdinaryWeightedPolynomials is OWP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for OWP 
@@ -89890,8 +90102,8 @@ OrdinaryDifferentialRing(Kernels,R,var): DRcategory == DRcapsule where
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coerce : Polynomial R -> %
---R coerce : % -> Polynomial R            coerce : Integer -> %
+--R ?^? : (%,PositiveInteger) -> %        coerce : Polynomial(R) -> %
+--R coerce : % -> Polynomial(R)           coerce : Integer -> %
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
@@ -90115,6 +90327,7 @@ OrdSetInts: Export == Implement where
 
 --S 1 of 1
 )show OutputForm
+--R 
 --R OutputForm  is a domain constructor
 --R Abbreviation for OutputForm is OUTFORM 
 --R This constructor is not exposed in this frame.
@@ -90130,30 +90343,30 @@ OrdSetInts: Export == Implement where
 --R ?SEGMENT : % -> %                     ?..? : (%,%) -> %
 --R ?^=? : (%,%) -> %                     ?and? : (%,%) -> %
 --R assign : (%,%) -> %                   binomial : (%,%) -> %
---R blankSeparate : List % -> %           box : % -> %
---R brace : List % -> %                   brace : % -> %
---R bracket : List % -> %                 bracket : % -> %
+--R blankSeparate : List(%) -> %          box : % -> %
+--R brace : List(%) -> %                  brace : % -> %
+--R bracket : List(%) -> %                bracket : % -> %
 --R center : % -> %                       center : (%,Integer) -> %
---R coerce : % -> OutputForm              commaSeparate : List % -> %
+--R coerce : % -> OutputForm              commaSeparate : List(%) -> %
 --R ?div? : (%,%) -> %                    dot : % -> %
---R ?.? : (%,List %) -> %                 empty : () -> %
+--R ?.? : (%,List(%)) -> %                empty : () -> %
 --R exquo : (%,%) -> %                    hash : % -> SingleInteger
---R hconcat : List % -> %                 hconcat : (%,%) -> %
+--R hconcat : List(%) -> %                hconcat : (%,%) -> %
 --R height : () -> Integer                height : % -> Integer
 --R hspace : Integer -> %                 infix : (%,%,%) -> %
---R infix : (%,List %) -> %               infix? : % -> Boolean
+--R infix : (%,List(%)) -> %              infix? : % -> Boolean
 --R int : (%,%,%) -> %                    int : (%,%) -> %
 --R int : % -> %                          label : (%,%) -> %
 --R latex : % -> String                   left : % -> %
---R left : (%,Integer) -> %               matrix : List List % -> %
+--R left : (%,Integer) -> %               matrix : List(List(%)) -> %
 --R message : String -> %                 messagePrint : String -> Void
 --R not? : % -> %                         ?or? : (%,%) -> %
 --R outputForm : DoubleFloat -> %         outputForm : String -> %
 --R outputForm : Symbol -> %              outputForm : Integer -> %
 --R over : (%,%) -> %                     overbar : % -> %
---R overlabel : (%,%) -> %                paren : List % -> %
---R paren : % -> %                        pile : List % -> %
---R postfix : (%,%) -> %                  prefix : (%,List %) -> %
+--R overlabel : (%,%) -> %                paren : List(%) -> %
+--R paren : % -> %                        pile : List(%) -> %
+--R postfix : (%,%) -> %                  prefix : (%,List(%)) -> %
 --R presub : (%,%) -> %                   presuper : (%,%) -> %
 --R prime : % -> %                        print : % -> Void
 --R prod : (%,%,%) -> %                   prod : (%,%) -> %
@@ -90162,13 +90375,13 @@ OrdSetInts: Export == Implement where
 --R ?rem? : (%,%) -> %                    right : % -> %
 --R right : (%,Integer) -> %              root : (%,%) -> %
 --R root : % -> %                         rspace : (Integer,Integer) -> %
---R scripts : (%,List %) -> %             semicolonSeparate : List % -> %
+--R scripts : (%,List(%)) -> %            semicolonSeparate : List(%) -> %
 --R slash : (%,%) -> %                    string : % -> %
 --R sub : (%,%) -> %                      subHeight : % -> Integer
 --R sum : (%,%,%) -> %                    sum : (%,%) -> %
 --R sum : % -> %                          super : (%,%) -> %
---R superHeight : % -> Integer            supersub : (%,List %) -> %
---R vconcat : List % -> %                 vconcat : (%,%) -> %
+--R superHeight : % -> Integer            supersub : (%,List(%)) -> %
+--R vconcat : List(%) -> %                vconcat : (%,%) -> %
 --R vspace : Integer -> %                 width : () -> Integer
 --R width : % -> Integer                  zag : (%,%) -> %
 --R ?~=? : (%,%) -> Boolean              
@@ -90754,7 +90967,8 @@ OutputForm(): SetCategory with
 
 --S 1 of 1
 )show PAdicInteger
---R PAdicInteger p: Integer  is a domain constructor
+--R 
+--R PAdicInteger(p: Integer)  is a domain constructor
 --R Abbreviation for PAdicInteger is PADIC 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PADIC 
@@ -90768,10 +90982,10 @@ OutputForm(): SetCategory with
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R digits : % -> Stream Integer          extend : (%,Integer) -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R digits : % -> Stream(Integer)         extend : (%,Integer) -> %
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R moduloP : % -> Integer                modulus : () -> Integer
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
 --R ?quo? : (%,%) -> %                    quotientByP : % -> %
@@ -90787,14 +91001,14 @@ OutputForm(): SetCategory with
 --R characteristic : () -> NonNegativeInteger
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R root : (SparseUnivariatePolynomial Integer,Integer) -> %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R root : (SparseUnivariatePolynomial(Integer),Integer) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -90912,14 +91126,15 @@ PAdicInteger(p:Integer) == InnerPAdicInteger(p,true$Boolean)
 
 --S 1 of 1
 )show PAdicRational
---R PAdicRational p: Integer  is a domain constructor
+--R 
+--R PAdicRational(p: Integer)  is a domain constructor
 --R Abbreviation for PAdicRational is PADICRAT 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PADICRAT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (%,PAdicInteger p) -> %         ?*? : (PAdicInteger p,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (%,PAdicInteger(p)) -> %        ?*? : (PAdicInteger(p),%) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -90927,107 +91142,107 @@ PAdicInteger(p:Integer) == InnerPAdicInteger(p,true$Boolean)
 --R ?/? : (%,%) -> %                      ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
---R associates? : (%,%) -> Boolean        coerce : PAdicInteger p -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R associates? : (%,%) -> Boolean        coerce : PAdicInteger(p) -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R denom : % -> PAdicInteger p           denominator : % -> %
---R factor : % -> Factored %              gcd : List % -> %
+--R denom : % -> PAdicInteger(p)          denominator : % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R numer : % -> PAdicInteger p           numerator : % -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R numer : % -> PAdicInteger(p)          numerator : % -> %
 --R one? : % -> Boolean                   prime? : % -> Boolean
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    removeZeroes : (Integer,%) -> %
---R removeZeroes : % -> %                 retract : % -> PAdicInteger p
+--R removeZeroes : % -> %                 retract : % -> PAdicInteger(p)
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R ?/? : (PAdicInteger p,PAdicInteger p) -> %
---R ?<? : (%,%) -> Boolean if PAdicInteger p has ORDSET
---R ?<=? : (%,%) -> Boolean if PAdicInteger p has ORDSET
---R ?>? : (%,%) -> Boolean if PAdicInteger p has ORDSET
---R ?>=? : (%,%) -> Boolean if PAdicInteger p has ORDSET
---R D : (%,(PAdicInteger p -> PAdicInteger p)) -> %
---R D : (%,(PAdicInteger p -> PAdicInteger p),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if PAdicInteger p has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if PAdicInteger p has PDRING SYMBOL
---R D : (%,List Symbol) -> % if PAdicInteger p has PDRING SYMBOL
---R D : (%,Symbol) -> % if PAdicInteger p has PDRING SYMBOL
---R D : (%,NonNegativeInteger) -> % if PAdicInteger p has DIFRING
---R D : % -> % if PAdicInteger p has DIFRING
+--R ?/? : (PAdicInteger(p),PAdicInteger(p)) -> %
+--R ?<? : (%,%) -> Boolean if PAdicInteger(p) has ORDSET
+--R ?<=? : (%,%) -> Boolean if PAdicInteger(p) has ORDSET
+--R ?>? : (%,%) -> Boolean if PAdicInteger(p) has ORDSET
+--R ?>=? : (%,%) -> Boolean if PAdicInteger(p) has ORDSET
+--R D : (%,(PAdicInteger(p) -> PAdicInteger(p))) -> %
+--R D : (%,(PAdicInteger(p) -> PAdicInteger(p)),NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R D : (%,NonNegativeInteger) -> % if PAdicInteger(p) has DIFRING
+--R D : % -> % if PAdicInteger(p) has DIFRING
 --R ?^? : (%,NonNegativeInteger) -> %
---R abs : % -> % if PAdicInteger p has OINTDOM
---R approximate : (%,Integer) -> Fraction Integer
---R ceiling : % -> PAdicInteger p if PAdicInteger p has INS
+--R abs : % -> % if PAdicInteger(p) has OINTDOM
+--R approximate : (%,Integer) -> Fraction(Integer)
+--R ceiling : % -> PAdicInteger(p) if PAdicInteger(p) has INS
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and PAdicInteger p has PFECAT or PAdicInteger p has CHARNZ
---R coerce : Symbol -> % if PAdicInteger p has RETRACT SYMBOL
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and PAdicInteger p has PFECAT
---R continuedFraction : % -> ContinuedFraction Fraction Integer
---R convert : % -> DoubleFloat if PAdicInteger p has REAL
---R convert : % -> Float if PAdicInteger p has REAL
---R convert : % -> InputForm if PAdicInteger p has KONVERT INFORM
---R convert : % -> Pattern Float if PAdicInteger p has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if PAdicInteger p has KONVERT PATTERN INT
---R differentiate : (%,(PAdicInteger p -> PAdicInteger p)) -> %
---R differentiate : (%,(PAdicInteger p -> PAdicInteger p),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if PAdicInteger p has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if PAdicInteger p has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if PAdicInteger p has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if PAdicInteger p has PDRING SYMBOL
---R differentiate : (%,NonNegativeInteger) -> % if PAdicInteger p has DIFRING
---R differentiate : % -> % if PAdicInteger p has DIFRING
+--R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and PAdicInteger(p) has PFECAT or PAdicInteger(p) has CHARNZ
+--R coerce : Symbol -> % if PAdicInteger(p) has RETRACT(SYMBOL)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and PAdicInteger(p) has PFECAT
+--R continuedFraction : % -> ContinuedFraction(Fraction(Integer))
+--R convert : % -> DoubleFloat if PAdicInteger(p) has REAL
+--R convert : % -> Float if PAdicInteger(p) has REAL
+--R convert : % -> InputForm if PAdicInteger(p) has KONVERT(INFORM)
+--R convert : % -> Pattern(Float) if PAdicInteger(p) has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if PAdicInteger(p) has KONVERT(PATTERN(INT))
+--R differentiate : (%,(PAdicInteger(p) -> PAdicInteger(p))) -> %
+--R differentiate : (%,(PAdicInteger(p) -> PAdicInteger(p)),NonNegativeInteger) -> %
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if PAdicInteger(p) has PDRING(SYMBOL)
+--R differentiate : (%,NonNegativeInteger) -> % if PAdicInteger(p) has DIFRING
+--R differentiate : % -> % if PAdicInteger(p) has DIFRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
---R ?.? : (%,PAdicInteger p) -> % if PAdicInteger p has ELTAB(PADIC p,PADIC p)
+--R ?.? : (%,PAdicInteger(p)) -> % if PAdicInteger(p) has ELTAB(PADIC(p),PADIC(p))
 --R euclideanSize : % -> NonNegativeInteger
---R eval : (%,Symbol,PAdicInteger p) -> % if PAdicInteger p has IEVALAB(SYMBOL,PADIC p)
---R eval : (%,List Symbol,List PAdicInteger p) -> % if PAdicInteger p has IEVALAB(SYMBOL,PADIC p)
---R eval : (%,List Equation PAdicInteger p) -> % if PAdicInteger p has EVALAB PADIC p
---R eval : (%,Equation PAdicInteger p) -> % if PAdicInteger p has EVALAB PADIC p
---R eval : (%,PAdicInteger p,PAdicInteger p) -> % if PAdicInteger p has EVALAB PADIC p
---R eval : (%,List PAdicInteger p,List PAdicInteger p) -> % if PAdicInteger p has EVALAB PADIC p
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,Symbol,PAdicInteger(p)) -> % if PAdicInteger(p) has IEVALAB(SYMBOL,PADIC(p))
+--R eval : (%,List(Symbol),List(PAdicInteger(p))) -> % if PAdicInteger(p) has IEVALAB(SYMBOL,PADIC(p))
+--R eval : (%,List(Equation(PAdicInteger(p)))) -> % if PAdicInteger(p) has EVALAB(PADIC(p))
+--R eval : (%,Equation(PAdicInteger(p))) -> % if PAdicInteger(p) has EVALAB(PADIC(p))
+--R eval : (%,PAdicInteger(p),PAdicInteger(p)) -> % if PAdicInteger(p) has EVALAB(PADIC(p))
+--R eval : (%,List(PAdicInteger(p)),List(PAdicInteger(p))) -> % if PAdicInteger(p) has EVALAB(PADIC(p))
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PAdicInteger p has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PAdicInteger p has PFECAT
---R floor : % -> PAdicInteger p if PAdicInteger p has INS
---R fractionPart : % -> % if PAdicInteger p has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R init : () -> % if PAdicInteger p has STEP
---R map : ((PAdicInteger p -> PAdicInteger p),%) -> %
---R max : (%,%) -> % if PAdicInteger p has ORDSET
---R min : (%,%) -> % if PAdicInteger p has ORDSET
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R negative? : % -> Boolean if PAdicInteger p has OINTDOM
---R nextItem : % -> Union(%,"failed") if PAdicInteger p has STEP
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if PAdicInteger p has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if PAdicInteger p has PATMAB INT
---R positive? : % -> Boolean if PAdicInteger p has OINTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R random : () -> % if PAdicInteger p has INS
---R reducedSystem : Matrix % -> Matrix PAdicInteger p
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix PAdicInteger p,vec: Vector PAdicInteger p)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if PAdicInteger p has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if PAdicInteger p has LINEXP INT
---R retract : % -> Integer if PAdicInteger p has RETRACT INT
---R retract : % -> Fraction Integer if PAdicInteger p has RETRACT INT
---R retract : % -> Symbol if PAdicInteger p has RETRACT SYMBOL
---R retractIfCan : % -> Union(Integer,"failed") if PAdicInteger p has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if PAdicInteger p has RETRACT INT
---R retractIfCan : % -> Union(Symbol,"failed") if PAdicInteger p has RETRACT SYMBOL
---R retractIfCan : % -> Union(PAdicInteger p,"failed")
---R sign : % -> Integer if PAdicInteger p has OINTDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if PAdicInteger p has PFECAT
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PAdicInteger p has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PAdicInteger(p) has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PAdicInteger(p) has PFECAT
+--R floor : % -> PAdicInteger(p) if PAdicInteger(p) has INS
+--R fractionPart : % -> % if PAdicInteger(p) has EUCDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R init : () -> % if PAdicInteger(p) has STEP
+--R map : ((PAdicInteger(p) -> PAdicInteger(p)),%) -> %
+--R max : (%,%) -> % if PAdicInteger(p) has ORDSET
+--R min : (%,%) -> % if PAdicInteger(p) has ORDSET
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R negative? : % -> Boolean if PAdicInteger(p) has OINTDOM
+--R nextItem : % -> Union(%,"failed") if PAdicInteger(p) has STEP
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if PAdicInteger(p) has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if PAdicInteger(p) has PATMAB(INT)
+--R positive? : % -> Boolean if PAdicInteger(p) has OINTDOM
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R random : () -> % if PAdicInteger(p) has INS
+--R reducedSystem : Matrix(%) -> Matrix(PAdicInteger(p))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(PAdicInteger(p)),vec: Vector(PAdicInteger(p)))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if PAdicInteger(p) has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if PAdicInteger(p) has LINEXP(INT)
+--R retract : % -> Integer if PAdicInteger(p) has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if PAdicInteger(p) has RETRACT(INT)
+--R retract : % -> Symbol if PAdicInteger(p) has RETRACT(SYMBOL)
+--R retractIfCan : % -> Union(Integer,"failed") if PAdicInteger(p) has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if PAdicInteger(p) has RETRACT(INT)
+--R retractIfCan : % -> Union(Symbol,"failed") if PAdicInteger(p) has RETRACT(SYMBOL)
+--R retractIfCan : % -> Union(PAdicInteger(p),"failed")
+--R sign : % -> Integer if PAdicInteger(p) has OINTDOM
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if PAdicInteger(p) has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PAdicInteger(p) has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R wholePart : % -> PAdicInteger p if PAdicInteger p has EUCDOM
+--R wholePart : % -> PAdicInteger(p) if PAdicInteger(p) has EUCDOM
 --R
 --E 1
 
@@ -91178,14 +91393,15 @@ PAdicRational(p:Integer) == PAdicRationalConstructor(p,PAdicInteger p)
 
 --S 1 of 1
 )show PAdicRationalConstructor
---R PAdicRationalConstructor(p: Integer,PADIC: PAdicIntegerCategory p)  is a domain constructor
+--R 
+--R PAdicRationalConstructor(p: Integer,PADIC: PAdicIntegerCategory(p))  is a domain constructor
 --R Abbreviation for PAdicRationalConstructor is PADICRC 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PADICRC 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,PADIC) -> %                  ?*? : (PADIC,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -91195,20 +91411,20 @@ PAdicRational(p:Integer) == PAdicRationalConstructor(p,PAdicInteger p)
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        coerce : PADIC -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R denom : % -> PADIC                    denominator : % -> %
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R map : ((PADIC -> PADIC),%) -> %       numer : % -> PADIC
 --R numerator : % -> %                    one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R removeZeroes : (Integer,%) -> %       removeZeroes : % -> %
 --R retract : % -> PADIC                  sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
@@ -91219,77 +91435,77 @@ PAdicRational(p:Integer) == PAdicRationalConstructor(p,PAdicInteger p)
 --R ?>? : (%,%) -> Boolean if PADIC has ORDSET
 --R ?>=? : (%,%) -> Boolean if PADIC has ORDSET
 --R D : (%,(PADIC -> PADIC),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if PADIC has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if PADIC has PDRING SYMBOL
---R D : (%,List Symbol) -> % if PADIC has PDRING SYMBOL
---R D : (%,Symbol) -> % if PADIC has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if PADIC has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if PADIC has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if PADIC has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if PADIC has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if PADIC has DIFRING
 --R D : % -> % if PADIC has DIFRING
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if PADIC has OINTDOM
---R approximate : (%,Integer) -> Fraction Integer
+--R approximate : (%,Integer) -> Fraction(Integer)
 --R ceiling : % -> PADIC if PADIC has INS
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and PADIC has PFECAT or PADIC has CHARNZ
---R coerce : Symbol -> % if PADIC has RETRACT SYMBOL
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and PADIC has PFECAT
---R continuedFraction : % -> ContinuedFraction Fraction Integer
+--R coerce : Symbol -> % if PADIC has RETRACT(SYMBOL)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and PADIC has PFECAT
+--R continuedFraction : % -> ContinuedFraction(Fraction(Integer))
 --R convert : % -> DoubleFloat if PADIC has REAL
 --R convert : % -> Float if PADIC has REAL
---R convert : % -> InputForm if PADIC has KONVERT INFORM
---R convert : % -> Pattern Float if PADIC has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if PADIC has KONVERT PATTERN INT
+--R convert : % -> InputForm if PADIC has KONVERT(INFORM)
+--R convert : % -> Pattern(Float) if PADIC has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if PADIC has KONVERT(PATTERN(INT))
 --R differentiate : (%,(PADIC -> PADIC)) -> %
 --R differentiate : (%,(PADIC -> PADIC),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if PADIC has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if PADIC has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if PADIC has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if PADIC has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if PADIC has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if PADIC has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if PADIC has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if PADIC has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if PADIC has DIFRING
 --R differentiate : % -> % if PADIC has DIFRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R ?.? : (%,PADIC) -> % if PADIC has ELTAB(PADIC,PADIC)
 --R euclideanSize : % -> NonNegativeInteger
 --R eval : (%,Symbol,PADIC) -> % if PADIC has IEVALAB(SYMBOL,PADIC)
---R eval : (%,List Symbol,List PADIC) -> % if PADIC has IEVALAB(SYMBOL,PADIC)
---R eval : (%,List Equation PADIC) -> % if PADIC has EVALAB PADIC
---R eval : (%,Equation PADIC) -> % if PADIC has EVALAB PADIC
---R eval : (%,PADIC,PADIC) -> % if PADIC has EVALAB PADIC
---R eval : (%,List PADIC,List PADIC) -> % if PADIC has EVALAB PADIC
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,List(Symbol),List(PADIC)) -> % if PADIC has IEVALAB(SYMBOL,PADIC)
+--R eval : (%,List(Equation(PADIC))) -> % if PADIC has EVALAB(PADIC)
+--R eval : (%,Equation(PADIC)) -> % if PADIC has EVALAB(PADIC)
+--R eval : (%,PADIC,PADIC) -> % if PADIC has EVALAB(PADIC)
+--R eval : (%,List(PADIC),List(PADIC)) -> % if PADIC has EVALAB(PADIC)
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PADIC has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PADIC has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PADIC has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PADIC has PFECAT
 --R floor : % -> PADIC if PADIC has INS
 --R fractionPart : % -> % if PADIC has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R init : () -> % if PADIC has STEP
 --R max : (%,%) -> % if PADIC has ORDSET
 --R min : (%,%) -> % if PADIC has ORDSET
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R negative? : % -> Boolean if PADIC has OINTDOM
 --R nextItem : % -> Union(%,"failed") if PADIC has STEP
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if PADIC has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if PADIC has PATMAB INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if PADIC has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if PADIC has PATMAB(INT)
 --R positive? : % -> Boolean if PADIC has OINTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if PADIC has INS
---R reducedSystem : Matrix % -> Matrix PADIC
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix PADIC,vec: Vector PADIC)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if PADIC has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if PADIC has LINEXP INT
---R retract : % -> Integer if PADIC has RETRACT INT
---R retract : % -> Fraction Integer if PADIC has RETRACT INT
---R retract : % -> Symbol if PADIC has RETRACT SYMBOL
---R retractIfCan : % -> Union(Integer,"failed") if PADIC has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if PADIC has RETRACT INT
---R retractIfCan : % -> Union(Symbol,"failed") if PADIC has RETRACT SYMBOL
+--R reducedSystem : Matrix(%) -> Matrix(PADIC)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(PADIC),vec: Vector(PADIC))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if PADIC has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if PADIC has LINEXP(INT)
+--R retract : % -> Integer if PADIC has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if PADIC has RETRACT(INT)
+--R retract : % -> Symbol if PADIC has RETRACT(SYMBOL)
+--R retractIfCan : % -> Union(Integer,"failed") if PADIC has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if PADIC has RETRACT(INT)
+--R retractIfCan : % -> Union(Symbol,"failed") if PADIC has RETRACT(SYMBOL)
 --R retractIfCan : % -> Union(PADIC,"failed")
 --R sign : % -> Integer if PADIC has OINTDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if PADIC has PFECAT
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if PADIC has PFECAT
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if PADIC has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if PADIC has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R wholePart : % -> PADIC if PADIC has EUCDOM
@@ -91734,7 +91950,8 @@ Palette(): Exports == Implementation where
 
 --S 1 of 1
 )show ParametricPlaneCurve
---R ParametricPlaneCurve ComponentFunction: Type  is a domain constructor
+--R 
+--R ParametricPlaneCurve(ComponentFunction: Type)  is a domain constructor
 --R Abbreviation for ParametricPlaneCurve is PARPCURV 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PARPCURV 
@@ -91828,7 +92045,8 @@ ParametricPlaneCurve(ComponentFunction): Exports == Implementation where
 
 --S 1 of 1
 )show ParametricSpaceCurve
---R ParametricSpaceCurve ComponentFunction: Type  is a domain constructor
+--R 
+--R ParametricSpaceCurve(ComponentFunction: Type)  is a domain constructor
 --R Abbreviation for ParametricSpaceCurve is PARSCURV 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PARSCURV 
@@ -91925,7 +92143,8 @@ ParametricSpaceCurve(ComponentFunction): Exports == Implementation where
 
 --S 1 of 1
 )show ParametricSurface
---R ParametricSurface ComponentFunction: Type  is a domain constructor
+--R 
+--R ParametricSurface(ComponentFunction: Type)  is a domain constructor
 --R Abbreviation for ParametricSurface is PARSURF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PARSURF 
@@ -92028,7 +92247,7 @@ partialFraction(1,factorial 10)
 --R   (1)  --- - -- - -- + -
 --R          8    4    2   7
 --R         2    3    5
---R                                                Type: PartialFraction Integer
+--R                                               Type: PartialFraction(Integer)
 --E 1
 
 --S 2 of 22
@@ -92039,7 +92258,7 @@ f := padicFraction(%)
 --R   (2)  - + -- + -- + -- + -- + -- - -- - -- - -- - - - -- + -
 --R        2    4    5    6    7    8    2    3    4   5    2   7
 --R            2    2    2    2    2    3    3    3        5
---R                                                Type: PartialFraction Integer
+--R                                               Type: PartialFraction(Integer)
 --E 2
 
 --S 3 of 22
@@ -92050,7 +92269,7 @@ compactFraction(f)
 --R   (3)  --- - -- - -- + -
 --R          8    4    2   7
 --R         2    3    5
---R                                                Type: PartialFraction Integer
+--R                                               Type: PartialFraction(Integer)
 --E 3
 
 --S 4 of 22
@@ -92069,7 +92288,7 @@ nthFractionalTerm(f,3)
 --R   (5)  --
 --R         5
 --R        2
---R                                                Type: PartialFraction Integer
+--R                                               Type: PartialFraction(Integer)
 --E 5
 
 --S 6 of 22
@@ -92079,7 +92298,7 @@ partialFraction(1,- 13 + 14 * %i)
 --R             1         4
 --R   (6)  - ------- + -------
 --R          1 + 2%i   3 + 8%i
---R                                        Type: PartialFraction Complex Integer
+--R                                      Type: PartialFraction(Complex(Integer))
 --E 6
 
 --S 7 of 22
@@ -92089,7 +92308,7 @@ partialFraction(1,- 13 + 14 * %i)
 --R              %i
 --R   (7)  - ---------
 --R          14 + 13%i
---R                                               Type: Fraction Complex Integer
+--R                                             Type: Fraction(Complex(Integer))
 --E 7
 
 --S 8 of 22
@@ -92098,7 +92317,7 @@ u : FR UP(x, FRAC INT) := reduce(*,[primeFactor(x+i,i) for i in 1..4])
 --R
 --R                      2       3       4
 --R   (8)  (x + 1)(x + 2) (x + 3) (x + 4)
---R                      Type: Factored UnivariatePolynomial(x,Fraction Integer)
+--R                    Type: Factored(UnivariatePolynomial(x,Fraction(Integer)))
 --E 8
 
 --S 9 of 22
@@ -92112,7 +92331,7 @@ partialFraction(1,u)
 --R   ----- + -------- + ------------------- + ---------------------------------
 --R   x + 1          2                3                            4
 --R           (x + 2)          (x + 3)                      (x + 4)
---R               Type: PartialFraction UnivariatePolynomial(x,Fraction Integer)
+--R             Type: PartialFraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 9
 
 --S 10 of 22
@@ -92133,14 +92352,14 @@ padicFraction %
 --R     -------- + --------
 --R            3          4
 --R     (x + 4)    (x + 4)
---R               Type: PartialFraction UnivariatePolynomial(x,Fraction Integer)
+--R             Type: PartialFraction(UnivariatePolynomial(x,Fraction(Integer)))
 --E 10
 
 --S 11 of 22
 fraction:=Fraction(Polynomial(Integer))
 --R 
 --R
---R   (11)  Fraction Polynomial Integer
+--R   (11)  Fraction(Polynomial(Integer))
 --R                                                                 Type: Domain
 --E 11
 
@@ -92148,7 +92367,7 @@ fraction:=Fraction(Polynomial(Integer))
 up:=UnivariatePolynomial(y,fraction)
 --R 
 --R
---R   (12)  UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R   (12)  UnivariatePolynomial(y,Fraction(Polynomial(Integer)))
 --R                                                                 Type: Domain
 --E 12
 
@@ -92156,7 +92375,8 @@ up:=UnivariatePolynomial(y,fraction)
 pfup:=PartialFraction(up)
 --R 
 --R
---R   (13)  PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R   (13)
+--R   PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer))))
 --R                                                                 Type: Domain
 --E 13
 
@@ -92167,7 +92387,7 @@ a:=x+1/(y+1)
 --R         x y + x + 1
 --R   (14)  -----------
 --R            y + 1
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 14
 
 --S 15 of 22
@@ -92177,7 +92397,7 @@ b:=partialFraction(a,y)$PartialFractionPackage(Integer)
 --R               1
 --R   (15)  x + -----
 --R             y + 1
---R    Type: PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R Type: PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer))))
 --E 15
 
 --S 16 of 22
@@ -92187,7 +92407,7 @@ c:=b::pfup
 --R               1
 --R   (16)  x + -----
 --R             y + 1
---R    Type: PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R Type: PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer))))
 --E 16
 
 --S 17 of 22
@@ -92195,7 +92415,7 @@ cw:=(wholePart c)::Expression(Integer)
 --R 
 --R
 --R   (17)  x
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 17
 
 --S 18 of 22
@@ -92213,7 +92433,7 @@ crList:=[nthFractionalTerm(c,i) for i in 1..m]
 --R            1
 --R   (19)  [-----]
 --R          y + 1
---RType: List PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--RType: List(PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer)))))
 --E 19
 
 --S 20 of 22
@@ -92223,7 +92443,7 @@ cc:=reduce(+,crList)
 --R           1
 --R   (20)  -----
 --R         y + 1
---R    Type: PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R Type: PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer))))
 --E 20
 
 --S 21 of 22
@@ -92233,7 +92453,7 @@ ccx:=cc::(Fraction(up))::(Expression(Integer))
 --R           1
 --R   (21)  -----
 --R         y + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 21
 
 --S 22 of 22
@@ -92243,7 +92463,7 @@ sin(cw)*cos(ccx)+sin(ccx)*cos(cw)
 --R               1                        1
 --R   (22)  cos(-----)sin(x) + cos(x)sin(-----)
 --R             y + 1                    y + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 22
 
 )spool
@@ -92839,6 +93059,7 @@ PartialFraction(R: EuclideanDomain): Cat == Capsule where
 
 --S 1 of 1
 )show Partition
+--R 
 --R Partition  is a domain constructor
 --R Abbreviation for Partition is PRTITION 
 --R This constructor is not exposed in this frame.
@@ -92849,15 +93070,15 @@ PartialFraction(R: EuclideanDomain): Cat == Capsule where
 --R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
 --R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
 --R ?>=? : (%,%) -> Boolean               0 : () -> %
---R coerce : % -> List Integer            coerce : % -> OutputForm
---R conjugate : % -> %                    convert : % -> List Integer
+--R coerce : % -> List(Integer)           coerce : % -> OutputForm
+--R conjugate : % -> %                    convert : % -> List(Integer)
 --R hash : % -> SingleInteger             latex : % -> String
 --R max : (%,%) -> %                      min : (%,%) -> %
---R partition : List Integer -> %         pdct : % -> Integer
+--R partition : List(Integer) -> %        pdct : % -> Integer
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
---R powers : List Integer -> List List Integer
+--R powers : List(Integer) -> List(List(Integer))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
 --E 1
@@ -93056,7 +93277,8 @@ Partition: Exports == Implementation where
 
 --S 1 of 1
 )show Pattern
---R Pattern R: SetCategory  is a domain constructor
+--R 
+--R Pattern(R: SetCategory)  is a domain constructor
 --R Abbreviation for Pattern is PATTERN 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PATTERN 
@@ -93068,34 +93290,34 @@ Partition: Exports == Implementation where
 --R 0 : () -> %                           addBadValue : (%,Any) -> %
 --R coerce : Symbol -> %                  coerce : R -> %
 --R coerce : % -> OutputForm              constant? : % -> Boolean
---R convert : List % -> %                 copy : % -> %
+--R convert : List(%) -> %                copy : % -> %
 --R depth : % -> NonNegativeInteger       generic? : % -> Boolean
---R getBadValues : % -> List Any          hasPredicate? : % -> Boolean
+--R getBadValues : % -> List(Any)         hasPredicate? : % -> Boolean
 --R hasTopPredicate? : % -> Boolean       hash : % -> SingleInteger
 --R inR? : % -> Boolean                   latex : % -> String
 --R multiple? : % -> Boolean              optional? : % -> Boolean
---R predicates : % -> List Any            quoted? : % -> Boolean
+--R predicates : % -> List(Any)           quoted? : % -> Boolean
 --R resetBadValues : % -> %               retract : % -> Symbol
 --R retract : % -> R                      symbol? : % -> Boolean
---R variables : % -> List %               ?~=? : (%,%) -> Boolean
+--R variables : % -> List(%)              ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
---R elt : (BasicOperator,List %) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R isExpt : % -> Union(Record(val: %,exponent: NonNegativeInteger),"failed")
---R isList : % -> Union(List %,"failed")
---R isOp : % -> Union(Record(op: BasicOperator,arg: List %),"failed")
---R isOp : (%,BasicOperator) -> Union(List %,"failed")
---R isPlus : % -> Union(List %,"failed")
+--R isList : % -> Union(List(%),"failed")
+--R isOp : % -> Union(Record(op: BasicOperator,arg: List(%)),"failed")
+--R isOp : (%,BasicOperator) -> Union(List(%),"failed")
+--R isPlus : % -> Union(List(%),"failed")
 --R isPower : % -> Union(Record(val: %,exponent: %),"failed")
 --R isQuotient : % -> Union(Record(num: %,den: %),"failed")
---R isTimes : % -> Union(List %,"failed")
---R optpair : List % -> Union(List %,"failed")
+--R isTimes : % -> Union(List(%),"failed")
+--R optpair : List(%) -> Union(List(%),"failed")
 --R patternVariable : (Symbol,Boolean,Boolean,Boolean) -> %
 --R retractIfCan : % -> Union(Symbol,"failed")
 --R retractIfCan : % -> Union(R,"failed")
---R setPredicates : (%,List Any) -> %
---R setTopPredicate : (%,List Symbol,Any) -> %
---R topPredicate : % -> Record(var: List Symbol,pred: Any)
---R withPredicates : (%,List Any) -> %
+--R setPredicates : (%,List(Any)) -> %
+--R setTopPredicate : (%,List(Symbol),Any) -> %
+--R topPredicate : % -> Record(var: List(Symbol),pred: Any)
+--R withPredicates : (%,List(Any)) -> %
 --R
 --E 1
 
@@ -93559,7 +93781,8 @@ Pattern(R:SetCategory): Exports == Implementation where
 
 --S 1 of 1
 )show PatternMatchListResult
---R PatternMatchListResult(R: SetCategory,S: SetCategory,L: ListAggregate S)  is a domain constructor
+--R 
+--R PatternMatchListResult(R: SetCategory,S: SetCategory,L: ListAggregate(S))  is a domain constructor
 --R Abbreviation for PatternMatchListResult is PATLRES 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PATLRES 
@@ -93674,23 +93897,24 @@ PatternMatchListResult(R:SetCategory, S:SetCategory, L:ListAggregate S):
 
 --S 1 of 1
 )show PatternMatchResult
+--R 
 --R PatternMatchResult(R: SetCategory,S: SetCategory)  is a domain constructor
 --R Abbreviation for PatternMatchResult is PATRES 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PATRES 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                addMatch : (Pattern R,S,%) -> %
+--R ?=? : (%,%) -> Boolean                addMatch : (Pattern(R),S,%) -> %
 --R coerce : % -> OutputForm              failed : () -> %
 --R failed? : % -> Boolean                hash : % -> SingleInteger
 --R latex : % -> String                   new : () -> %
 --R union : (%,%) -> %                    ?~=? : (%,%) -> Boolean
---R addMatchRestricted : (Pattern R,S,%,S) -> %
---R construct : List Record(key: Symbol,entry: S) -> %
---R destruct : % -> List Record(key: Symbol,entry: S)
---R getMatch : (Pattern R,%) -> Union(S,"failed")
---R insertMatch : (Pattern R,S,%) -> %
---R satisfy? : (%,Pattern R) -> Union(Boolean,"failed")
+--R addMatchRestricted : (Pattern(R),S,%,S) -> %
+--R construct : List(Record(key: Symbol,entry: S)) -> %
+--R destruct : % -> List(Record(key: Symbol,entry: S))
+--R getMatch : (Pattern(R),%) -> Union(S,"failed")
+--R insertMatch : (Pattern(R),S,%) -> %
+--R satisfy? : (%,Pattern(R)) -> Union(Boolean,"failed")
 --R
 --E 1
 
@@ -93853,20 +94077,21 @@ PatternMatchResult(R:SetCategory, S:SetCategory): SetCategory with
 
 --S 1 of 1
 )show PendantTree
---R PendantTree S: SetCategory  is a domain constructor
+--R 
+--R PendantTree(S: SetCategory)  is a domain constructor
 --R Abbreviation for PendantTree is PENDTREE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PENDTREE 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                coerce : % -> Tree S
+--R children : % -> List(%)               coerce : % -> Tree(S)
 --R copy : % -> %                         cyclic? : % -> Boolean
 --R distance : (%,%) -> Integer           ?.right : (%,right) -> %
 --R ?.left : (%,left) -> %                ?.value : (%,value) -> S
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                leaf? : % -> Boolean
---R leaves : % -> List S                  left : % -> %
---R map : ((S -> S),%) -> %               nodes : % -> List %
+--R leaves : % -> List(S)                 left : % -> %
+--R map : ((S -> S),%) -> %               nodes : % -> List(%)
 --R ptree : (%,%) -> %                    ptree : S -> %
 --R right : % -> %                        sample : () -> %
 --R value : % -> S                       
@@ -93877,21 +94102,21 @@ PatternMatchResult(R:SetCategory, S:SetCategory): SetCategory with
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if $ has finiteAggregate and S has SETCAT
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT
---R eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,S,S) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S) and S has SETCAT
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S) and S has SETCAT
 --R every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R hash : % -> SingleInteger if S has SETCAT
 --R latex : % -> String if S has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if $ has finiteAggregate and S has SETCAT
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
---R parts : % -> List S if $ has finiteAggregate
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R parts : % -> List(S) if $ has finiteAggregate
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,right,%) -> % if $ has shallowlyMutable
 --R setelt : (%,left,%) -> % if $ has shallowlyMutable
 --R setelt : (%,value,S) -> S if $ has shallowlyMutable
@@ -94043,7 +94268,7 @@ p := coercePreimagesImages([[1,2,3],[1,2,3]])
 --R 
 --R
 --R   (1)  1
---R                                            Type: Permutation PositiveInteger
+--R                                           Type: Permutation(PositiveInteger)
 --E 1
 
 --S 2 of 8
@@ -94051,7 +94276,7 @@ movedPoints p    -- should return {}
 --R 
 --R
 --R   (2)  {}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 2
 
 --S 3 of 8
@@ -94067,7 +94292,7 @@ p := coercePreimagesImages([[0,1,2,3],[3,0,2,1]])$PERM ZMOD 4
 --R 
 --R
 --R   (4)  (1 0 3)
---R                                               Type: Permutation IntegerMod 4
+--R                                             Type: Permutation(IntegerMod(4))
 --E 4
 
 --S 5 of 8
@@ -94075,7 +94300,7 @@ fixedPoints p    -- should return {2}
 --R 
 --R
 --R   (5)  {2}
---R                                                       Type: Set IntegerMod 4
+--R                                                     Type: Set(IntegerMod(4))
 --E 5
 
 --S 6 of 8
@@ -94083,7 +94308,7 @@ q := coercePreimagesImages([[0,1,2,3],[1,0]])$PERM ZMOD 4
 --R 
 --R
 --R   (6)  (1 0)
---R                                               Type: Permutation IntegerMod 4
+--R                                             Type: Permutation(IntegerMod(4))
 --E 6
 
 --S 7 of 8
@@ -94091,7 +94316,7 @@ fixedPoints(p*q) -- should return {2,0}
 --R 
 --R
 --R   (7)  {2,0}
---R                                                       Type: Set IntegerMod 4
+--R                                                     Type: Set(IntegerMod(4))
 --E 7
 
 --S 8 of 8
@@ -94612,32 +94837,35 @@ Permutation(S:SetCategory): public == private where
 
 --S 1 of 1
 )show PermutationGroup
---R PermutationGroup S: SetCategory  is a domain constructor
+--R 
+--R PermutationGroup(S: SetCategory)  is a domain constructor
 --R Abbreviation for PermutationGroup is PERMGRP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PERMGRP 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
---R ?=? : (%,%) -> Boolean                base : % -> List S
---R coerce : List Permutation S -> %      coerce : % -> List Permutation S
+--R ?=? : (%,%) -> Boolean                base : % -> List(S)
 --R coerce : % -> OutputForm              degree : % -> NonNegativeInteger
 --R hash : % -> SingleInteger             latex : % -> String
---R movedPoints : % -> Set S              orbit : (%,List S) -> Set List S
---R orbit : (%,Set S) -> Set Set S        orbit : (%,S) -> Set S
---R orbits : % -> Set Set S               order : % -> NonNegativeInteger
---R random : % -> Permutation S           ?~=? : (%,%) -> Boolean
---R ?.? : (%,NonNegativeInteger) -> Permutation S
---R generators : % -> List Permutation S
+--R movedPoints : % -> Set(S)             orbit : (%,Set(S)) -> Set(Set(S))
+--R orbit : (%,S) -> Set(S)               orbits : % -> Set(Set(S))
+--R order : % -> NonNegativeInteger       random : % -> Permutation(S)
+--R ?~=? : (%,%) -> Boolean              
+--R coerce : List(Permutation(S)) -> %
+--R coerce : % -> List(Permutation(S))
+--R ?.? : (%,NonNegativeInteger) -> Permutation(S)
+--R generators : % -> List(Permutation(S))
 --R initializeGroupForWordProblem : (%,Integer,Integer) -> Void
 --R initializeGroupForWordProblem : % -> Void
---R member? : (Permutation S,%) -> Boolean
---R permutationGroup : List Permutation S -> %
---R random : (%,Integer) -> Permutation S
---R strongGenerators : % -> List Permutation S
---R wordInGenerators : (Permutation S,%) -> List NonNegativeInteger
---R wordInStrongGenerators : (Permutation S,%) -> List NonNegativeInteger
---R wordsForStrongGenerators : % -> List List NonNegativeInteger
+--R member? : (Permutation(S),%) -> Boolean
+--R orbit : (%,List(S)) -> Set(List(S))
+--R permutationGroup : List(Permutation(S)) -> %
+--R random : (%,Integer) -> Permutation(S)
+--R strongGenerators : % -> List(Permutation(S))
+--R wordInGenerators : (Permutation(S),%) -> List(NonNegativeInteger)
+--R wordInStrongGenerators : (Permutation(S),%) -> List(NonNegativeInteger)
+--R wordsForStrongGenerators : % -> List(List(NonNegativeInteger))
 --R
 --E 1
 
@@ -95462,13 +95690,14 @@ PermutationGroup(S:SetCategory): public == private where
 
 --S 1 of 1
 )show Pi
+--R 
 --R Pi  is a domain constructor
 --R Abbreviation for Pi is HACKPI 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for HACKPI 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -95477,37 +95706,37 @@ PermutationGroup(S:SetCategory): public == private where
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        coerce : % -> Float
---R coerce : % -> DoubleFloat             coerce : Fraction Integer -> %
+--R coerce : % -> DoubleFloat             coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              convert : % -> InputForm
 --R convert : % -> DoubleFloat            convert : % -> Float
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R one? : % -> Boolean                   pi : () -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> Fraction Integer       retract : % -> Integer
+--R retract : % -> Fraction(Integer)      retract : % -> Integer
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R convert : % -> Fraction SparseUnivariatePolynomial Integer
+--R convert : % -> Fraction(SparseUnivariatePolynomial(Integer))
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R euclideanSize : % -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -95944,7 +96173,7 @@ refined:=refine(sketch,0.1)
 listBranches(sketch)
 --R
 --R   (3)  [[[0.5,- 0.5],[- 0.5,0.5]]]
---R                                            Type: List List Point DoubleFloat
+--R                                         Type: List(List(Point(DoubleFloat)))
 --E 3
 
 --S 4 of 5
@@ -96202,11 +96431,12 @@ listBranches(refined)
 --R      [- 0.49199999999999999,0.49199999999999999], [- 0.496,0.496],
 --R      [- 0.5,0.5]]
 --R     ]
---R                                            Type: List List Point DoubleFloat
+--R                                         Type: List(List(Point(DoubleFloat)))
 --E 4
 
 --S 5 of 5
 )show ACPLOT
+--R 
 --R PlaneAlgebraicCurvePlot  is a domain constructor
 --R Abbreviation for PlaneAlgebraicCurvePlot is ACPLOT 
 --R This constructor is not exposed in this frame.
@@ -96214,9 +96444,10 @@ listBranches(refined)
 --R
 --R------------------------------- Operations --------------------------------
 --R coerce : % -> OutputForm              refine : (%,DoubleFloat) -> %
---R xRange : % -> Segment DoubleFloat     yRange : % -> Segment DoubleFloat
---R listBranches : % -> List List Point DoubleFloat
---R makeSketch : (Polynomial Integer,Symbol,Symbol,Segment Fraction Integer,Segment Fraction Integer) -> %
+--R listBranches : % -> List(List(Point(DoubleFloat)))
+--R makeSketch : (Polynomial(Integer),Symbol,Symbol,Segment(Fraction(Integer)),Segment(Fraction(Integer))) -> %
+--R xRange : % -> Segment(DoubleFloat)
+--R yRange : % -> Segment(DoubleFloat)
 --R
 --E 5
 
@@ -97525,29 +97756,30 @@ PlaneAlgebraicCurvePlot(): PlottablePlaneCurveCategory _
 
 --S 1 of 1
 )show Places
---R Places K: Field  is a domain constructor
+--R 
+--R Places(K: Field)  is a domain constructor
 --R Abbreviation for Places is PLACES 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PLACES 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Integer,%) -> Divisor %        ?+? : (%,%) -> Divisor %
---R -? : % -> Divisor %                   ?-? : (%,%) -> Divisor %
+--R ?*? : (Integer,%) -> Divisor(%)       ?+? : (%,%) -> Divisor(%)
+--R -? : % -> Divisor(%)                  ?-? : (%,%) -> Divisor(%)
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
---R create : Symbol -> %                  create : List K -> %
+--R create : Symbol -> %                  create : List(K) -> %
 --R degree : % -> PositiveInteger         ?.? : (%,Integer) -> K
---R foundPlaces : () -> List %            hash : % -> SingleInteger
+--R foundPlaces : () -> List(%)           hash : % -> SingleInteger
 --R itsALeaf! : % -> Void                 latex : % -> String
---R leaf? : % -> Boolean                  reduce : List % -> Divisor %
+--R leaf? : % -> Boolean                  reduce : List(%) -> Divisor(%)
 --R ?~=? : (%,%) -> Boolean              
---R ?+? : (%,Divisor %) -> Divisor %
---R ?+? : (Divisor %,%) -> Divisor %
---R ?-? : (%,Divisor %) -> Divisor %
---R ?-? : (Divisor %,%) -> Divisor %
---R localParam : % -> List NeitherSparseOrDensePowerSeries K
+--R ?+? : (%,Divisor(%)) -> Divisor(%)
+--R ?+? : (Divisor(%),%) -> Divisor(%)
+--R ?-? : (%,Divisor(%)) -> Divisor(%)
+--R ?-? : (Divisor(%),%) -> Divisor(%)
+--R localParam : % -> List(NeitherSparseOrDensePowerSeries(K))
 --R setDegree! : (%,PositiveInteger) -> Void
---R setFoundPlacesToEmpty : () -> List %
---R setParam! : (%,List NeitherSparseOrDensePowerSeries K) -> Void
+--R setFoundPlacesToEmpty : () -> List(%)
+--R setParam! : (%,List(NeitherSparseOrDensePowerSeries(K))) -> Void
 --R
 --E 1
 
@@ -97627,30 +97859,31 @@ Places(K):Exports == Implementation where
 
 --S 1 of 1
 )show PlacesOverPseudoAlgebraicClosureOfFiniteField
---R PlacesOverPseudoAlgebraicClosureOfFiniteField K: FiniteFieldCategory  is a domain constructor
+--R 
+--R PlacesOverPseudoAlgebraicClosureOfFiniteField(K: FiniteFieldCategory)  is a domain constructor
 --R Abbreviation for PlacesOverPseudoAlgebraicClosureOfFiniteField is PLACESPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PLACESPS 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Integer,%) -> Divisor %        ?+? : (%,%) -> Divisor %
---R -? : % -> Divisor %                   ?-? : (%,%) -> Divisor %
+--R ?*? : (Integer,%) -> Divisor(%)       ?+? : (%,%) -> Divisor(%)
+--R -? : % -> Divisor(%)                  ?-? : (%,%) -> Divisor(%)
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R create : Symbol -> %                  degree : % -> PositiveInteger
---R foundPlaces : () -> List %            hash : % -> SingleInteger
+--R foundPlaces : () -> Lis