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 : () -> 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 create : List PseudoAlgebraicClosureOfFiniteField K -> %
---R ?.? : (%,Integer) -> PseudoAlgebraicClosureOfFiniteField K
---R localParam : % -> List NeitherSparseOrDensePowerSeries PseudoAlgebraicClosureOfFiniteField K
+--R ?+? : (%,Divisor(%)) -> Divisor(%)
+--R ?+? : (Divisor(%),%) -> Divisor(%)
+--R ?-? : (%,Divisor(%)) -> Divisor(%)
+--R ?-? : (Divisor(%),%) -> Divisor(%)
+--R create : List(PseudoAlgebraicClosureOfFiniteField(K)) -> %
+--R ?.? : (%,Integer) -> PseudoAlgebraicClosureOfFiniteField(K)
+--R localParam : % -> List(NeitherSparseOrDensePowerSeries(PseudoAlgebraicClosureOfFiniteField(K)))
 --R setDegree! : (%,PositiveInteger) -> Void
---R setFoundPlacesToEmpty : () -> List %
---R setParam! : (%,List NeitherSparseOrDensePowerSeries PseudoAlgebraicClosureOfFiniteField K) -> Void
+--R setFoundPlacesToEmpty : () -> List(%)
+--R setParam! : (%,List(NeitherSparseOrDensePowerSeries(PseudoAlgebraicClosureOfFiniteField(K)))) -> Void
 --R
 --E 1
 
@@ -97731,28 +97964,29 @@ PlacesOverPseudoAlgebraicClosureOfFiniteField(K):Exports
 
 --S 1 of 1
 )show Plcs
---R Plcs(K: Field,PCS: LocalPowerSeriesCategory K)  is a domain constructor
+--R 
+--R Plcs(K: Field,PCS: LocalPowerSeriesCategory(K))  is a domain constructor
 --R Abbreviation for Plcs is PLCS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PLCS 
 --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                  localParam : % -> List PCS
---R reduce : List % -> Divisor %          setParam! : (%,List PCS) -> Void
+--R leaf? : % -> Boolean                  localParam : % -> List(PCS)
+--R reduce : List(%) -> Divisor(%)        setParam! : (%,List(PCS)) -> Void
 --R ?~=? : (%,%) -> Boolean              
---R ?+? : (%,Divisor %) -> Divisor %
---R ?+? : (Divisor %,%) -> Divisor %
---R ?-? : (%,Divisor %) -> Divisor %
---R ?-? : (Divisor %,%) -> Divisor %
+--R ?+? : (%,Divisor(%)) -> Divisor(%)
+--R ?+? : (Divisor(%),%) -> Divisor(%)
+--R ?-? : (%,Divisor(%)) -> Divisor(%)
+--R ?-? : (Divisor(%),%) -> Divisor(%)
 --R setDegree! : (%,PositiveInteger) -> Void
---R setFoundPlacesToEmpty : () -> List %
+--R setFoundPlacesToEmpty : () -> List(%)
 --R
 --E 1
 
@@ -98628,6 +98862,7 @@ Plot(): Exports == Implementation where
 
 --S 1 of 1
 )show Plot3D
+--R 
 --R Plot3D  is a domain constructor
 --R Abbreviation for Plot3D is PLOT3D 
 --R This constructor is not exposed in this frame.
@@ -98638,21 +98873,23 @@ Plot(): Exports == Implementation where
 --R debug3D : Boolean -> Boolean          maxPoints3D : () -> Integer
 --R minPoints3D : () -> Integer           numFunEvals3D : () -> Integer
 --R refine : % -> %                       screenResolution3D : () -> Integer
---R setAdaptive3D : Boolean -> Boolean    tRange : % -> Segment DoubleFloat
---R xRange : % -> Segment DoubleFloat     yRange : % -> Segment DoubleFloat
---R zRange : % -> Segment DoubleFloat    
---R listBranches : % -> List List Point DoubleFloat
---R plot : (%,Segment DoubleFloat) -> %
---R plot : ((DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),Segment DoubleFloat,Segment DoubleFloat,Segment DoubleFloat,Segment DoubleFloat) -> %
---R plot : ((DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),Segment DoubleFloat) -> %
---R pointPlot : ((DoubleFloat -> Point DoubleFloat),Segment DoubleFloat,Segment DoubleFloat,Segment DoubleFloat,Segment DoubleFloat) -> %
---R pointPlot : ((DoubleFloat -> Point DoubleFloat),Segment DoubleFloat) -> %
---R refine : (%,Segment DoubleFloat) -> %
+--R setAdaptive3D : Boolean -> Boolean   
+--R listBranches : % -> List(List(Point(DoubleFloat)))
+--R plot : (%,Segment(DoubleFloat)) -> %
+--R plot : ((DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat)) -> %
+--R plot : ((DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),(DoubleFloat -> DoubleFloat),Segment(DoubleFloat)) -> %
+--R pointPlot : ((DoubleFloat -> Point(DoubleFloat)),Segment(DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat)) -> %
+--R pointPlot : ((DoubleFloat -> Point(DoubleFloat)),Segment(DoubleFloat)) -> %
+--R refine : (%,Segment(DoubleFloat)) -> %
 --R setMaxPoints3D : Integer -> Integer
 --R setMinPoints3D : Integer -> Integer
 --R setScreenResolution3D : Integer -> Integer
---R tValues : % -> List List DoubleFloat
---R zoom : (%,Segment DoubleFloat,Segment DoubleFloat,Segment DoubleFloat) -> %
+--R tRange : % -> Segment(DoubleFloat)
+--R tValues : % -> List(List(DoubleFloat))
+--R xRange : % -> Segment(DoubleFloat)
+--R yRange : % -> Segment(DoubleFloat)
+--R zRange : % -> Segment(DoubleFloat)
+--R zoom : (%,Segment(DoubleFloat),Segment(DoubleFloat),Segment(DoubleFloat)) -> %
 --R
 --E 1
 
@@ -99205,7 +99442,8 @@ Plot3D(): Exports == Implementation where
 
 --S 1 of 1
 )show PoincareBirkhoffWittLyndonBasis
---R PoincareBirkhoffWittLyndonBasis VarSet: OrderedSet  is a domain constructor
+--R 
+--R PoincareBirkhoffWittLyndonBasis(VarSet: OrderedSet)  is a domain constructor
 --R Abbreviation for PoincareBirkhoffWittLyndonBasis is PBWLB 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PBWLB 
@@ -99214,16 +99452,16 @@ Plot3D(): Exports == Implementation where
 --R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
 --R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
 --R ?>=? : (%,%) -> Boolean               1 : () -> %
---R coerce : VarSet -> %                  coerce : LyndonWord VarSet -> %
---R coerce : % -> OutputForm              first : % -> LyndonWord VarSet
+--R coerce : VarSet -> %                  coerce : LyndonWord(VarSet) -> %
+--R coerce : % -> OutputForm              first : % -> LyndonWord(VarSet)
 --R hash : % -> SingleInteger             latex : % -> String
 --R length : % -> NonNegativeInteger      max : (%,%) -> %
 --R min : (%,%) -> %                      rest : % -> %
---R retract : % -> LyndonWord VarSet      retractable? : % -> Boolean
---R varList : % -> List VarSet            ?~=? : (%,%) -> Boolean
---R coerce : % -> OrderedFreeMonoid VarSet
---R listOfTerms : % -> List LyndonWord VarSet
---R retractIfCan : % -> Union(LyndonWord VarSet,"failed")
+--R retract : % -> LyndonWord(VarSet)     retractable? : % -> Boolean
+--R varList : % -> List(VarSet)           ?~=? : (%,%) -> Boolean
+--R coerce : % -> OrderedFreeMonoid(VarSet)
+--R listOfTerms : % -> List(LyndonWord(VarSet))
+--R retractIfCan : % -> Union(LyndonWord(VarSet),"failed")
 --R
 --E 1
 
@@ -99396,25 +99634,26 @@ PoincareBirkhoffWittLyndonBasis(VarSet: OrderedSet): Public == Private where
 
 --S 1 of 1
 )show Point
---R Point R: Ring  is a domain constructor
+--R 
+--R Point(R: Ring)  is a domain constructor
 --R Abbreviation for Point is POINT 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for POINT 
 --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 convert : List R -> %                 copy : % -> %
+--R concat : (%,R) -> %                   construct : List(R) -> %
+--R convert : List(R) -> %                copy : % -> %
 --R cross : (%,%) -> %                    delete : (%,Integer) -> %
 --R dimension : % -> PositiveInteger      ?.? : (%,Integer) -> R
 --R elt : (%,Integer,R) -> R              empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List R
---R eq? : (%,%) -> Boolean                extend : (%,List R) -> %
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R empty? : % -> Boolean                 entries : % -> List(R)
+--R eq? : (%,%) -> Boolean                extend : (%,List(R)) -> %
+--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) -> %     point : List R -> %
+--R new : (NonNegativeInteger,R) -> %     point : List(R) -> %
 --R qelt : (%,Integer) -> R               reverse : % -> %
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -99430,18 +99669,18 @@ PoincareBirkhoffWittLyndonBasis(VarSet: OrderedSet): Public == Private 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 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")
@@ -99455,14 +99694,14 @@ PoincareBirkhoffWittLyndonBasis(VarSet: OrderedSet): Public == Private 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
@@ -99475,7 +99714,7 @@ PoincareBirkhoffWittLyndonBasis(VarSet: OrderedSet): Public == Private 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
@@ -99642,7 +99881,7 @@ x + 1
 --R 
 --R
 --R   (1)  x + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 1
 
 --S 2 of 46
@@ -99650,7 +99889,7 @@ z - 2.3
 --R 
 --R
 --R   (2)  z - 2.3
---R                                                       Type: Polynomial Float
+--R                                                      Type: Polynomial(Float)
 --E 2
 
 --S 3 of 46
@@ -99660,7 +99899,7 @@ y**2 - z + 3/4
 --R               2   3
 --R   (3)  - z + y  + -
 --R                   4
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 3
 
 --S 4 of 46
@@ -99669,7 +99908,7 @@ y **2 + x*y + y
 --R
 --R         2
 --R   (4)  y  + (x + 1)y
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 4
 
 --S 5 of 46
@@ -99687,7 +99926,7 @@ p := (y-1)**2 * x * z
 --R
 --R            2
 --R   (6)  (x y  - 2x y + x)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 6
 
 --S 7 of 46
@@ -99695,7 +99934,7 @@ q := (y-1) * x * (z+5)
 --R 
 --R
 --R   (7)  (x y - x)z + 5x y - 5x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 7
 
 --S 8 of 46
@@ -99703,7 +99942,7 @@ factor(q)
 --R 
 --R
 --R   (8)  x(y - 1)(z + 5)
---R                                            Type: Factored Polynomial Integer
+--R                                          Type: Factored(Polynomial(Integer))
 --E 8
 
 --S 9 of 46
@@ -99716,7 +99955,7 @@ p - q**2
 --R   + 
 --R          2 2      2       2
 --R     - 25x y  + 50x y - 25x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 9
 
 --S 10 of 46
@@ -99724,7 +99963,7 @@ gcd(p,q)
 --R 
 --R
 --R   (10)  x y - x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 10
 
 --S 11 of 46
@@ -99732,7 +99971,7 @@ factor %
 --R 
 --R
 --R   (11)  x(y - 1)
---R                                            Type: Factored Polynomial Integer
+--R                                          Type: Factored(Polynomial(Integer))
 --E 11
 
 --S 12 of 46
@@ -99741,7 +99980,7 @@ lcm(p,q)
 --R
 --R             2             2        2
 --R   (12)  (x y  - 2x y + x)z  + (5x y  - 10x y + 5x)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 12
 
 --S 13 of 46
@@ -99758,7 +99997,7 @@ resultant(p,q,z)
 --R
 --R           2 3      2 2      2      2
 --R   (14)  5x y  - 15x y  + 15x y - 5x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 14
 
 --S 15 of 46
@@ -99766,7 +100005,7 @@ resultant(p,q,x)
 --R 
 --R
 --R   (15)  0
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 15
 
 --S 16 of 46
@@ -99806,7 +100045,7 @@ variables p
 --R 
 --R
 --R   (20)  [z,y,x]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 20
 
 --S 21 of 46
@@ -99838,7 +100077,7 @@ degree(p,[x,y,z])
 --R 
 --R
 --R   (24)  [1,2,1]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 24
 
 --S 25 of 46
@@ -99863,7 +100102,7 @@ leadingMonomial p
 --R
 --R            2
 --R   (27)  x y z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 27
 
 --S 28 of 46
@@ -99871,7 +100110,7 @@ reductum p
 --R 
 --R
 --R   (28)  (- 2x y + x)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 28
 
 --S 29 of 46
@@ -99879,7 +100118,7 @@ p - leadingMonomial p - reductum p
 --R 
 --R
 --R   (29)  0
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 29
 
 --S 30 of 46
@@ -99896,7 +100135,7 @@ p
 --R
 --R             2
 --R   (31)  (x y  - 2x y + x)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 31
 
 --S 32 of 46
@@ -99905,7 +100144,7 @@ eval(p,x,w)
 --R
 --R             2
 --R   (32)  (w y  - 2w y + w)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 32
 
 --S 33 of 46
@@ -99914,7 +100153,7 @@ eval(p,x,1)
 --R
 --R           2
 --R   (33)  (y  - 2y + 1)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 33
 
 --S 34 of 46
@@ -99923,7 +100162,7 @@ eval(p,x,y^2 - 1)
 --R
 --R           4     3
 --R   (34)  (y  - 2y  + 2y - 1)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 34
 
 --S 35 of 46
@@ -99932,7 +100171,7 @@ D(p,x)
 --R
 --R           2
 --R   (35)  (y  - 2y + 1)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 35
 
 --S 36 of 46
@@ -99940,7 +100179,7 @@ D(p,y)
 --R 
 --R
 --R   (36)  (2x y - 2x)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 36
 
 --S 37 of 46
@@ -99949,7 +100188,7 @@ D(p,z)
 --R
 --R            2
 --R   (37)  x y  - 2x y + x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 37
 
 --S 38 of 46
@@ -99959,7 +100198,7 @@ integrate(p,y)
 --R          1    3      2
 --R   (38)  (- x y  - x y  + x y)z
 --R          3
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 38
 
 --S 39 of 46
@@ -99968,7 +100207,7 @@ qr := monicDivide(p,x+1,x)
 --R
 --R                      2                           2
 --R   (39)  [quotient= (y  - 2y + 1)z,remainder= (- y  + 2y - 1)z]
---R     Type: Record(quotient: Polynomial Integer,remainder: Polynomial Integer)
+--R   Type: Record(quotient: Polynomial(Integer),remainder: Polynomial(Integer))
 --E 39
 
 --S 40 of 46
@@ -99977,7 +100216,7 @@ qr.remainder
 --R
 --R             2
 --R   (40)  (- y  + 2y - 1)z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 40
 
 --S 41 of 46
@@ -99985,7 +100224,7 @@ p - ((x+1) * qr.quotient + qr.remainder)
 --R 
 --R
 --R   (41)  0
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 41
 
 --S 42 of 46
@@ -99995,7 +100234,7 @@ p/q
 --R         (y - 1)z
 --R   (42)  --------
 --R           z + 5
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 42
 
 --S 43 of 46
@@ -100005,7 +100244,7 @@ p/q
 --R               2  2   4
 --R   (43)  - y + - x  + -
 --R               3      5
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 43
 
 --S 44 of 46
@@ -100016,7 +100255,7 @@ p/q
 --R         - 15y + 10x  + 12
 --R   (44)  -----------------
 --R                 15
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 44
 
 --S 45 of 46
@@ -100026,7 +100265,7 @@ p/q
 --R               2  2   4
 --R   (45)  - y + - x  + -
 --R               3      5
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 45
 
 --S 46 of 46
@@ -100035,7 +100274,7 @@ map(numeric,%)
 --R
 --R                                            2
 --R   (46)  - 1.0 y + 0.6666666666 6666666667 x  + 0.8
---R                                                       Type: Polynomial Float
+--R                                                      Type: Polynomial(Float)
 --E 46
 )spool
 )lisp (bye)
@@ -100578,6 +100817,7 @@ Polynomial(R:Ring):
 
 --S 1 of 1
 )show PolynomialIdeals
+--R 
 --R PolynomialIdeals(F: Field,Expon: OrderedAbelianMonoidSup,VarSet: OrderedSet,DPoly: PolynomialCategory(F,Expon,VarSet))  is a domain constructor
 --R Abbreviation for PolynomialIdeals is IDEAL 
 --R This constructor is exposed in this frame.
@@ -100585,25 +100825,25 @@ Polynomial(R:Ring):
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,%) -> %                      ?+? : (%,%) -> %
---R ?=? : (%,%) -> Boolean                coerce : List DPoly -> %
+--R ?=? : (%,%) -> Boolean                coerce : List(DPoly) -> %
 --R coerce : % -> OutputForm              dimension : % -> Integer
---R element? : (DPoly,%) -> Boolean       generators : % -> List DPoly
+--R element? : (DPoly,%) -> Boolean       generators : % -> List(DPoly)
 --R groebner : % -> %                     groebner? : % -> Boolean
---R groebnerIdeal : List DPoly -> %       hash : % -> SingleInteger
---R ideal : List DPoly -> %               in? : (%,%) -> Boolean
---R inRadical? : (DPoly,%) -> Boolean     intersect : List % -> %
+--R groebnerIdeal : List(DPoly) -> %      hash : % -> SingleInteger
+--R ideal : List(DPoly) -> %              in? : (%,%) -> Boolean
+--R inRadical? : (DPoly,%) -> Boolean     intersect : List(%) -> %
 --R intersect : (%,%) -> %                latex : % -> String
 --R leadingIdeal : % -> %                 one? : % -> Boolean
 --R quotient : (%,DPoly) -> %             quotient : (%,%) -> %
 --R saturate : (%,DPoly) -> %             zero? : % -> Boolean
 --R zeroDim? : % -> Boolean               ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
---R backOldPos : Record(mval: Matrix F,invmval: Matrix F,genIdeal: %) -> %
---R dimension : (%,List VarSet) -> Integer
---R generalPosition : (%,List VarSet) -> Record(mval: Matrix F,invmval: Matrix F,genIdeal: %)
---R relationsIdeal : List DPoly -> SuchThat(List Polynomial F,List Equation Polynomial F) if VarSet has KONVERT SYMBOL
---R saturate : (%,DPoly,List VarSet) -> %
---R zeroDim? : (%,List VarSet) -> Boolean
+--R backOldPos : Record(mval: Matrix(F),invmval: Matrix(F),genIdeal: %) -> %
+--R dimension : (%,List(VarSet)) -> Integer
+--R generalPosition : (%,List(VarSet)) -> Record(mval: Matrix(F),invmval: Matrix(F),genIdeal: %)
+--R relationsIdeal : List(DPoly) -> SuchThat(List(Polynomial(F)),List(Equation(Polynomial(F)))) if VarSet has KONVERT(SYMBOL)
+--R saturate : (%,DPoly,List(VarSet)) -> %
+--R zeroDim? : (%,List(VarSet)) -> Boolean
 --R
 --E 1
 
@@ -101098,6 +101338,7 @@ PolynomialIdeals(F,Expon,VarSet,DPoly) : C == T
 
 --S 1 of 1
 )show PolynomialRing
+--R 
 --R PolynomialRing(R: Ring,E: OrderedAbelianMonoid)  is a domain constructor
 --R Abbreviation for PolynomialRing is PR 
 --R This constructor is not exposed in this frame.
@@ -101111,7 +101352,7 @@ PolynomialIdeals(F,Expon,VarSet,DPoly) : C == T
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coefficient : (%,E) -> R
---R coefficients : % -> List R            coerce : R -> %
+--R coefficients : % -> List(R)           coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> E                       ground : % -> R
 --R ground? : % -> Boolean                hash : % -> SingleInteger
@@ -101123,8 +101364,8 @@ PolynomialIdeals(F,Expon,VarSet,DPoly) : C == T
 --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 ?*? : (%,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
@@ -101133,7 +101374,7 @@ PolynomialIdeals(F,Expon,VarSet,DPoly) : C == T
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---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 : % -> % if R has INTDOM
 --R content : % -> R if R has GCDDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
@@ -101141,11 +101382,11 @@ PolynomialIdeals(F,Expon,VarSet,DPoly) : C == T
 --R fmecg : (%,E,R,%) -> % if E has CABMON and R has INTDOM
 --R numberOfMonomials : % -> NonNegativeInteger
 --R primitivePart : % -> % if R has GCDDOM
---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 subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
@@ -101660,13 +101901,14 @@ PositiveInteger: Join(AbelianSemiGroup,OrderedSet,Monoid) with
 
 --S 1 of 1
 )show PrimeField
---R PrimeField p: PositiveInteger  is a domain constructor
+--R 
+--R PrimeField(p: PositiveInteger)  is a domain constructor
 --R Abbreviation for PrimeField is PF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PF 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -101676,27 +101918,27 @@ PositiveInteger: Join(AbelianSemiGroup,OrderedSet,Monoid) with
 --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
@@ -101705,42 +101947,42 @@ PositiveInteger: Join(AbelianSemiGroup,OrderedSet,Monoid) with
 --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")
@@ -101906,20 +102148,21 @@ PrimeField(p:PositiveInteger): Exp == Impl where
 
 --S 1 of 1
 )show PrimitiveArray
---R PrimitiveArray S: Type  is a domain constructor
+--R 
+--R PrimitiveArray(S: Type)  is a domain constructor
 --R Abbreviation for PrimitiveArray is PRIMARR 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PRIMARR 
 --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 : % -> %
@@ -101932,17 +102175,17 @@ PrimeField(p:PositiveInteger): Exp == Impl 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")
@@ -101954,13 +102197,13 @@ PrimeField(p:PositiveInteger): Exp == Impl 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
@@ -101973,7 +102216,7 @@ PrimeField(p:PositiveInteger): Exp == Impl 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
@@ -102367,28 +102610,29 @@ Product (A:SetCategory,B:SetCategory) : C == T
 
 --S 1 of 1
 )show ProjectivePlane
---R ProjectivePlane K: Field  is a domain constructor
+--R 
+--R ProjectivePlane(K: Field)  is a domain constructor
 --R Abbreviation for ProjectivePlane is PROJPL 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PROJPL 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                coerce : List K -> %
---R coerce : % -> List K                  coerce : % -> OutputForm
+--R ?=? : (%,%) -> Boolean                coerce : List(K) -> %
+--R coerce : % -> List(K)                 coerce : % -> OutputForm
 --R conjugate : % -> %                    definingField : % -> K
 --R degree : % -> PositiveInteger         ?.? : (%,Integer) -> K
 --R hash : % -> SingleInteger             homogenize : % -> %
 --R homogenize : (%,Integer) -> %         lastNonNul : % -> Integer
 --R lastNonNull : % -> Integer            latex : % -> String
---R list : % -> List K                    orbit : % -> List %
---R pointValue : % -> List K              projectivePoint : List K -> %
+--R list : % -> List(K)                   orbit : % -> List(%)
+--R pointValue : % -> List(K)             projectivePoint : List(K) -> %
 --R rational? : % -> Boolean              setelt : (%,Integer,K) -> K
 --R ?~=? : (%,%) -> 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
 
@@ -102465,7 +102709,8 @@ ProjectivePlane(K):Exports == Implementation where
 
 --S 1 of 1
 )show ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField
---R ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField K: FiniteFieldCategory  is a domain constructor
+--R 
+--R ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField(K: FiniteFieldCategory)  is a domain constructor
 --R Abbreviation for ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField is PROJPLPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PROJPLPS 
@@ -102476,21 +102721,21 @@ ProjectivePlane(K):Exports == Implementation where
 --R hash : % -> SingleInteger             homogenize : % -> %
 --R homogenize : (%,Integer) -> %         lastNonNul : % -> Integer
 --R lastNonNull : % -> Integer            latex : % -> String
---R orbit : % -> List %                   rational? : % -> Boolean
+--R orbit : % -> List(%)                  rational? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R coerce : List PseudoAlgebraicClosureOfFiniteField K -> %
---R coerce : % -> 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 projectivePoint : 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 projectivePoint : 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
 
@@ -102569,28 +102814,29 @@ ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField(K):Exp == Impl where
 
 --S 1 of 1
 )show ProjectiveSpace
+--R 
 --R ProjectiveSpace(dim: NonNegativeInteger,K: Field)  is a domain constructor
 --R Abbreviation for ProjectiveSpace is PROJSP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PROJSP 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                coerce : List K -> %
---R coerce : % -> List K                  coerce : % -> OutputForm
+--R ?=? : (%,%) -> Boolean                coerce : List(K) -> %
+--R coerce : % -> List(K)                 coerce : % -> OutputForm
 --R conjugate : % -> %                    definingField : % -> K
 --R degree : % -> PositiveInteger         ?.? : (%,Integer) -> K
 --R hash : % -> SingleInteger             homogenize : % -> %
 --R homogenize : (%,Integer) -> %         lastNonNul : % -> Integer
 --R lastNonNull : % -> Integer            latex : % -> String
---R list : % -> List K                    orbit : % -> List %
---R pointValue : % -> List K              projectivePoint : List K -> %
+--R list : % -> List(K)                   orbit : % -> List(%)
+--R pointValue : % -> List(K)             projectivePoint : List(K) -> %
 --R rational? : % -> Boolean              setelt : (%,Integer,K) -> K
 --R ?~=? : (%,%) -> 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
 
@@ -103121,14 +103367,15 @@ PseudoAlgebraicClosureOfAlgExtOfRationalNumber(downLevel:K):Exp == Impl where
 
 --S 1 of 1
 )show PseudoAlgebraicClosureOfFiniteField
---R PseudoAlgebraicClosureOfFiniteField K: FiniteFieldCategory  is a domain constructor
+--R 
+--R PseudoAlgebraicClosureOfFiniteField(K: FiniteFieldCategory)  is a domain constructor
 --R Abbreviation for PseudoAlgebraicClosureOfFiniteField is PACOFF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PACOFF 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,K) -> %                      ?*? : (K,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -103139,19 +103386,19 @@ PseudoAlgebraicClosureOfAlgExtOfRationalNumber(downLevel:K):Exp == Impl where
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
 --R associates? : (%,%) -> Boolean        charthRoot : % -> %
---R coerce : K -> %                       coerce : Fraction Integer -> %
+--R coerce : K -> %                       coerce : Fraction(Integer) -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              conjugate : % -> %
 --R createPrimitiveElement : () -> %      differentiate : % -> %
 --R dimension : () -> CardinalNumber      extDegree : % -> PositiveInteger
---R factor : % -> Factored %              fullOutput : % -> OutputForm
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R factor : % -> Factored(%)             fullOutput : % -> OutputForm
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R ground? : % -> Boolean                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 maxTower : List % -> %                one? : % -> Boolean
+--R maxTower : List(%) -> %               one? : % -> Boolean
 --R order : % -> PositiveInteger          previousTower : % -> %
 --R prime? : % -> Boolean                 primeFrobenius : % -> %
 --R primitive? : % -> Boolean             primitiveElement : () -> %
@@ -103159,10 +103406,10 @@ PseudoAlgebraicClosureOfAlgExtOfRationalNumber(downLevel:K):Exp == Impl where
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R retract : % -> K                      sample : () -> %
 --R setTower! : % -> Void                 size : () -> NonNegativeInteger
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
---R vectorise : (%,%) -> Vector %         zero? : % -> Boolean
+--R vectorise : (%,%) -> Vector(%)        zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
@@ -103171,33 +103418,33 @@ PseudoAlgebraicClosureOfAlgExtOfRationalNumber(downLevel:K):Exp == Impl where
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed")
---R conditionP : Matrix % -> Union(Vector %,"failed")
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R definingPolynomial : % -> SparseUnivariatePolynomial %
---R degree : % -> OnePointCompletion PositiveInteger
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed")
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--R definingPolynomial : % -> SparseUnivariatePolynomial(%)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> %
 --R discreteLog : % -> NonNegativeInteger
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed")
---R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List %
+--R distinguishedRootsOf : (SparseUnivariatePolynomial(%),%) -> List(%)
 --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 factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R lift : % -> SparseUnivariatePolynomial %
---R lift : (%,%) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R newElement : (SparseUnivariatePolynomial %,%,Symbol) -> %
---R newElement : (SparseUnivariatePolynomial %,Symbol) -> %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer))
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R lift : % -> SparseUnivariatePolynomial(%)
+--R lift : (%,%) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R newElement : (SparseUnivariatePolynomial(%),%,Symbol) -> %
+--R newElement : (SparseUnivariatePolynomial(%),Symbol) -> %
 --R nextItem : % -> Union(%,"failed")
---R order : % -> OnePointCompletion PositiveInteger
+--R order : % -> OnePointCompletion(PositiveInteger)
 --R primeFrobenius : (%,NonNegativeInteger) -> %
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reduce : SparseUnivariatePolynomial % -> %
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reduce : SparseUnivariatePolynomial(%) -> %
 --R representationType : () -> Union("prime",polynomial,normal,cyclic)
 --R retractIfCan : % -> Union(K,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -103660,77 +103907,78 @@ PseudoAlgebraicClosureOfFiniteField(K):Exports == Implementation where
 
 --S 1 of 1
 )show PseudoAlgebraicClosureOfRationalNumber
+--R 
 --R PseudoAlgebraicClosureOfRationalNumber  is a domain constructor
 --R Abbreviation for PseudoAlgebraicClosureOfRationalNumber is PACRAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for PACRAT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (%,Fraction Integer) -> %       ?*? : (Fraction Integer,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (%,Fraction(Integer)) -> %      ?*? : (Fraction(Integer),%) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
---R ?/? : (%,Fraction Integer) -> %       ?/? : (%,%) -> %
+--R ?/? : (%,Fraction(Integer)) -> %      ?/? : (%,%) -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
---R associates? : (%,%) -> Boolean        coerce : Fraction Integer -> %
---R coerce : Fraction Integer -> %        coerce : Integer -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R associates? : (%,%) -> Boolean        coerce : Fraction(Integer) -> %
+--R coerce : Fraction(Integer) -> %       coerce : Integer -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R conjugate : % -> %                    dimension : () -> CardinalNumber
---R extDegree : % -> PositiveInteger      factor : % -> Factored %
---R fullOutput : % -> OutputForm          gcd : List % -> %
+--R extDegree : % -> PositiveInteger      factor : % -> Factored(%)
+--R fullOutput : % -> OutputForm          gcd : List(%) -> %
 --R gcd : (%,%) -> %                      ground? : % -> Boolean
 --R hash : % -> SingleInteger             inGroundField? : % -> Boolean
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R maxTower : List % -> %                one? : % -> Boolean
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R maxTower : List(%) -> %               one? : % -> Boolean
 --R previousTower : % -> %                prime? : % -> Boolean
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
---R ?rem? : (%,%) -> %                    retract : % -> Fraction Integer
---R retract : % -> Fraction Integer       retract : % -> Integer
+--R ?rem? : (%,%) -> %                    retract : % -> Fraction(Integer)
+--R retract : % -> Fraction(Integer)      retract : % -> Integer
 --R sample : () -> %                      setTower! : % -> Void
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
---R vectorise : (%,%) -> Vector %         zero? : % -> Boolean
+--R vectorise : (%,%) -> Vector(%)        zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R Frobenius : % -> % if Fraction Integer has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if Fraction Integer has FINITE
+--R Frobenius : % -> % if Fraction(Integer) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if Fraction(Integer) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R definingPolynomial : % -> SparseUnivariatePolynomial %
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R degree : % -> OnePointCompletion PositiveInteger
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List %
+--R charthRoot : % -> Union(%,"failed") if Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R definingPolynomial : % -> SparseUnivariatePolynomial(%)
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R distinguishedRootsOf : (SparseUnivariatePolynomial(%),%) -> List(%)
 --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 gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R lift : (%,%) -> SparseUnivariatePolynomial %
---R lift : % -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R newElement : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %,PositiveInteger,%,Symbol) -> %
---R newElement : (SparseUnivariatePolynomial %,Symbol) -> %
---R newElement : (SparseUnivariatePolynomial %,%,Symbol) -> %
---R order : % -> OnePointCompletion PositiveInteger if Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R primeFrobenius : % -> % if Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reduce : SparseUnivariatePolynomial % -> %
---R retractIfCan : % -> Union(Fraction Integer,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R lift : (%,%) -> SparseUnivariatePolynomial(%)
+--R lift : % -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R newElement : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%),PositiveInteger,%,Symbol) -> %
+--R newElement : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R newElement : (SparseUnivariatePolynomial(%),%,Symbol) -> %
+--R order : % -> OnePointCompletion(PositiveInteger) if Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R primeFrobenius : % -> % if Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reduce : SparseUnivariatePolynomial(%) -> %
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R transcendenceDegree : () -> NonNegativeInteger
@@ -104255,6 +104503,7 @@ QuadraticForm(n, K): T == Impl where
 
 --S 1 of 1
 )show QuasiAlgebraicSet
+--R 
 --R QuasiAlgebraicSet(R: GcdDomain,Var: OrderedSet,Expon: OrderedAbelianMonoidSup,Dpoly: PolynomialCategory(R,Expon,Var))  is a domain constructor
 --R Abbreviation for QuasiAlgebraicSet is QALGSET 
 --R This constructor is not exposed in this frame.
@@ -104266,8 +104515,8 @@ QuadraticForm(n, K): T == Impl where
 --R empty? : % -> Boolean                 hash : % -> SingleInteger
 --R idealSimplify : % -> %                latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R definingEquations : % -> List Dpoly
---R quasiAlgebraicSet : (List Dpoly,Dpoly) -> %
+--R definingEquations : % -> List(Dpoly)
+--R quasiAlgebraicSet : (List(Dpoly),Dpoly) -> %
 --R setStatus : (%,Union(Boolean,"failed")) -> %
 --R simplify : % -> % if R has CHARZ and R has EUCDOM
 --R status : % -> Union(Boolean,"failed")
@@ -104517,7 +104766,7 @@ q := quatern(2/11,-8,3/4,1)
 --R         2        3
 --R   (1)  -- - 8i + - j + k
 --R        11        4
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 1
 
 --S 2 of 13
@@ -104527,7 +104776,7 @@ q := quatern(2/11,-8,3/4,1)
 --R          2     3
 --R   (2)  [--,- 8,-,1]
 --R         11     4
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 2
 
 --S 3 of 13
@@ -104537,7 +104786,7 @@ inv q
 --R          352     15488      484       1936
 --R   (3)  ------ + ------ i - ----- j - ------ k
 --R        126993   126993     42331     126993
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 3
 
 --S 4 of 13
@@ -104547,7 +104796,7 @@ q^6
 --R          2029490709319345   48251690851     144755072553     48251690851
 --R   (4)  - ---------------- - ----------- i + ------------ j + ----------- k
 --R             7256313856        1288408         41229056         10307264
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 4
 
 --S 5 of 13
@@ -104557,7 +104806,7 @@ r := quatern(-2,3,23/9,-89); q + r
 --R          20        119
 --R   (5)  - -- - 5i + --- j - 88k
 --R          11         36
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 5
 
 --S 6 of 13
@@ -104567,7 +104816,7 @@ q * r - r * q
 --R          2495             817
 --R   (6)  - ---- i - 1418j - --- k
 --R           18               18
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 6
 
 --S 7 of 13
@@ -104575,7 +104824,7 @@ i:=quatern(0,1,0,0)
 --R 
 --R
 --R   (7)  i
---R                                                     Type: Quaternion Integer
+--R                                                    Type: Quaternion(Integer)
 --E 7
 
 --S 8 of 13
@@ -104583,7 +104832,7 @@ j:=quatern(0,0,1,0)
 --R 
 --R
 --R   (8)  j
---R                                                     Type: Quaternion Integer
+--R                                                    Type: Quaternion(Integer)
 --E 8
 
 --S 9 of 13
@@ -104591,7 +104840,7 @@ k:=quatern(0,0,0,1)
 --R 
 --R
 --R   (9)  k
---R                                                     Type: Quaternion Integer
+--R                                                    Type: Quaternion(Integer)
 --E 9
 
 --S 10 of 13
@@ -104601,7 +104850,7 @@ k:=quatern(0,0,0,1)
 --R                                 2         3
 --R   (10)  [- 1,- 1,- 1,k,i,j,8 + -- i + j - - k]
 --R                                11         4
---R                                       Type: List Quaternion Fraction Integer
+--R                                    Type: List(Quaternion(Fraction(Integer)))
 --E 10
 
 --S 11 of 13
@@ -104611,7 +104860,7 @@ norm q
 --R         126993
 --R   (11)  ------
 --R          1936
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 13
@@ -104621,7 +104870,7 @@ conjugate q
 --R          2        3
 --R   (12)  -- + 8i - - j - k
 --R         11        4
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 12
 
 --S 13 of 13
@@ -104631,7 +104880,7 @@ q * %
 --R         126993
 --R   (13)  ------
 --R          1936
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 13
 )spool
 )lisp (bye)
@@ -104939,7 +105188,7 @@ a:Queue INT:= queue [1,2,3,4,5]
 --R 
 --R
 --R   (1)  [1,2,3,4,5]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 1
 
 --S 2 of 46
@@ -104955,7 +105204,7 @@ a
 --R 
 --R
 --R   (3)  [2,3,4,5]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 3
 
 --S 4 of 46
@@ -104971,7 +105220,7 @@ a
 --R 
 --R
 --R   (5)  [3,4,5]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 5
 
 --S 6 of 46
@@ -104987,7 +105236,7 @@ a
 --R 
 --R
 --R   (7)  [3,4,5,9]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 7
 
 --S 8 of 46
@@ -104995,7 +105244,7 @@ insert!(8,a)
 --R 
 --R
 --R   (8)  [3,4,5,9,8]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 8
 
 --S 9 of 46
@@ -105003,7 +105252,7 @@ a
 --R 
 --R
 --R   (9)  [3,4,5,9,8]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 9
 
 --S 10 of 46
@@ -105043,7 +105292,7 @@ rotate! a
 --R 
 --R
 --R   (14)  [4,5,9,8,3]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 14
 
 --S 15 of 46
@@ -105099,7 +105348,7 @@ parts a
 --R 
 --R
 --R   (21)  [4,5,9,8,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 21
 
 --S 22 of 46
@@ -105107,7 +105356,7 @@ bag([1,2,3,4,5])$Queue(INT)
 --R 
 --R
 --R   (22)  [1,2,3,4,5]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 22
 
 --S 23 of 46
@@ -105115,7 +105364,7 @@ b:=empty()$(Queue INT)
 --R 
 --R
 --R   (23)  []
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 23
 
 --S 24 of 46
@@ -105131,7 +105380,7 @@ sample()$Queue(INT)
 --R 
 --R
 --R   (25)  []
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 25
 
 --S 26 of 46
@@ -105139,7 +105388,7 @@ c:=copy a
 --R 
 --R
 --R   (26)  [4,5,9,8,3]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 26
 
 --S 27 of 46
@@ -105227,7 +105476,7 @@ map(x+->x+10,a)
 --R 
 --R
 --R   (37)  [14,15,19,18,13]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 37
 
 --S 38 of 46
@@ -105235,7 +105484,7 @@ a
 --R 
 --R
 --R   (38)  [4,5,9,8,3]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 38
 
 --S 39 of 46
@@ -105243,7 +105492,7 @@ map!(x+->x+10,a)
 --R 
 --R
 --R   (39)  [14,15,19,18,13]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 39
 
 --S 40 of 46
@@ -105251,7 +105500,7 @@ a
 --R 
 --R
 --R   (40)  [14,15,19,18,13]
---R                                                          Type: Queue Integer
+--R                                                         Type: Queue(Integer)
 --E 40
 
 --S 41 of 46
@@ -105259,7 +105508,7 @@ members a
 --R 
 --R
 --R   (41)  [14,15,19,18,13]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 41
 
 --S 42 of 46
@@ -105297,20 +105546,20 @@ latex a
 --S 46 of 46
 )show Queue
 --R 
---R Queue S: SetCategory  is a domain constructor
+--R Queue(S: SetCategory)  is a domain constructor
 --R Abbreviation for Queue is QUEUE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for QUEUE 
 --R
 --R------------------------------- Operations --------------------------------
---R back : % -> S                         bag : List S -> %
+--R back : % -> S                         bag : List(S) -> %
 --R copy : % -> %                         dequeue! : % -> S
 --R empty : () -> %                       empty? : % -> Boolean
 --R enqueue! : (S,%) -> S                 eq? : (%,%) -> Boolean
 --R extract! : % -> S                     front : % -> S
 --R insert! : (S,%) -> %                  inspect : % -> S
 --R length : % -> NonNegativeInteger      map : ((S -> S),%) -> %
---R queue : List S -> %                   rotate! : % -> %
+--R queue : List(S) -> %                  rotate! : % -> %
 --R sample : () -> %                     
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -105318,19 +105567,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
@@ -105840,160 +106089,162 @@ Queue(S:SetCategory): QueueAggregate S with
 
 --S 1 of 1
 )show RadicalFunctionField
---R RadicalFunctionField(F: UniqueFactorizationDomain,UP: UnivariatePolynomialCategory F,UPUP: UnivariatePolynomialCategory Fraction UP,radicnd: Fraction UP,n: NonNegativeInteger)  is a domain constructor
+--R 
+--R RadicalFunctionField(F: UniqueFactorizationDomain,UP: UnivariatePolynomialCategory(F),UPUP: UnivariatePolynomialCategory(Fraction(UP)),radicnd: Fraction(UP),n: NonNegativeInteger)  is a domain constructor
 --R Abbreviation for RadicalFunctionField is RADFF 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RADFF 
 --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 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 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 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
 
@@ -106355,7 +106606,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R 
 --R
 --R   (1)  421
---R                                                       Type: RadixExpansion 5
+--R                                                      Type: RadixExpansion(5)
 --E 1
 
 --S 2 of 17
@@ -106364,7 +106615,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R             __
 --R   (2)  0.00110
---R                                                       Type: RadixExpansion 2
+--R                                                      Type: RadixExpansion(2)
 --E 2
 
 --S 3 of 17
@@ -106373,7 +106624,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R           __
 --R   (3)  0.012
---R                                                       Type: RadixExpansion 3
+--R                                                      Type: RadixExpansion(3)
 --E 3
 
 --S 4 of 17
@@ -106382,7 +106633,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R           __
 --R   (4)  0.152
---R                                                       Type: RadixExpansion 8
+--R                                                      Type: RadixExpansion(8)
 --E 4
 
 --S 5 of 17
@@ -106391,7 +106642,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R             _
 --R   (5)  0.2083
---R                                                      Type: RadixExpansion 10
+--R                                                     Type: RadixExpansion(10)
 --E 5
 
 --S 6 of 17
@@ -106399,7 +106650,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R 
 --R
 --R   (6)  0.26
---R                                                      Type: RadixExpansion 12
+--R                                                     Type: RadixExpansion(12)
 --E 6
 
 --S 7 of 17
@@ -106408,7 +106659,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R           _
 --R   (7)  0.35
---R                                                      Type: RadixExpansion 16
+--R                                                     Type: RadixExpansion(16)
 --E 7
 
 --S 8 of 17
@@ -106416,7 +106667,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R 
 --R
 --R   (8)  0.7I
---R                                                      Type: RadixExpansion 36
+--R                                                     Type: RadixExpansion(36)
 --E 8
 
 --S 9 of 17
@@ -106425,7 +106676,7 @@ RadicalFunctionField(F, UP, UPUP, radicnd, n): Exports == Impl where
 --R
 --R                    _____
 --R   (9)  0 . 7 34 31 25 12
---R                                                      Type: RadixExpansion 38
+--R                                                     Type: RadixExpansion(38)
 --E 9
 
 --S 10 of 17
@@ -106434,7 +106685,7 @@ a := (76543/210)::RadixExpansion(8)
 --R
 --R              ____
 --R   (10)  554.37307
---R                                                       Type: RadixExpansion 8
+--R                                                      Type: RadixExpansion(8)
 --E 10
 
 --S 11 of 17
@@ -106442,7 +106693,7 @@ w := wholeRagits a
 --R 
 --R
 --R   (11)  [5,5,4]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 11
 
 --S 12 of 17
@@ -106450,7 +106701,7 @@ f0 := prefixRagits a
 --R 
 --R
 --R   (12)  [3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 12
 
 --S 13 of 17
@@ -106458,7 +106709,7 @@ f1 := cycleRagits a
 --R 
 --R
 --R   (13)  [7,3,0,7]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 13
 
 --S 14 of 17
@@ -106467,7 +106718,7 @@ u:RadixExpansion(8):=wholeRadix(w)+fractRadix(f0,f1)
 --R
 --R              ____
 --R   (14)  554.37307
---R                                                       Type: RadixExpansion 8
+--R                                                      Type: RadixExpansion(8)
 --E 14
 
 --S 15 of 17
@@ -106476,7 +106727,7 @@ v: RadixExpansion(12) := fractRadix([1,2,3,11], [0])
 --R
 --R               _
 --R   (15)  0.123B0
---R                                                      Type: RadixExpansion 12
+--R                                                     Type: RadixExpansion(12)
 --E 15
 
 --S 16 of 17
@@ -106485,7 +106736,7 @@ fractRagits(u)
 --R
 --R              _______
 --R   (16)  [3,7,3,0,7,7]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 16
 
 --S 17 of 17
@@ -106495,7 +106746,7 @@ a :: Fraction(Integer)
 --R         76543
 --R   (17)  -----
 --R          210
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 17
 )spool
 )lisp (bye)
@@ -107025,30 +107276,31 @@ depending on several "real roots".
 Ran := RECLOS(FRAC INT)
 --R 
 --R
---R   (1)  RealClosure Fraction Integer
+--R   (1)  RealClosure(Fraction(Integer))
 --R                                                                 Type: Domain
 --E 1
 
 --S 2 of 67
 fourSquares(a:Ran,b:Ran,c:Ran,d:Ran):Ran==sqrt(a)+sqrt(b)-sqrt(c)-sqrt(d)
 --R 
---R   Function declaration fourSquares : (RealClosure Fraction Integer,
---R      RealClosure Fraction Integer,RealClosure Fraction Integer,
---R      RealClosure Fraction Integer) -> RealClosure Fraction Integer has
---R      been added to workspace.
+--R   Function declaration fourSquares : (RealClosure(Fraction(Integer)),
+--R      RealClosure(Fraction(Integer)),RealClosure(Fraction(Integer)),
+--R      RealClosure(Fraction(Integer))) -> RealClosure(Fraction(Integer))
+--R      has been added to workspace.
 --R                                                                   Type: Void
 --E 2
 
 --S 3 of 67
 squareDiff1 := fourSquares(73,548,60,586)
 --R 
---R   Compiling function fourSquares with type (RealClosure Fraction 
---R      Integer,RealClosure Fraction Integer,RealClosure Fraction Integer
---R      ,RealClosure Fraction Integer) -> RealClosure Fraction Integer 
+--R   Compiling function fourSquares with type (RealClosure(Fraction(
+--R      Integer)),RealClosure(Fraction(Integer)),RealClosure(Fraction(
+--R      Integer)),RealClosure(Fraction(Integer))) -> RealClosure(Fraction
+--R      (Integer)) 
 --R
 --R           +---+    +--+    +---+    +--+
 --R   (3)  - \|586  - \|60  + \|548  + \|73
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 3
 
 --S 4 of 67
@@ -107061,7 +107313,7 @@ recip(squareDiff1)
 --R   + 
 --R             +--+ +---+             +--+            +---+            +--+
 --R     (154702\|73 \|548  + 30941947)\|60  + 10238421\|548  + 28051871\|73
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 4
 
 --S 5 of 67
@@ -107078,7 +107330,7 @@ squareDiff2 := fourSquares(165,778,86,990)
 --R
 --R           +---+    +--+    +---+    +---+
 --R   (6)  - \|990  - \|86  + \|778  + \|165
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 6
 
 --S 7 of 67
@@ -107094,7 +107346,7 @@ recip(squareDiff2)
 --R   + 
 --R              +---+ +---+              +--+             +---+             +---+
 --R     (1363822\|165 \|778  + 488640503)\|86  + 162460913\|778  + 352774119\|165
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 7
 
 --S 8 of 67
@@ -107111,7 +107363,7 @@ squareDiff3 := fourSquares(217,708,226,692)
 --R
 --R           +---+    +---+    +---+    +---+
 --R   (9)  - \|692  - \|226  + \|708  + \|217
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 9
 
 --S 10 of 67
@@ -107124,7 +107376,7 @@ recip(squareDiff3)
 --R   + 
 --R              +---+ +---+             +---+            +---+            +---+
 --R     (- 60898\|217 \|708  - 23869841)\|226  - 13486123\|708  - 24359809\|217
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 10
 
 --S 11 of 67
@@ -107141,7 +107393,7 @@ squareDiff4 := fourSquares(155,836,162,820)
 --R
 --R            +---+    +---+    +---+    +---+
 --R   (12)  - \|820  - \|162  + \|836  + \|155
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 12
 
 --S 13 of 67
@@ -107154,7 +107406,7 @@ recip(squareDiff4)
 --R   + 
 --R              +---+ +---+             +---+            +---+            +---+
 --R     (- 85282\|155 \|836  - 30699151)\|162  - 13513901\|836  - 31384703\|155
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 13
 
 --S 14 of 67
@@ -107171,7 +107423,7 @@ squareDiff5 := fourSquares(591,772,552,818)
 --R
 --R            +---+    +---+    +---+    +---+
 --R   (15)  - \|818  - \|552  + \|772  + \|591
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 15
 
 --S 16 of 67
@@ -107184,7 +107436,7 @@ recip(squareDiff5)
 --R   + 
 --R            +---+ +---+             +---+            +---+            +---+
 --R     (83438\|591 \|772  + 56359389)\|552  + 47657051\|772  + 54468081\|591
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 16
 
 --S 17 of 67
@@ -107201,7 +107453,7 @@ squareDiff6 := fourSquares(434,1053,412,1088)
 --R
 --R            +----+    +---+    +----+    +---+
 --R   (18)  - \|1088  - \|412  + \|1053  + \|434
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 18
 
 --S 19 of 67
@@ -107217,7 +107469,7 @@ recip(squareDiff6)
 --R   + 
 --R           +---+ +----+              +---+            +----+             +---+
 --R   (182782\|434 \|1053  + 123564147)\|412  + 77290639\|1053  + 120391609\|434
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 19
 
 --S 20 of 67
@@ -107234,7 +107486,7 @@ squareDiff7 := fourSquares(514,1049,446,1152)
 --R
 --R            +----+    +---+    +----+    +---+
 --R   (21)  - \|1152  - \|446  + \|1049  + \|514
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 21
 
 --S 22 of 67
@@ -107250,7 +107502,7 @@ recip(squareDiff7)
 --R   + 
 --R           +---+ +----+              +---+             +----+             +---+
 --R   (523262\|514 \|1049  + 384227549)\|446  + 250534873\|1049  + 357910443\|514
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 22
 
 --S 23 of 67
@@ -107267,7 +107519,7 @@ squareDiff8 := fourSquares(190,1751,208,1698)
 --R
 --R            +----+    +---+    +----+    +---+
 --R   (24)  - \|1698  - \|208  + \|1751  + \|190
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 24
 
 --S 25 of 67
@@ -107288,7 +107540,7 @@ recip(squareDiff8)
 --R   + 
 --R                 +---+
 --R     - 387349387\|190
---R                                Type: Union(RealClosure Fraction Integer,...)
+--R                              Type: Union(RealClosure(Fraction(Integer)),...)
 --E 25
 
 --S 26 of 67
@@ -107312,7 +107564,7 @@ l := allRootsOf((x**2-2)**2-2)$Ran
 --R 
 --R
 --R   (28)  [%A33,%A34,%A35,%A36]
---R                                      Type: List RealClosure Fraction Integer
+--R                                   Type: List(RealClosure(Fraction(Integer)))
 --E 28
 
 --S 29 of 67
@@ -107321,7 +107573,7 @@ removeDuplicates map(mainDefiningPolynomial,l)
 --R
 --R           4     2
 --R   (29)  [?  - 4?  + 2]
---RType: List Union(SparseUnivariatePolynomial RealClosure Fraction Integer,"failed")
+--RType: List(Union(SparseUnivariatePolynomial(RealClosure(Fraction(Integer))),"failed"))
 --E 29
 
 --S 30 of 67
@@ -107329,7 +107581,7 @@ map(mainCharacterization,l)
 --R 
 --R
 --R   (30)  [[- 2,- 1[,[- 1,0[,[0,1[,[1,2[]
---RType: List Union(RightOpenIntervalRootCharacterization(RealClosure Fraction Integer,SparseUnivariatePolynomial RealClosure Fraction Integer),"failed")
+--IType: List(Union(RightOpenIntervalRootCharacterization(...
 --E 30
 
 --S 31 of 67
@@ -107337,7 +107589,7 @@ map(mainCharacterization,l)
 --R 
 --R
 --R   (31)  [0,0]
---R                                      Type: List RealClosure Fraction Integer
+--R                                   Type: List(RealClosure(Fraction(Integer)))
 --E 31
 
 --S 32 of 67
@@ -107346,7 +107598,7 @@ map(mainCharacterization,l)
 --R
 --R          +--+
 --R   (32)  \|10
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 32
 
 --S 33 of 67
@@ -107356,7 +107608,7 @@ eq1:=sqrt(s10+3)*sqrt(s5+2) - sqrt(s10-3)*sqrt(s5-2) = sqrt(10*s2+10)
 --R            +---------+ +--------+    +---------+ +--------+   +-----------+
 --R            | +--+      | +-+         | +--+      | +-+        |   +-+
 --R   (33)  - \|\|10  - 3 \|\|5  - 2  + \|\|10  + 3 \|\|5  + 2 = \|10\|2  + 10
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 33
 
 --S 34 of 67
@@ -107374,7 +107626,7 @@ eq2:=sqrt(s5+2)*sqrt(s2+1) - sqrt(s5-2)*sqrt(s2-1) = sqrt(2*s10+2)
 --R            +--------+ +--------+    +--------+ +--------+   +----------+
 --R            | +-+      | +-+         | +-+      | +-+        |  +--+
 --R   (35)  - \|\|5  - 2 \|\|2  - 1  + \|\|5  + 2 \|\|2  + 1 = \|2\|10  + 2
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 35
 
 --S 36 of 67
@@ -107391,7 +107643,7 @@ s3 := sqrt(3)$Ran
 --R
 --R          +-+
 --R   (37)  \|3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 37
 
 --S 38 of 67
@@ -107400,7 +107652,7 @@ s7:= sqrt(7)$Ran
 --R
 --R          +-+
 --R   (38)  \|7
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 38
 
 --S 39 of 67
@@ -107410,7 +107662,7 @@ e1 := sqrt(2*s7-3*s3,3)
 --R          +-------------+
 --R         3|  +-+     +-+
 --R   (39)  \|2\|7  - 3\|3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 39
 
 --S 40 of 67
@@ -107420,7 +107672,7 @@ e2 := sqrt(2*s7+3*s3,3)
 --R          +-------------+
 --R         3|  +-+     +-+
 --R   (40)  \|2\|7  + 3\|3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 40
 
 --S 41 of 67
@@ -107428,7 +107680,7 @@ e2-e1-s3
 --R 
 --R
 --R   (41)  0
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 41
 
 --S 42 of 67
@@ -107438,7 +107690,7 @@ pol : UP(x,Ran) := x**4+(7/3)*x**2+30*x-(100/3)
 --R          4   7  2         100
 --R   (42)  x  + - x  + 30x - ---
 --R              3             3
---R                   Type: UnivariatePolynomial(x,RealClosure Fraction Integer)
+--R                 Type: UnivariatePolynomial(x,RealClosure(Fraction(Integer)))
 --E 42
 
 --S 43 of 67
@@ -107447,7 +107699,7 @@ r1 := sqrt(7633)$Ran
 --R
 --R          +----+
 --R   (43)  \|7633
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 43
 
 --S 44 of 67
@@ -107458,7 +107710,7 @@ alpha := sqrt(5*r1-436,3)/3
 --R         1 3|  +----+
 --R   (44)  - \|5\|7633  - 436
 --R         3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 44
 
 --S 45 of 67
@@ -107469,7 +107721,7 @@ beta := -sqrt(5*r1+436,3)/3
 --R           1 3|  +----+
 --R   (45)  - - \|5\|7633  + 436
 --R           3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 45
 
 --S 46 of 67
@@ -107477,7 +107729,7 @@ pol.(alpha+beta-1/3)
 --R 
 --R
 --R   (46)  0
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 46
 
 --S 47 of 67
@@ -107486,7 +107738,7 @@ qol : UP(x,Ran) := x**5+10*x**3+20*x+22
 --R
 --R          5      3
 --R   (47)  x  + 10x  + 20x + 22
---R                   Type: UnivariatePolynomial(x,RealClosure Fraction Integer)
+--R                 Type: UnivariatePolynomial(x,RealClosure(Fraction(Integer)))
 --E 47
 
 --S 48 of 67
@@ -107495,7 +107747,7 @@ r2 := sqrt(153)$Ran
 --R
 --R          +---+
 --R   (48)  \|153
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 48
 
 --S 49 of 67
@@ -107505,7 +107757,7 @@ alpha2 := sqrt(r2-11,5)
 --R          +-----------+
 --R         5| +---+
 --R   (49)  \|\|153  - 11
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 49
 
 --S 50 of 67
@@ -107515,7 +107767,7 @@ beta2 := -sqrt(r2+11,5)
 --R            +-----------+
 --R           5| +---+
 --R   (50)  - \|\|153  + 11
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 50
 
 --S 51 of 67
@@ -107523,7 +107775,7 @@ qol(alpha2+beta2)
 --R 
 --R
 --R   (51)  0
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 51
 
 --S 52 of 67
@@ -107533,7 +107785,7 @@ dst1:=sqrt(9+4*s2)=1+2*s2
 --R          +---------+
 --R          |  +-+         +-+
 --R   (52)  \|4\|2  + 9 = 2\|2  + 1
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 52
 
 --S 53 of 67
@@ -107550,7 +107802,7 @@ s6:Ran:=sqrt 6
 --R
 --R          +-+
 --R   (54)  \|6
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 54
 
 --S 55 of 67
@@ -107560,7 +107812,7 @@ dst2:=sqrt(5+2*s6)+sqrt(5-2*s6) = 2*s3
 --R          +-----------+    +---------+
 --R          |    +-+         |  +-+         +-+
 --R   (55)  \|- 2\|6  + 5  + \|2\|6  + 5 = 2\|3
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 55
 
 --S 56 of 67
@@ -107577,7 +107829,7 @@ s29:Ran:=sqrt 29
 --R
 --R          +--+
 --R   (57)  \|29
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 57
 
 --S 58 of 67
@@ -107589,7 +107841,7 @@ dst4:=sqrt(16-2*s29+2*sqrt(55-10*s29)) = sqrt(22+2*s5)-sqrt(11+2*s29)+s5
 --R    |  +--------------+                    +-----------+    +----------+
 --R    |  |     +--+           +--+           |  +--+          |  +-+          +-+
 --R   \|2\|- 10\|29  + 55  - 2\|29  + 16 = - \|2\|29  + 11  + \|2\|5  + 22  + \|5
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 58
 
 --S 59 of 67
@@ -107607,7 +107859,7 @@ dst6:=sqrt((112+70*s2)+(46+34*s2)*s5) = (5+4*s2)+(3+s2)*s5
 --R          +--------------------------------+
 --R          |    +-+       +-+      +-+           +-+      +-+     +-+
 --R   (60)  \|(34\|2  + 46)\|5  + 70\|2  + 112 = (\|2  + 3)\|5  + 4\|2  + 5
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 60
 
 --S 61 of 67
@@ -107624,7 +107876,7 @@ f3:Ran:=sqrt(3,5)
 --R
 --R         5+-+
 --R   (62)  \|3
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 62
 
 --S 63 of 67
@@ -107635,7 +107887,7 @@ f25:Ran:=sqrt(1/25,5)
 --R          | 1
 --R   (63)  5|--
 --R         \|25
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 63
 
 --S 64 of 67
@@ -107646,7 +107898,7 @@ f32:Ran:=sqrt(32/5,5)
 --R          |32
 --R   (64)  5|--
 --R         \| 5
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 64
 
 --S 65 of 67
@@ -107657,7 +107909,7 @@ f27:Ran:=sqrt(27/5,5)
 --R          |27
 --R   (65)  5|--
 --R         \| 5
---R                                           Type: RealClosure Fraction Integer
+--R                                         Type: RealClosure(Fraction(Integer))
 --E 65
 
 --S 66 of 67
@@ -107669,7 +107921,7 @@ dst5:=sqrt((f32-f27,3)) = f25*(1+f3-f3**2)
 --R          |   |27     |32       5+-+2   5+-+       | 1
 --R   (66)  3|- 5|--  + 5|--  = (- \|3   + \|3  + 1) 5|--
 --R         \|  \| 5    \| 5                         \|25
---R                                  Type: Equation RealClosure Fraction Integer
+--R                               Type: Equation(RealClosure(Fraction(Integer)))
 --E 66
 
 --S 67 of 67
@@ -108599,6 +108851,7 @@ RealClosure(TheField): PUB == PRIV where
 
 --S 1 of 1
 )show RectangularMatrix
+--R 
 --R RectangularMatrix(m: NonNegativeInteger,n: NonNegativeInteger,R: Ring)  is a domain constructor
 --R Abbreviation for RectangularMatrix is RMATRIX 
 --R This constructor is not exposed in this frame.
@@ -108610,44 +108863,45 @@ RealClosure(TheField): PUB == PRIV where
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 0 : () -> %                           antisymmetric? : % -> Boolean
---R coerce : % -> Matrix R                coerce : % -> OutputForm
+--R coerce : % -> Matrix(R)               coerce : % -> OutputForm
 --R copy : % -> %                         diagonal? : % -> Boolean
 --R elt : (%,Integer,Integer,R) -> R      elt : (%,Integer,Integer) -> R
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                hash : % -> SingleInteger
---R latex : % -> String                   listOfLists : % -> List List R
+--R latex : % -> String                   listOfLists : % -> List(List(R))
 --R map : (((R,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       qelt : (%,Integer,Integer) -> R
---R rectangularMatrix : Matrix R -> %     sample : () -> %
---R square? : % -> Boolean                symmetric? : % -> Boolean
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R sample : () -> %                      square? : % -> Boolean
+--R symmetric? : % -> Boolean             zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?/? : (%,R) -> % if R has FIELD
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R column : (%,Integer) -> DirectProduct(m,R)
---R convert : % -> InputForm if R has KONVERT INFORM
+--R convert : % -> InputForm if R has KONVERT(INFORM)
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R dimension : () -> CardinalNumber if R has FIELD
---R eval : (%,List Equation 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 : (%,R,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 : (%,List(Equation(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 : (%,R,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 every? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R exquo : (%,R) -> Union(%,"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 members : % -> List(R) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R nullSpace : % -> List DirectProduct(m,R) if R has INTDOM
+--R nullSpace : % -> List(DirectProduct(m,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 rank : % -> NonNegativeInteger if R has INTDOM
+--R rectangularMatrix : Matrix(R) -> %
 --R row : (%,Integer) -> DirectProduct(n,R)
 --R rowEchelon : % -> % if R has EUCDOM
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -108843,7 +109097,8 @@ RectangularMatrix(m,n,R): Exports == Implementation where
 
 --S 1 of 1
 )show Reference
---R Reference S: Type  is a domain constructor
+--R 
+--R Reference(S: Type)  is a domain constructor
 --R Abbreviation for Reference is REF 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for REF 
@@ -108959,7 +109214,8 @@ Reference(S:Type): Type with
 
 --S 1 of 1
 )show RegularChain
---R RegularChain(R: GcdDomain,ls: List Symbol)  is a domain constructor
+--R 
+--R RegularChain(R: GcdDomain,ls: List(Symbol))  is a domain constructor
 --R Abbreviation for RegularChain is RGCHAIN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RGCHAIN 
@@ -108976,106 +109232,106 @@ Reference(S:Type): Type with
 --R sample : () -> %                      stronglyReduced? : % -> Boolean
 --R trivialIdeal? : % -> Boolean          ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
---R algebraic? : (OrderedVariableList ls,%) -> Boolean
---R algebraicCoefficients? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R algebraicVariables : % -> List OrderedVariableList ls
---R any? : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R augment : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R augment : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R augment : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R augment : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R autoReduced? : (%,((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> Boolean
---R basicSet : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),(NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> Union(Record(bas: %,top: List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),"failed")
---R basicSet : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> Union(Record(bas: %,top: List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),"failed")
---R coHeight : % -> NonNegativeInteger if OrderedVariableList ls has FINITE
---R coerce : % -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R collect : (%,OrderedVariableList ls) -> %
---R collectUnder : (%,OrderedVariableList ls) -> %
---R collectUpper : (%,OrderedVariableList ls) -> %
---R construct : List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> %
---R convert : % -> InputForm if NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has KONVERT INFORM
---R count : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R count : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NonNegativeInteger if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R eval : (%,List Equation NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has EVALAB NSMP(R,OVAR ls) and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R eval : (%,Equation NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has EVALAB NSMP(R,OVAR ls) and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R eval : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has EVALAB NSMP(R,OVAR ls) and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R eval : (%,List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has EVALAB NSMP(R,OVAR ls) and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R every? : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R extend : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R extend : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R extend : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R extend : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R extend : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> %
---R extendIfCan : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Union(%,"failed")
---R find : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList ls),"failed")
---R first : % -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList ls),"failed")
---R headReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R headReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R headRemainder : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Record(num: NewSparseMultivariatePolynomial(R,OrderedVariableList ls),den: R) if R has INTDOM
---R initiallyReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R initiallyReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R initials : % -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R internalAugment : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> %
---R internalAugment : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> %
---R intersect : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R intersect : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %) -> List %
---R intersect : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R intersect : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R invertible? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R invertible? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List Record(val: Boolean,tower: %)
---R invertibleElseSplit? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Union(Boolean,List %)
---R invertibleSet : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List %
---R last : % -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList ls),"failed")
---R lastSubResultant : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List Record(val: NewSparseMultivariatePolynomial(R,OrderedVariableList ls),tower: %)
---R lastSubResultantElseSplit : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList ls),List %)
+--R algebraic? : (OrderedVariableList(ls),%) -> Boolean
+--R algebraicCoefficients? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R algebraicVariables : % -> List(OrderedVariableList(ls))
+--R any? : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R augment : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),List(%)) -> List(%)
+--R augment : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> List(%)
+--R augment : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),List(%)) -> List(%)
+--R augment : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(%)
+--R autoReduced? : (%,((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))) -> Boolean)) -> Boolean
+--R basicSet : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Boolean)) -> Union(Record(bas: %,top: List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))),"failed")
+--R basicSet : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Boolean)) -> Union(Record(bas: %,top: List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))),"failed")
+--R coHeight : % -> NonNegativeInteger if OrderedVariableList(ls) has FINITE
+--R coerce : % -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))
+--R collect : (%,OrderedVariableList(ls)) -> %
+--R collectUnder : (%,OrderedVariableList(ls)) -> %
+--R collectUpper : (%,OrderedVariableList(ls)) -> %
+--R construct : List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> %
+--R convert : % -> InputForm if NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has KONVERT(INFORM)
+--R count : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
+--R count : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NonNegativeInteger if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R eval : (%,List(Equation(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))))) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has EVALAB(NSMP(R,OVAR(ls))) and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R eval : (%,Equation(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has EVALAB(NSMP(R,OVAR(ls))) and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R eval : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has EVALAB(NSMP(R,OVAR(ls))) and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R eval : (%,List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))) -> % if NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has EVALAB(NSMP(R,OVAR(ls))) and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R every? : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R extend : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),List(%)) -> List(%)
+--R extend : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> List(%)
+--R extend : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),List(%)) -> List(%)
+--R extend : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(%)
+--R extend : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> %
+--R extendIfCan : (%,NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Union(%,"failed")
+--R find : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),"failed")
+--R first : % -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),"failed")
+--R headReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R headReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R headRemainder : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Record(num: NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),den: R) if R has INTDOM
+--R initiallyReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R initiallyReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R initials : % -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))
+--R internalAugment : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> %
+--R internalAugment : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> %
+--R intersect : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),List(%)) -> List(%)
+--R intersect : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),List(%)) -> List(%)
+--R intersect : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> List(%)
+--R intersect : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(%)
+--R invertible? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R invertible? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(Record(val: Boolean,tower: %))
+--R invertibleElseSplit? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Union(Boolean,List(%))
+--R invertibleSet : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(%)
+--R last : % -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),"failed")
+--R lastSubResultant : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(Record(val: NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),tower: %))
+--R lastSubResultantElseSplit : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),List(%))
 --R less? : (%,NonNegativeInteger) -> Boolean
---R mainVariable? : (OrderedVariableList ls,%) -> Boolean
---R mainVariables : % -> List OrderedVariableList ls
---R map : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),%) -> %
---R map! : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),%) -> % if $ has shallowlyMutable
---R member? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R members : % -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if $ has finiteAggregate
+--R mainVariable? : (OrderedVariableList(ls),%) -> Boolean
+--R mainVariables : % -> List(OrderedVariableList(ls))
+--R map : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> %
+--R map! : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> % if $ has shallowlyMutable
+--R member? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R members : % -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R mvar : % -> OrderedVariableList ls
---R normalized? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R parts : % -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if $ has finiteAggregate
---R purelyAlgebraic? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R purelyAlgebraicLeadingMonomial? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R purelyTranscendental? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
---R quasiComponent : % -> Record(close: List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),open: List NewSparseMultivariatePolynomial(R,OrderedVariableList ls))
---R reduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if $ has finiteAggregate
---R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),%,NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if $ has finiteAggregate
---R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),%,NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R reduceByQuasiMonic : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R reduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> Boolean
---R remainder : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Record(rnum: R,polnum: NewSparseMultivariatePolynomial(R,OrderedVariableList ls),den: R) if R has INTDOM
---R remove : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> % if $ has finiteAggregate
---R remove : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> % if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R removeDuplicates : % -> % if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList ls) has SETCAT
---R removeZero : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R retract : List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> %
---R retractIfCan : List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Union(%,"failed")
---R rewriteIdealWithHeadRemainder : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if R has INTDOM
---R rewriteIdealWithRemainder : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) if R has INTDOM
---R rewriteSetWithReduction : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)),((NewSparseMultivariatePolynomial(R,OrderedVariableList ls),NewSparseMultivariatePolynomial(R,OrderedVariableList ls)) -> Boolean)) -> List NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
+--R mvar : % -> OrderedVariableList(ls)
+--R normalized? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R parts : % -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) if $ has finiteAggregate
+--R purelyAlgebraic? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R purelyAlgebraicLeadingMonomial? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R purelyTranscendental? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
+--R quasiComponent : % -> Record(close: List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),open: List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))))
+--R reduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Boolean)) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) if $ has finiteAggregate
+--R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%,NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) if $ has finiteAggregate
+--R reduce : (((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%,NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R reduceByQuasiMonic : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R reduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Boolean)) -> Boolean
+--R remainder : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Record(rnum: R,polnum: NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),den: R) if R has INTDOM
+--R remove : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> % if $ has finiteAggregate
+--R remove : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> % if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R removeDuplicates : % -> % if $ has finiteAggregate and NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) has SETCAT
+--R removeZero : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R retract : List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> %
+--R retractIfCan : List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Union(%,"failed")
+--R rewriteIdealWithHeadRemainder : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) if R has INTDOM
+--R rewriteIdealWithRemainder : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%) -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) if R has INTDOM
+--R rewriteSetWithReduction : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),%,((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> Boolean)) -> List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))
 --R roughBase? : % -> Boolean if R has INTDOM
 --R roughEqualIdeals? : (%,%) -> Boolean if R has INTDOM
 --R roughSubIdeal? : (%,%) -> Boolean if R has INTDOM
 --R roughUnitIdeal? : % -> Boolean if R has INTDOM
---R select : (%,OrderedVariableList ls) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList ls),"failed")
---R select : ((NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> Boolean),%) -> % if $ has finiteAggregate
+--R select : (%,OrderedVariableList(ls)) -> Union(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),"failed")
+--R select : ((NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)) -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
---R sort : (%,OrderedVariableList ls) -> Record(under: %,floor: %,upper: %)
---R squareFreePart : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> List Record(val: NewSparseMultivariatePolynomial(R,OrderedVariableList ls),tower: %)
---R stronglyReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList ls)
---R stronglyReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList ls),%) -> Boolean
+--R sort : (%,OrderedVariableList(ls)) -> Record(under: %,floor: %,upper: %)
+--R squareFreePart : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> List(Record(val: NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),tower: %))
+--R stronglyReduce : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))
+--R stronglyReduced? : (NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)),%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R variables : % -> List OrderedVariableList ls
---R zeroSetSplit : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),Boolean,Boolean) -> List %
---R zeroSetSplit : (List NewSparseMultivariatePolynomial(R,OrderedVariableList ls),Boolean) -> List %
---R zeroSetSplit : List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> List %
---R zeroSetSplitIntoTriangularSystems : List NewSparseMultivariatePolynomial(R,OrderedVariableList ls) -> List Record(close: %,open: List NewSparseMultivariatePolynomial(R,OrderedVariableList ls))
+--R variables : % -> List(OrderedVariableList(ls))
+--R zeroSetSplit : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),Boolean,Boolean) -> List(%)
+--R zeroSetSplit : (List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))),Boolean) -> List(%)
+--R zeroSetSplit : List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> List(%)
+--R zeroSetSplitIntoTriangularSystems : List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls))) -> List(Record(close: %,open: List(NewSparseMultivariatePolynomial(R,OrderedVariableList(ls)))))
 --R
 --E 1
 
@@ -109259,14 +109515,14 @@ ls : List Symbol := [x,y,z,t]
 --R 
 --R
 --R   (2)  [x,y,z,t]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 34
 V := OVAR(ls)
 --R 
 --R
---R   (3)  OrderedVariableList [x,y,z,t]
+--R   (3)  OrderedVariableList([x,y,z,t])
 --R                                                                 Type: Domain
 --E 3
 
@@ -109274,7 +109530,7 @@ V := OVAR(ls)
 E := IndexedExponents V
 --R 
 --R
---R   (4)  IndexedExponents OrderedVariableList [x,y,z,t]
+--R   (4)  IndexedExponents(OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 4
 
@@ -109282,7 +109538,8 @@ E := IndexedExponents V
 P := NSMP(R, V)
 --R 
 --R
---R   (5)  NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--R   (5)
+--R   NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 5
 
@@ -109291,7 +109548,7 @@ x: P := 'x
 --R 
 --R
 --R   (6)  x
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 6
 
 --S 7 of 34
@@ -109299,7 +109556,7 @@ y: P := 'y
 --R 
 --R
 --R   (7)  y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 7
 
 --S 8 of 34
@@ -109307,7 +109564,7 @@ z: P := 'z
 --R 
 --R
 --R   (8)  z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 8
 
 --S 9 of 34
@@ -109315,7 +109572,7 @@ t: P := 't
 --R 
 --R
 --R   (9)  t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 9
 
 --S 10 of 34
@@ -109323,9 +109580,9 @@ T := REGSET(R,E,V,P)
 --R 
 --R
 --R   (10)
---R  RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],O
---R  rderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedV
---R  ariableList [x,y,z,t]))
+--R  RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t]))
+--R  ,OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,Order
+--R  edVariableList([x,y,z,t])))
 --R                                                                 Type: Domain
 --E 10
 
@@ -109335,7 +109592,7 @@ p1 := x ** 31 - x ** 6 - x - y
 --R
 --R          31    6
 --R   (11)  x   - x  - x - y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 11
 
 --S 12 of 34
@@ -109344,7 +109601,7 @@ p2 := x ** 8  - z
 --R
 --R          8
 --R   (12)  x  - z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 12
 
 --S 13 of 34
@@ -109353,7 +109610,7 @@ p3 := x ** 10 - t
 --R
 --R          10
 --R   (13)  x   - t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 13
 
 --S 14 of 34
@@ -109362,7 +109619,7 @@ lp := [p1, p2, p3]
 --R
 --R           31    6          8      10
 --R   (14)  [x   - x  - x - y,x  - z,x   - t]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
 --E 14
 
 --S 15 of 34
@@ -109371,7 +109628,7 @@ zeroSetSplit(lp)$T
 --R
 --R            5    4      2     3     8     5    3    2   4                2
 --R   (15)  [{z  - t ,t z y  + 2z y - t  + 2t  + t  - t ,(t  - t)x - t y - z }]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 15
 
 --S 16 of 34
@@ -109383,7 +109640,7 @@ lts := zeroSetSplit(lp,false)$T
 --R   [{z  - t ,t z y  + 2z y - t  + 2t  + t  - t ,(t  - t)x - t y - z },
 --R      3      5          2     3         2
 --R    {t  - 1,z  - t,t z y  + 2z y + 1,z x  - t}, {t,z,y,x}]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 16
 
 --S 17 of 34
@@ -109391,7 +109648,7 @@ lts := zeroSetSplit(lp,false)$T
 --R 
 --R
 --R   (17)  [1,0,0]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 17
 
 --S 18 of 34
@@ -109400,7 +109657,7 @@ f1 := y**2*z+2*x*y*t-2*x-z
 --R
 --R                          2
 --R   (18)  (2t y - 2)x + z y  - z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 18
 
 --S 19 of 34
@@ -109409,7 +109666,7 @@ f2:=-x**3*z+ 4*x*y**2*z+4*x**2*y*t+2*y**3*t+4*x**2-10*y**2+4*x*z-10*y*t+2
 --R
 --R              3              2        2              3      2
 --R   (19)  - z x  + (4t y + 4)x  + (4z y  + 4z)x + 2t y  - 10y  - 10t y + 2
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 19
 
 --S 20 of 34
@@ -109418,7 +109675,7 @@ f3 :=  2*y*z*t+x*t**2-x-2*z
 --R
 --R           2
 --R   (20)  (t  - 1)x + 2t z y - 2z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 20
 
 --S 21 of 34
@@ -109427,7 +109684,7 @@ f4:=-x*z**3+4*y*z**2*t+4*x*z*t**2+2*y*t**3+4*x*z+4*z**2-10*y*t- 10*t**2+2
 --R
 --R             3      2                2     3             2      2
 --R   (21)  (- z  + (4t  + 4)z)x + (4t z  + 2t  - 10t)y + 4z  - 10t  + 2
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 21
 
 --S 22 of 34
@@ -109443,7 +109700,7 @@ lf := [f1, f2, f3, f4]
 --R    (t  - 1)x + 2t z y - 2z,
 --R        3      2                2     3             2      2
 --R    (- z  + (4t  + 4)z)x + (4t z  + 2t  - 10t)y + 4z  - 10t  + 2]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
 --E 22
 
 --S 23 of 34
@@ -109459,7 +109716,7 @@ zeroSetSplit(lf)$T
 --R    {t  - 10t  + 10t  - 1,z,(t  - 5t)y - 5t  + 1,x},
 --R      2      2
 --R    {t  + 3,z  - 4,y + t,x - z}]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 23
 
 --S 24 of 34
@@ -109473,7 +109730,7 @@ lts2 := zeroSetSplit(lf,false)$T
 --R    {t  - 1,z  - 16z  + 256z  - 256,t y - 1,(z  - 8z)x - 8z  + 16},
 --R       2      2     2                     2      2
 --R    {3t  + 1,z  - 7t  - 1,y + t,x + z}, {t  + 3,z  - 4,y + t,x - z}]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 24
 
 --S 25 of 34
@@ -109481,7 +109738,7 @@ lts2 := zeroSetSplit(lf,false)$T
 --R 
 --R
 --R   (25)  [0,0,0,0]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 25
 
 --S 26 of 34
@@ -109489,7 +109746,7 @@ degrees := [degree(ts) for ts in lts2]
 --R 
 --R
 --R   (26)  [8,16,4,4]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 26
 
 --S 27 of 34
@@ -109521,7 +109778,7 @@ q1 := 2*(u-1)**2+ 2*(x-z*x+z**2)+ y**2*(x-1)**2- 2*u*x+ 2*y*t*(1-x)*(x-z)+_
 --R   + 
 --R      2                      2       2          2
 --R     y  + (- 2t z - 4t)y + (t  + 10)z  - 8z + 4t  + 2
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 29
 
 --S 30 of 34
@@ -109531,7 +109788,7 @@ q2 := t*(2*z+1)*(x-z)+ y*(z+2)*(1-x)+ u*(u-2)*t+ u*(1-2*u)*z*t+_
 --R
 --R                                               2
 --R   (30)  (- 3z y + 2t z + t)x + (z + 4)y + 4t z  - 7t z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 30
 
 --S 31 of 34
@@ -109540,7 +109797,7 @@ q3 := -u**2*(z-1)**2+ 2*z*(z-x)-2*(x-1)
 --R
 --R                         2
 --R   (31)  (- 2z - 2)x - 2z  + 8z - 2
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 31
 
 --S 32 of 34
@@ -109554,7 +109811,7 @@ q4 := u**2+4*(z-x**2)+3*y**2*(x-1)**2- 3*t**2*(z-x)**2+_
 --R   + 
 --R        2      2         2            2
 --R     (9t  + 4)z  + (- 24t  - 4)z + 12t  + 4
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 32
 
 --S 33 of 34
@@ -109581,13 +109838,13 @@ lq := [q1, q2, q3, q4]
 --R                           2      2         2            2
 --R       (12t z - 12t)y + (9t  + 4)z  + (- 24t  - 4)z + 12t  + 4
 --R     ]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
 --E 33
 
 --S 34 of 34
 zeroSetSplit(lq,true,true)$T
 --R 
---R[1 <4,0> -> |4|; {0}]W[2 <5,0>,<3,1> -> |8|; {0}][2 <4,1>,<3,1> -> |7|; {0}][1 <3,1> -> |3|; {0}]G[2 <4,1>,<4,1> -> |8|; {0}]W[3 <5,1>,<4,1>,<3,2> -> |12|; {0}]GI[3 <4,2>,<4,1>,<3,2> -> |11|; {0}]GWw[3 <4,1>,<3,2>,<5,2> -> |12|; {0}][3 <3,2>,<3,2>,<5,2> -> |11|; {0}]GIwWWWw[4 <3,2>,<4,2>,<5,2>,<2,3> -> |14|; {0}][4 <2,2>,<4,2>,<5,2>,<2,3> -> |13|; {0}]Gwww[5 <3,2>,<3,2>,<4,2>,<5,2>,<2,3> -> |17|; {0}]Gwwwwww[8 <3,2>,<4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |30|; {0}]Gwwwwww[8 <4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |31|; {0}][8 <3,3>,<4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |30|; {0}][8 <2,3>,<4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |29|; {0}][8 <1,3>,<4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |28|; {0}][7 <4,2>,<4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |27|; {0}][6 <4,2>,<4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |23|; {0}][5 <4,2>,<4,2>,<4,2>,<5,2>,<2,3> -> |19|; {0}]GIGIWwww[6 <5,2>,<4,2>,<4,2>,<5,2>,<3,3>,<2,3> -> |23|; {0}][6 <4,3>,<4,2>,<4,2>,<5,2>,<3,3>,<2,3> -> |22|; {0}]GIGI[6 <3,4>,<4,2>,<4,2>,<5,2>,<3,3>,<2,3> -> |21|; {0}][6 <2,4>,<4,2>,<4,2>,<5,2>,<3,3>,<2,3> -> |20|; {0}]GGG[5 <4,2>,<4,2>,<5,2>,<3,3>,<2,3> -> |18|; {0}]GIGIWwwwW[6 <5,2>,<4,2>,<5,2>,<3,3>,<3,3>,<2,3> -> |22|; {0}][6 <4,3>,<4,2>,<5,2>,<3,3>,<3,3>,<2,3> -> |21|; {0}]GIwwWwWWWWWWWwWWWWwwwww[8 <4,2>,<5,2>,<3,3>,<3,3>,<4,3>,<2,3>,<3,4>,<3,4> -> |27|; {0}][8 <3,3>,<5,2>,<3,3>,<3,3>,<4,3>,<2,3>,<3,4>,<3,4> -> |26|; {0}][8 <2,3>,<5,2>,<3,3>,<3,3>,<4,3>,<2,3>,<3,4>,<3,4> -> |25|; {0}]Gwwwwwwwwwwwwwwwwwwww[9 <5,2>,<3,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,4>,<3,4> -> |29|; {0}]GI[9 <4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,4>,<3,4> -> |28|; {0}][9 <3,3>,<3,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,4>,<3,4> -> |27|; {0}][9 <2,3>,<3,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,4>,<3,4> -> |26|; {0}]GGwwwwwwwwwwwwWWwwwwwwww[11 <3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |33|; {0}][11 <2,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |32|; {0}][11 <1,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |31|; {0}]GGGwwwwwwwwwwwww[12 <2,3>,<2,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |34|; {0}]GGwwwwwwwwwwwww[13 <3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |38|; {0}]Gwwwwwwwwwwwww[13 <2,3>,<3,3>,<4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {0}]GGGwwwwwwwwwwwww[15 <3,3>,<4,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |46|; {0}][14 <4,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |43|; {0}]GIGGGGIGGI[14 <3,4>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |42|; {0}]GGG[14 <2,4>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |41|; {0}][14 <1,4>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |40|; {0}]GGG[13 <3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {0}]Gwwwwwwwwwwwww[15 <3,3>,<3,3>,<4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |48|; {0}]Gwwwwwwwwwwwww[15 <4,3>,<4,3>,<3,3>,<4,3>,<4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |49|; {0}]GIGI[15 <3,4>,<4,3>,<3,3>,<4,3>,<4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |48|; {0}]G[14 <4,3>,<3,3>,<4,3>,<4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |45|; {0}][13 <3,3>,<4,3>,<4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |41|; {0}]Gwwwwwwwwwwwww[13 <4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |42|; {0}]GIGGGGIGGI[13 <3,4>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |41|; {0}]GGGGGGGG[13 <2,4>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |40|; {0}][13 <1,4>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {0}][13 <0,4>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |38|; {0}][12 <4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |38|; {1}][11 <4,3>,<3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |34|; {1}][10 <3,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |30|; {1}][10 <2,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |29|; {1}]GGGwwwwwwwwwwwww[11 <3,3>,<3,3>,<4,3>,<3,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |33|; {1}]GGGwwwwwwwwwwwww[12 <4,3>,<3,3>,<4,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |38|; {1}]Gwwwwwwwwwwwww[12 <3,3>,<4,3>,<5,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {1}]GGwwwwwwwwwwwww[13 <5,3>,<4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |44|; {1}]GIGGGGIGGIW[13 <4,4>,<4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |43|; {1}]GGW[13 <3,4>,<4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |42|; {1}]GGG[12 <4,3>,<4,3>,<4,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {1}]Gwwwwwwwwwwwww[12 <4,3>,<4,3>,<5,3>,<3,3>,<4,3>,<3,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |40|; {1}]Gwwwwwwwwwwwww[13 <5,3>,<5,3>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |46|; {1}]GIGIW[13 <4,4>,<5,3>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |45|; {1}][13 <3,4>,<5,3>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |44|; {1}][13 <2,4>,<5,3>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |43|; {1}]GG[12 <5,3>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |41|; {1}]GIGGGGIGGIW[12 <4,4>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |40|; {1}]GGGGGGW[12 <3,4>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |39|; {1}][12 <2,4>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |38|; {1}][12 <1,4>,<4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |37|; {1}]GGG[11 <4,3>,<5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |36|; {1}][10 <5,3>,<3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |32|; {1}][9 <3,3>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |27|; {1}]W[9 <2,4>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |26|; {1}][9 <1,4>,<3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |25|; {1}][8 <3,3>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |24|; {1}]W[8 <2,4>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |23|; {1}][8 <1,4>,<4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |22|; {1}][7 <4,3>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |21|; {1}]w[7 <3,4>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |20|; {1}][7 <2,4>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |19|; {1}][7 <1,4>,<2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |18|; {1}][6 <2,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |17|; {1}]GGwwwwww[7 <3,3>,<3,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |21|; {1}]GIW[7 <2,4>,<3,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |20|; {1}]GG[6 <3,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |18|; {1}]Gwwwwww[7 <4,3>,<4,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |23|; {1}]GIW[7 <3,4>,<4,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |22|; {1}][6 <4,3>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |19|; {1}]GIW[6 <3,4>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |18|; {1}]GGW[6 <2,4>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |17|; {1}][6 <1,4>,<3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |16|; {1}]GGG[5 <3,3>,<3,3>,<3,3>,<3,4>,<3,4> -> |15|; {1}]GIW[5 <2,4>,<3,3>,<3,3>,<3,4>,<3,4> -> |14|; {1}]GG[4 <3,3>,<3,3>,<3,4>,<3,4> -> |12|; {1}][3 <3,3>,<3,4>,<3,4> -> |9|; {1}]W[3 <2,4>,<3,4>,<3,4> -> |8|; {1}][3 <1,4>,<3,4>,<3,4> -> |7|; {1}]G[2 <3,4>,<3,4> -> |6|; {1}]G[1 <3,4> -> |3|; {1}][1 <2,4> -> |2|; {1}][1 <1,4> -> |1|; {1}]
+--I[1 <4,0> -> |4|; {0}]W[2 <5,0>,<3,1> -> |8|; ...
 --R   *** QCMPACK Statistics ***
 --R      Table     size:  36
 --R      Entries reused:  255
@@ -109775,7 +110032,7 @@ zeroSetSplit(lq,true,true)$T
 --R                  2
 --R      (z + 1)x + z  - 4z + 1}
 --R     ]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 34
 )spool
 )lisp (bye)
@@ -111114,7 +111371,8 @@ RegularTriangularSet(R,E,V,P) : Exports == Implementation where
 
 --S 1 of 1
 )show ResidueRing
---R ResidueRing(F: Field,Expon: OrderedAbelianMonoidSup,VarSet: OrderedSet,FPol: PolynomialCategory(F,Expon,VarSet),LFPol: List FPol)  is a domain constructor
+--R 
+--R ResidueRing(F: Field,Expon: OrderedAbelianMonoidSup,VarSet: OrderedSet,FPol: PolynomialCategory(F,Expon,VarSet),LFPol: List(FPol))  is a domain constructor
 --R Abbreviation for ResidueRing is RESRING 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RESRING 
@@ -111256,6 +111514,7 @@ ResidueRing(F,Expon,VarSet,FPol,LFPol) : Dom  == Body
 
 --S 1 of 1
 )show Result
+--R 
 --R Result  is a domain constructor
 --R Abbreviation for Result is RESULT 
 --R This constructor is exposed in this frame.
@@ -111265,9 +111524,9 @@ ResidueRing(F,Expon,VarSet,FPol,LFPol) : Dom  == Body
 --R copy : % -> %                         dictionary : () -> %
 --R elt : (%,Symbol,Any) -> Any           ?.? : (%,Symbol) -> Any
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Any               eq? : (%,%) -> Boolean
---R index? : (Symbol,%) -> Boolean        indices : % -> List Symbol
---R key? : (Symbol,%) -> Boolean          keys : % -> List Symbol
+--R entries : % -> List(Any)              eq? : (%,%) -> Boolean
+--R index? : (Symbol,%) -> Boolean        indices : % -> List(Symbol)
+--R key? : (Symbol,%) -> Boolean          keys : % -> List(Symbol)
 --R map : ((Any -> Any),%) -> %           qelt : (%,Symbol) -> Any
 --R sample : () -> %                      setelt : (%,Symbol,Any) -> Any
 --R table : () -> %                      
@@ -111275,24 +111534,24 @@ ResidueRing(F,Expon,VarSet,FPol,LFPol) : Dom  == Body
 --R ?=? : (%,%) -> Boolean if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
 --R any? : ((Any -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R any? : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R bag : List Record(key: Symbol,entry: Any) -> %
+--R bag : List(Record(key: Symbol,entry: Any)) -> %
 --R coerce : % -> OutputForm if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
---R construct : List Record(key: Symbol,entry: Any) -> %
---R convert : % -> InputForm if Record(key: Symbol,entry: Any) has KONVERT INFORM
+--R construct : List(Record(key: Symbol,entry: Any)) -> %
+--R convert : % -> InputForm if Record(key: Symbol,entry: Any) has KONVERT(INFORM)
 --R count : ((Any -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Any,%) -> NonNegativeInteger if $ has finiteAggregate and Any has SETCAT
 --R count : (Record(key: Symbol,entry: Any),%) -> NonNegativeInteger if $ has finiteAggregate and Record(key: Symbol,entry: Any) has SETCAT
 --R count : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R dictionary : List Record(key: Symbol,entry: Any) -> %
+--R dictionary : List(Record(key: Symbol,entry: Any)) -> %
 --R entry? : (Any,%) -> Boolean if $ has finiteAggregate and Any has SETCAT
---R eval : (%,List Equation Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,Equation Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,Any,Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,List Any,List Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,List Record(key: Symbol,entry: Any),List Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,Equation Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,List Equation Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,List(Equation(Any))) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,Equation(Any)) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,Any,Any) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,List(Any),List(Any)) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,List(Record(key: Symbol,entry: Any)),List(Record(key: Symbol,entry: Any))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,Equation(Record(key: Symbol,entry: Any))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,List(Equation(Record(key: Symbol,entry: Any)))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
 --R every? : ((Any -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extract! : % -> Record(key: Symbol,entry: Any)
@@ -111311,12 +111570,12 @@ ResidueRing(F,Expon,VarSet,FPol,LFPol) : Dom  == Body
 --R maxIndex : % -> Symbol if Symbol has ORDSET
 --R member? : (Any,%) -> Boolean if $ has finiteAggregate and Any has SETCAT
 --R member? : (Record(key: Symbol,entry: Any),%) -> Boolean if $ has finiteAggregate and Record(key: Symbol,entry: Any) has SETCAT
---R members : % -> List Any if $ has finiteAggregate
---R members : % -> List Record(key: Symbol,entry: Any) if $ has finiteAggregate
+--R members : % -> List(Any) if $ has finiteAggregate
+--R members : % -> List(Record(key: Symbol,entry: Any)) if $ has finiteAggregate
 --R minIndex : % -> Symbol if Symbol has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Any if $ has finiteAggregate
---R parts : % -> List Record(key: Symbol,entry: Any) if $ has finiteAggregate
+--R parts : % -> List(Any) if $ has finiteAggregate
+--R parts : % -> List(Record(key: Symbol,entry: Any)) if $ has finiteAggregate
 --R qsetelt! : (%,Symbol,Any) -> Any if $ has shallowlyMutable
 --R reduce : (((Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> Record(key: Symbol,entry: Any)),%) -> Record(key: Symbol,entry: Any) if $ has finiteAggregate
 --R reduce : (((Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> Record(key: Symbol,entry: Any)),%,Record(key: Symbol,entry: Any)) -> Record(key: Symbol,entry: Any) if $ has finiteAggregate
@@ -111334,7 +111593,7 @@ ResidueRing(F,Expon,VarSet,FPol,LFPol) : Dom  == Body
 --R showScalarValues : Boolean -> Boolean
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R swap! : (%,Symbol,Symbol) -> Void if $ has shallowlyMutable
---R table : List Record(key: Symbol,entry: Any) -> %
+--R table : List(Record(key: Symbol,entry: Any)) -> %
 --R ?~=? : (%,%) -> Boolean if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
 --R
 --E 1
@@ -111513,22 +111772,23 @@ Result():Exports==Implementation where
 
 --S 1 of 4
 )show RewriteRule
---R RewriteRule(Base: SetCategory,R: Join(Ring,PatternMatchable Base,OrderedSet,ConvertibleTo Pattern Base),F: Join(FunctionSpace R,PatternMatchable Base,ConvertibleTo Pattern Base))  is a domain constructor
+--R 
+--R RewriteRule(Base: SetCategory,R: Join(Ring,PatternMatchable(Base),OrderedSet,ConvertibleTo(Pattern(Base))),F: Join(FunctionSpace(R),PatternMatchable(Base),ConvertibleTo(Pattern(Base))))  is a domain constructor
 --R Abbreviation for RewriteRule is RULE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RULE 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                coerce : Equation F -> %
+--R ?=? : (%,%) -> Boolean                coerce : Equation(F) -> %
 --R coerce : % -> OutputForm              elt : (%,F,PositiveInteger) -> F
 --R ?.? : (%,F) -> F                      hash : % -> SingleInteger
 --R latex : % -> String                   lhs : % -> F
---R pattern : % -> Pattern Base           retract : % -> Equation F
---R rhs : % -> F                          rule : (F,F,List Symbol) -> %
+--R pattern : % -> Pattern(Base)          retract : % -> Equation(F)
+--R rhs : % -> F                          rule : (F,F,List(Symbol)) -> %
 --R rule : (F,F) -> %                     ?~=? : (%,%) -> Boolean
---R quotedOperators : % -> List Symbol
---R retractIfCan : % -> Union(Equation F,"failed")
---R suchThat : (%,List Symbol,(List F -> Boolean)) -> %
+--R quotedOperators : % -> List(Symbol)
+--R retractIfCan : % -> Union(Equation(F),"failed")
+--R suchThat : (%,List(Symbol),(List(F) -> Boolean)) -> %
 --R
 --E 1
 
@@ -111536,21 +111796,21 @@ Result():Exports==Implementation where
 logrule := rule log(x) + log(y) == log(x*y)
 --R
 --R   (1)  log(y) + log(x) + %B == log(x y) + %B
---R                        Type: RewriteRule(Integer,Integer,Expression Integer)
+--R                       Type: RewriteRule(Integer,Integer,Expression(Integer))
 --E 2
 
 --S 3 of 4
 f := log(sin(x)) + log(x)
 --R
 --R   (2)  log(sin(x)) + log(x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 3
 
 --S 4 of 4
 logrule f
 --R
 --R   (3)  log(x sin(x))
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 4
 
 )spool
@@ -111801,13 +112061,14 @@ depending on several "real roots".
 
 --S 1 of 1
 )show RightOpenIntervalRootCharacterization
---R RightOpenIntervalRootCharacterization(TheField: Join(OrderedRing,Field),ThePolDom: UnivariatePolynomialCategory TheField)  is a domain constructor
+--R 
+--R RightOpenIntervalRootCharacterization(TheField: Join(OrderedRing,Field),ThePolDom: UnivariatePolynomialCategory(TheField))  is a domain constructor
 --R Abbreviation for RightOpenIntervalRootCharacterization is ROIRC 
 --R This constructor is exposed in this frame.
 --R Issue )edit NIL to see algebra source code for ROIRC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                allRootsOf : ThePolDom -> List %
+--R ?=? : (%,%) -> Boolean                allRootsOf : ThePolDom -> List(%)
 --R coerce : % -> OutputForm              hash : % -> SingleInteger
 --R latex : % -> String                   left : % -> TheField
 --R middle : % -> TheField                refine : % -> %
@@ -112362,7 +112623,7 @@ D(f x,x,7)
 --R         (vii)
 --R   (2)  f     (x)
 --R
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 2
 
 --S 3 of 15
@@ -112415,7 +112676,7 @@ m := matrix [ [1/(i + j) for i in 1..3] for j in 1..3]
 --R        | I    I    I|
 --R        |--    -   --|
 --R        +IV    V   VI+
---R                                           Type: Matrix Fraction RomanNumeral
+--R                                         Type: Matrix(Fraction(RomanNumeral))
 --E 7
 
 --S 8 of 15
@@ -112427,7 +112688,7 @@ inverse m
 --R   (8)  |- CCXL    CM     - DCCXX|
 --R        |                        |
 --R        +CLXXX   - DCCXX    DC   +
---R                                Type: Union(Matrix Fraction RomanNumeral,...)
+--R                              Type: Union(Matrix(Fraction(RomanNumeral)),...)
 --E 8
 
 --S 9 of 15
@@ -112777,6 +113038,7 @@ RomanNumeral(): IntegerNumberSystem with
 
 --S 1 of 1
 )show RoutinesTable
+--R 
 --R RoutinesTable  is a domain constructor
 --R Abbreviation for RoutinesTable is ROUTINE 
 --R This constructor is exposed in this frame.
@@ -112787,10 +113049,10 @@ RomanNumeral(): IntegerNumberSystem with
 --R deleteRoutine! : (%,Symbol) -> %      dictionary : () -> %
 --R elt : (%,Symbol,Any) -> Any           ?.? : (%,Symbol) -> Any
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Any               eq? : (%,%) -> Boolean
+--R entries : % -> List(Any)              eq? : (%,%) -> Boolean
 --R getMeasure : (%,Symbol) -> Float      index? : (Symbol,%) -> Boolean
---R indices : % -> List Symbol            key? : (Symbol,%) -> Boolean
---R keys : % -> List Symbol               map : ((Any -> Any),%) -> %
+--R indices : % -> List(Symbol)           key? : (Symbol,%) -> Boolean
+--R keys : % -> List(Symbol)              map : ((Any -> Any),%) -> %
 --R qelt : (%,Symbol) -> Any              routines : () -> %
 --R sample : () -> %                      selectFiniteRoutines : % -> %
 --R selectNonFiniteRoutines : % -> %      selectODEIVPRoutines : % -> %
@@ -112800,33 +113062,33 @@ RomanNumeral(): IntegerNumberSystem with
 --R ?=? : (%,%) -> Boolean if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
 --R any? : ((Any -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R any? : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> Boolean if $ has finiteAggregate
---R bag : List Record(key: Symbol,entry: Any) -> %
+--R bag : List(Record(key: Symbol,entry: Any)) -> %
 --R changeMeasure : (%,Symbol,Float) -> %
 --R changeThreshhold : (%,Symbol,Float) -> %
 --R coerce : % -> OutputForm if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
---R construct : List Record(key: Symbol,entry: Any) -> %
---R convert : % -> InputForm if Record(key: Symbol,entry: Any) has KONVERT INFORM
+--R construct : List(Record(key: Symbol,entry: Any)) -> %
+--R convert : % -> InputForm if Record(key: Symbol,entry: Any) has KONVERT(INFORM)
 --R count : ((Any -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Any,%) -> NonNegativeInteger if $ has finiteAggregate and Any has SETCAT
 --R count : (Record(key: Symbol,entry: Any),%) -> NonNegativeInteger if $ has finiteAggregate and Record(key: Symbol,entry: Any) has SETCAT
 --R count : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R dictionary : List Record(key: Symbol,entry: Any) -> %
+--R dictionary : List(Record(key: Symbol,entry: Any)) -> %
 --R entry? : (Any,%) -> Boolean if $ has finiteAggregate and Any has SETCAT
---R eval : (%,List Equation Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,Equation Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,Any,Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,List Any,List Any) -> % if Any has EVALAB ANY and Any has SETCAT
---R eval : (%,List Record(key: Symbol,entry: Any),List Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,Equation Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
---R eval : (%,List Equation Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB Record(key: Symbol,entry: Any) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,List(Equation(Any))) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,Equation(Any)) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,Any,Any) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,List(Any),List(Any)) -> % if Any has EVALAB(ANY) and Any has SETCAT
+--R eval : (%,List(Record(key: Symbol,entry: Any)),List(Record(key: Symbol,entry: Any))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,Equation(Record(key: Symbol,entry: Any))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
+--R eval : (%,List(Equation(Record(key: Symbol,entry: Any)))) -> % if Record(key: Symbol,entry: Any) has EVALAB(Record(key: Symbol,entry: Any)) and Record(key: Symbol,entry: Any) has SETCAT
 --R every? : ((Any -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extract! : % -> Record(key: Symbol,entry: Any)
 --R fill! : (%,Any) -> % if $ has shallowlyMutable
 --R find : ((Record(key: Symbol,entry: Any) -> Boolean),%) -> Union(Record(key: Symbol,entry: Any),"failed")
 --R first : % -> Any if Symbol has ORDSET
---R getExplanations : (%,String) -> List String
+--R getExplanations : (%,String) -> List(String)
 --R hash : % -> SingleInteger if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
 --R insert! : (Record(key: Symbol,entry: Any),%) -> %
 --R inspect : % -> Record(key: Symbol,entry: Any)
@@ -112839,12 +113101,12 @@ RomanNumeral(): IntegerNumberSystem with
 --R maxIndex : % -> Symbol if Symbol has ORDSET
 --R member? : (Any,%) -> Boolean if $ has finiteAggregate and Any has SETCAT
 --R member? : (Record(key: Symbol,entry: Any),%) -> Boolean if $ has finiteAggregate and Record(key: Symbol,entry: Any) has SETCAT
---R members : % -> List Any if $ has finiteAggregate
---R members : % -> List Record(key: Symbol,entry: Any) if $ has finiteAggregate
+--R members : % -> List(Any) if $ has finiteAggregate
+--R members : % -> List(Record(key: Symbol,entry: Any)) if $ has finiteAggregate
 --R minIndex : % -> Symbol if Symbol has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Any if $ has finiteAggregate
---R parts : % -> List Record(key: Symbol,entry: Any) if $ has finiteAggregate
+--R parts : % -> List(Any) if $ has finiteAggregate
+--R parts : % -> List(Record(key: Symbol,entry: Any)) if $ has finiteAggregate
 --R qsetelt! : (%,Symbol,Any) -> Any if $ has shallowlyMutable
 --R recoverAfterFail : (%,String,Integer) -> Union(String,"failed")
 --R reduce : (((Record(key: Symbol,entry: Any),Record(key: Symbol,entry: Any)) -> Record(key: Symbol,entry: Any)),%) -> Record(key: Symbol,entry: Any) if $ has finiteAggregate
@@ -112865,7 +113127,7 @@ RomanNumeral(): IntegerNumberSystem with
 --R selectSumOfSquaresRoutines : % -> %
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R swap! : (%,Symbol,Symbol) -> Void if $ has shallowlyMutable
---R table : List Record(key: Symbol,entry: Any) -> %
+--R table : List(Record(key: Symbol,entry: Any)) -> %
 --R ?~=? : (%,%) -> Boolean if Any has SETCAT or Record(key: Symbol,entry: Any) has SETCAT
 --R
 --E 1
@@ -113361,7 +113623,8 @@ RoutinesTable(): E == I where
 
 --S 1 of 1
 )show RuleCalled
---R RuleCalled f: Symbol  is a domain constructor
+--R 
+--R RuleCalled(f: Symbol)  is a domain constructor
 --R Abbreviation for RuleCalled is RULECOLD 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RULECOLD 
@@ -113434,7 +113697,8 @@ RuleCalled(f:Symbol): SetCategory with
 
 --S 1 of 1
 )show Ruleset
---R Ruleset(Base: SetCategory,R: Join(Ring,PatternMatchable Base,OrderedSet,ConvertibleTo Pattern Base),F: Join(FunctionSpace R,PatternMatchable Base,ConvertibleTo Pattern Base))  is a domain constructor
+--R 
+--R Ruleset(Base: SetCategory,R: Join(Ring,PatternMatchable(Base),OrderedSet,ConvertibleTo(Pattern(Base))),F: Join(FunctionSpace(R),PatternMatchable(Base),ConvertibleTo(Pattern(Base))))  is a domain constructor
 --R Abbreviation for Ruleset is RULESET 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for RULESET 
@@ -113444,8 +113708,8 @@ RuleCalled(f:Symbol): SetCategory with
 --R elt : (%,F,PositiveInteger) -> F      ?.? : (%,F) -> F
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R rules : % -> List RewriteRule(Base,R,F)
---R ruleset : List RewriteRule(Base,R,F) -> %
+--R rules : % -> List(RewriteRule(Base,R,F))
+--R ruleset : List(RewriteRule(Base,R,F)) -> %
 --R
 --E 1
 
@@ -113541,6 +113805,7 @@ Ruleset(Base, R, F): Exports == Implementation where
 
 --S 1 of 1
 )show ScriptFormulaFormat
+--R 
 --R ScriptFormulaFormat  is a domain constructor
 --R Abbreviation for ScriptFormulaFormat is FORMULA 
 --R This constructor is exposed in this frame.
@@ -113549,14 +113814,14 @@ Ruleset(Base, R, F): Exports == Implementation where
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : OutputForm -> %
 --R coerce : % -> OutputForm              display : % -> Void
---R display : (%,Integer) -> Void         epilogue : % -> List String
---R formula : % -> List String            hash : % -> SingleInteger
+--R display : (%,Integer) -> Void         epilogue : % -> List(String)
+--R formula : % -> List(String)           hash : % -> SingleInteger
 --R latex : % -> String                   new : () -> %
---R prologue : % -> List String           ?~=? : (%,%) -> Boolean
+--R prologue : % -> List(String)          ?~=? : (%,%) -> Boolean
 --R convert : (OutputForm,Integer) -> %
---R setEpilogue! : (%,List String) -> List String
---R setFormula! : (%,List String) -> List String
---R setPrologue! : (%,List String) -> List String
+--R setEpilogue! : (%,List(String)) -> List(String)
+--R setFormula! : (%,List(String)) -> List(String)
+--R setPrologue! : (%,List(String)) -> List(String)
 --R
 --E 1
 
@@ -114043,7 +114308,7 @@ s := 3..10
 --R 
 --R
 --R   (1)  3..10
---R                                                Type: Segment PositiveInteger
+--R                                               Type: Segment(PositiveInteger)
 --E 1
 
 --S 2 of 10
@@ -114067,7 +114332,7 @@ t := 10..3 by -2
 --R 
 --R
 --R   (4)  10..3 by - 2
---R                                                Type: Segment PositiveInteger
+--R                                               Type: Segment(PositiveInteger)
 --E 4
 
 --S 5 of 10
@@ -114091,7 +114356,7 @@ l := [1..3, 5, 9, 15..11 by -1]
 --R 
 --R
 --R   (7)  [1..3,5..5,9..9,15..11 by - 1]
---R                                           Type: List Segment PositiveInteger
+--R                                         Type: List(Segment(PositiveInteger))
 --E 7
 
 --S 8 of 10
@@ -114099,7 +114364,7 @@ expand s
 --R 
 --R
 --R   (8)  [3,4,5,6,7,8,9,10]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 8
 
 --S 9 of 10
@@ -114107,7 +114372,7 @@ expand t
 --R 
 --R
 --R   (9)  [10,8,6,4]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 9
 
 --S 10 of 10
@@ -114115,7 +114380,7 @@ expand l
 --R 
 --R
 --R   (10)  [1,2,3,5,9,15,14,13,12,11]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 10
 )spool
 )lisp (bye)
@@ -114510,7 +114775,7 @@ s := set [x**2-1, y**2-1, z**2-1]
 --R
 --R          2      2      2
 --R   (1)  {x  - 1,y  - 1,z  - 1}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 1
 
 --S 2 of 20
@@ -114519,7 +114784,7 @@ t := set [x**i - i+1 for i in 2..10 | prime? i]
 --R
 --R          2      3      5      7
 --R   (2)  {x  - 1,x  - 2,x  - 4,x  - 6}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 2
 
 --S 3 of 20
@@ -114528,7 +114793,7 @@ i := intersect(s,t)
 --R
 --R          2
 --R   (3)  {x  - 1}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 3
 
 --S 4 of 20
@@ -114537,7 +114802,7 @@ u := union(s,t)
 --R
 --R          2      3      5      7      2      2
 --R   (4)  {x  - 1,x  - 2,x  - 4,x  - 6,y  - 1,z  - 1}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 4
 
 --S 5 of 20
@@ -114546,7 +114811,7 @@ difference(s,t)
 --R
 --R          2      2
 --R   (5)  {y  - 1,z  - 1}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 5
 
 --S 6 of 20
@@ -114555,7 +114820,7 @@ symmetricDifference(s,t)
 --R
 --R          3      5      7      2      2
 --R   (6)  {x  - 2,x  - 4,x  - 6,y  - 1,z  - 1}
---R                                                 Type: Set Polynomial Integer
+--R                                               Type: Set(Polynomial(Integer))
 --E 6
 
 --S 7 of 20
@@ -114595,7 +114860,7 @@ gs := set [g for i in 1..11 | primitive?(g := i::PF 11)]
 --R 
 --R
 --R   (11)  {2,6,7,8}
---R                                                      Type: Set PrimeField 11
+--R                                                    Type: Set(PrimeField(11))
 --E 11
 
 --S 12 of 20
@@ -114603,7 +114868,7 @@ complement gs
 --R 
 --R
 --R   (12)  {1,3,4,5,9,10,0}
---R                                                      Type: Set PrimeField 11
+--R                                                    Type: Set(PrimeField(11))
 --E 12
 
 --S 13 of 20
@@ -114611,7 +114876,7 @@ a := set [i**2 for i in 1..5]
 --R 
 --R
 --R   (13)  {1,4,9,16,25}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 13
 
 --S 14 of 20
@@ -114619,7 +114884,7 @@ insert!(32, a)
 --R 
 --R
 --R   (14)  {1,4,9,16,25,32}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 14
 
 --S 15 of 20
@@ -114627,7 +114892,7 @@ remove!(25, a)
 --R 
 --R
 --R   (15)  {1,4,9,16,32}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 15
 
 --S 16 of 20
@@ -114635,7 +114900,7 @@ a
 --R 
 --R
 --R   (16)  {1,4,9,16,32}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 16
 
 --S 17 of 20
@@ -114643,7 +114908,7 @@ b := b0 := set [i**2 for i in 1..5]
 --R 
 --R
 --R   (17)  {1,4,9,16,25}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 17
 
 --S 18 of 20
@@ -114651,7 +114916,7 @@ b := union(b, {32})
 --R 
 --R
 --R   (18)  {1,4,9,16,25,32}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 18
 
 --S 19 of 20
@@ -114659,7 +114924,7 @@ b := difference(b, {25})
 --R 
 --R
 --R   (19)  {1,4,9,16,32}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 19
 
 --S 20 of 20
@@ -114667,7 +114932,7 @@ b0
 --R 
 --R
 --R   (20)  {1,4,9,16,25}
---R                                                    Type: Set PositiveInteger
+--R                                                   Type: Set(PositiveInteger)
 --E 20
 )spool
 )lisp (bye)
@@ -115065,6 +115330,7 @@ Set(S:SetCategory): FiniteSetAggregate S == add
 
 --S 1 of 1
 )show SetOfMIntegersInOneToN
+--R 
 --R SetOfMIntegersInOneToN(m: PositiveInteger,n: PositiveInteger)  is a domain constructor
 --R Abbreviation for SetOfMIntegersInOneToN is SETMN 
 --R This constructor is not exposed in this frame.
@@ -115072,16 +115338,16 @@ Set(S:SetCategory): FiniteSetAggregate S == add
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
---R enumerate : () -> Vector %            hash : % -> SingleInteger
+--R enumerate : () -> Vector(%)           hash : % -> SingleInteger
 --R index : PositiveInteger -> %          latex : % -> String
 --R lookup : % -> PositiveInteger         random : () -> %
 --R size : () -> NonNegativeInteger       ?~=? : (%,%) -> Boolean
 --R delta : (%,PositiveInteger,PositiveInteger) -> NonNegativeInteger
---R elements : % -> List PositiveInteger
+--R elements : % -> List(PositiveInteger)
 --R incrementKthElement : (%,PositiveInteger) -> Union(%,"failed")
 --R member? : (PositiveInteger,%) -> Boolean
 --R replaceKthElement : (%,PositiveInteger,PositiveInteger) -> Union(%,"failed")
---R setOfMinN : List PositiveInteger -> %
+--R setOfMinN : List(PositiveInteger) -> %
 --R
 --E 1
 
@@ -115619,24 +115885,169 @@ SequentialDifferentialPolynomial(R):
 
 --S 1 of 1
 )show SequentialDifferentialVariable
---R SequentialDifferentialVariable S: OrderedSet  is a domain constructor
---R Abbreviation for SequentialDifferentialVariable is SDVAR 
+--R 
+--R SequentialDifferentialPolynomial(R: Ring)  is a domain constructor
+--R Abbreviation for SequentialDifferentialPolynomial is SDPOL 
 --R This constructor is not exposed in this frame.
---R Issue )edit bookvol10.3.pamphlet to see algebra source code for SDVAR 
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for SDPOL 
 --R
 --R------------------------------- Operations --------------------------------
---R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
---R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
---R ?>=? : (%,%) -> Boolean               coerce : S -> %
---R coerce : % -> OutputForm              differentiate : % -> %
---R hash : % -> SingleInteger             latex : % -> String
---R max : (%,%) -> %                      min : (%,%) -> %
---R order : % -> NonNegativeInteger       retract : % -> S
---R variable : % -> S                     weight : % -> NonNegativeInteger
---R ?~=? : (%,%) -> Boolean              
---R differentiate : (%,NonNegativeInteger) -> %
---R makeVariable : (S,NonNegativeInteger) -> %
---R retractIfCan : % -> Union(S,"failed")
+--R ?*? : (%,R) -> %                      ?*? : (R,%) -> %
+--R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
+--R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
+--R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
+--R -? : % -> %                           ?=? : (%,%) -> Boolean
+--R D : (%,(R -> R)) -> %                 D : % -> % if R has DIFRING
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,PositiveInteger) -> %        coefficients : % -> List(R)
+--R coerce : Symbol -> %                  coerce : R -> %
+--R coerce : Integer -> %                 coerce : % -> OutputForm
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
+--R ground : % -> R                       ground? : % -> Boolean
+--R hash : % -> SingleInteger             initial : % -> %
+--R isobaric? : % -> Boolean              latex : % -> String
+--R leadingCoefficient : % -> R           leadingMonomial : % -> %
+--R map : ((R -> R),%) -> %               monomial? : % -> Boolean
+--R monomials : % -> List(%)              one? : % -> Boolean
+--R order : % -> NonNegativeInteger       recip : % -> Union(%,"failed")
+--R reductum : % -> %                     retract : % -> Symbol
+--R retract : % -> R                      sample : () -> %
+--R separant : % -> %                     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 ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,NonNegativeInteger) -> %
+--R ?/? : (%,R) -> % if R has FIELD
+--R ?<? : (%,%) -> Boolean if R has ORDSET
+--R ?<=? : (%,%) -> Boolean if R has ORDSET
+--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 : (%,NonNegativeInteger) -> % if R has DIFRING
+--R D : (%,List(SequentialDifferentialVariable(Symbol)),List(NonNegativeInteger)) -> %
+--R D : (%,SequentialDifferentialVariable(Symbol),NonNegativeInteger) -> %
+--R D : (%,List(SequentialDifferentialVariable(Symbol))) -> %
+--R D : (%,SequentialDifferentialVariable(Symbol)) -> %
+--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(SequentialDifferentialVariable(Symbol)),List(NonNegativeInteger)) -> %
+--R coefficient : (%,SequentialDifferentialVariable(Symbol),NonNegativeInteger) -> %
+--R coefficient : (%,IndexedExponents(SequentialDifferentialVariable(Symbol))) -> 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 : SparseMultivariatePolynomial(R,Symbol) -> %
+--R coerce : SequentialDifferentialVariable(Symbol) -> %
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and R has PFECAT
+--R content : (%,SequentialDifferentialVariable(Symbol)) -> % if R has GCDDOM
+--R content : % -> R if R has GCDDOM
+--R convert : % -> InputForm if SequentialDifferentialVariable(Symbol) has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if SequentialDifferentialVariable(Symbol) has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if SequentialDifferentialVariable(Symbol) has KONVERT(PATTERN(FLOAT)) and R has KONVERT(PATTERN(FLOAT))
+--R degree : (%,Symbol) -> NonNegativeInteger
+--R degree : (%,List(SequentialDifferentialVariable(Symbol))) -> List(NonNegativeInteger)
+--R degree : (%,SequentialDifferentialVariable(Symbol)) -> NonNegativeInteger
+--R degree : % -> IndexedExponents(SequentialDifferentialVariable(Symbol))
+--R differentialVariables : % -> List(Symbol)
+--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 : (%,NonNegativeInteger) -> % if R has DIFRING
+--R differentiate : % -> % if R has DIFRING
+--R differentiate : (%,List(SequentialDifferentialVariable(Symbol)),List(NonNegativeInteger)) -> %
+--R differentiate : (%,SequentialDifferentialVariable(Symbol),NonNegativeInteger) -> %
+--R differentiate : (%,List(SequentialDifferentialVariable(Symbol))) -> %
+--R differentiate : (%,SequentialDifferentialVariable(Symbol)) -> %
+--R discriminant : (%,SequentialDifferentialVariable(Symbol)) -> % if R has COMRING
+--R eval : (%,List(Symbol),List(R)) -> % if R has DIFRING
+--R eval : (%,Symbol,R) -> % if R has DIFRING
+--R eval : (%,List(Symbol),List(%)) -> % if R has DIFRING
+--R eval : (%,Symbol,%) -> % if R has DIFRING
+--R eval : (%,List(SequentialDifferentialVariable(Symbol)),List(%)) -> %
+--R eval : (%,SequentialDifferentialVariable(Symbol),%) -> %
+--R eval : (%,List(SequentialDifferentialVariable(Symbol)),List(R)) -> %
+--R eval : (%,SequentialDifferentialVariable(Symbol),R) -> %
+--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 gcd : (%,%) -> % 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: SequentialDifferentialVariable(Symbol),exponent: NonNegativeInteger),"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 leader : % -> SequentialDifferentialVariable(Symbol)
+--R mainVariable : % -> Union(SequentialDifferentialVariable(Symbol),"failed")
+--R makeVariable : % -> (NonNegativeInteger -> %) if R has DIFRING
+--R makeVariable : Symbol -> (NonNegativeInteger -> %)
+--R mapExponents : ((IndexedExponents(SequentialDifferentialVariable(Symbol)) -> IndexedExponents(SequentialDifferentialVariable(Symbol))),%) -> %
+--R max : (%,%) -> % if R has ORDSET
+--R min : (%,%) -> % if R has ORDSET
+--R minimumDegree : (%,List(SequentialDifferentialVariable(Symbol))) -> List(NonNegativeInteger)
+--R minimumDegree : (%,SequentialDifferentialVariable(Symbol)) -> NonNegativeInteger
+--R minimumDegree : % -> IndexedExponents(SequentialDifferentialVariable(Symbol))
+--R monicDivide : (%,%,SequentialDifferentialVariable(Symbol)) -> Record(quotient: %,remainder: %)
+--R monomial : (%,List(SequentialDifferentialVariable(Symbol)),List(NonNegativeInteger)) -> %
+--R monomial : (%,SequentialDifferentialVariable(Symbol),NonNegativeInteger) -> %
+--R monomial : (R,IndexedExponents(SequentialDifferentialVariable(Symbol))) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),SequentialDifferentialVariable(Symbol)) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),SequentialDifferentialVariable(Symbol)) -> %
+--R numberOfMonomials : % -> NonNegativeInteger
+--R order : (%,Symbol) -> NonNegativeInteger
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SequentialDifferentialVariable(Symbol) has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SequentialDifferentialVariable(Symbol) has PATMAB(FLOAT) and R has PATMAB(FLOAT)
+--R pomopo! : (%,R,IndexedExponents(SequentialDifferentialVariable(Symbol)),%) -> %
+--R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
+--R primitivePart : (%,SequentialDifferentialVariable(Symbol)) -> % 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 resultant : (%,%,SequentialDifferentialVariable(Symbol)) -> % if R has COMRING
+--R retract : % -> SparseMultivariatePolynomial(R,Symbol)
+--R retract : % -> SequentialDifferentialVariable(Symbol)
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(SparseMultivariatePolynomial(R,Symbol),"failed")
+--R retractIfCan : % -> Union(Symbol,"failed")
+--R retractIfCan : % -> Union(SequentialDifferentialVariable(Symbol),"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(R,"failed")
+--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 subtractIfCan : (%,%) -> Union(%,"failed")
+--R totalDegree : (%,List(SequentialDifferentialVariable(Symbol))) -> 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 : (%,SequentialDifferentialVariable(Symbol)) -> SparseUnivariatePolynomial(%)
+--R variables : % -> List(SequentialDifferentialVariable(Symbol))
+--R weight : (%,Symbol) -> NonNegativeInteger
+--R weights : (%,Symbol) -> List(NonNegativeInteger)
+--R weights : % -> List(NonNegativeInteger)
 --R
 --E 1
 
@@ -115740,6 +116151,7 @@ SequentialDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S)
 
 --S 1 of 1
 )show SExpression
+--R 
 --R SExpression  is a domain constructor
 --R Abbreviation for SExpression is SEX 
 --R This constructor is not exposed in this frame.
@@ -115751,8 +116163,8 @@ SequentialDifferentialVariable(S:OrderedSet):DifferentialVariableCategory(S)
 --R cdr : % -> %                          coerce : % -> OutputForm
 --R convert : OutputForm -> %             convert : DoubleFloat -> %
 --R convert : Integer -> %                convert : Symbol -> %
---R convert : String -> %                 convert : List % -> %
---R destruct : % -> List %                ?.? : (%,List Integer) -> %
+--R convert : String -> %                 convert : List(%) -> %
+--R destruct : % -> List(%)               ?.? : (%,List(Integer)) -> %
 --R ?.? : (%,Integer) -> %                eq : (%,%) -> Boolean
 --R expr : % -> OutputForm                float : % -> DoubleFloat
 --R float? : % -> Boolean                 hash : % -> SingleInteger
@@ -115843,6 +116255,7 @@ SExpression()
 
 --S 1 of 1
 )show SExpressionOf
+--R 
 --R SExpressionOf(Str: SetCategory,Sym: SetCategory,Int: SetCategory,Flt: SetCategory,Expr: SetCategory)  is a domain constructor
 --R Abbreviation for SExpressionOf is SEXOF 
 --R This constructor is not exposed in this frame.
@@ -115854,8 +116267,8 @@ SExpression()
 --R cdr : % -> %                          coerce : % -> OutputForm
 --R convert : Expr -> %                   convert : Flt -> %
 --R convert : Int -> %                    convert : Sym -> %
---R convert : Str -> %                    convert : List % -> %
---R destruct : % -> List %                ?.? : (%,List Integer) -> %
+--R convert : Str -> %                    convert : List(%) -> %
+--R destruct : % -> List(%)               ?.? : (%,List(Integer)) -> %
 --R ?.? : (%,Integer) -> %                eq : (%,%) -> Boolean
 --R expr : % -> Expr                      float : % -> Flt
 --R float? : % -> Boolean                 hash : % -> SingleInteger
@@ -116005,7 +116418,8 @@ SExpressionOf(Str, Sym, Int, Flt, Expr): Decl == Body where
 
 --S 1 of 1
 )show SimpleAlgebraicExtension
---R SimpleAlgebraicExtension(R: CommutativeRing,UP: UnivariatePolynomialCategory R,M: UP)  is a domain constructor
+--R 
+--R SimpleAlgebraicExtension(R: CommutativeRing,UP: UnivariatePolynomialCategory(R),M: UP)  is a domain constructor
 --R Abbreviation for SimpleAlgebraicExtension is SAE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SAE 
@@ -116017,33 +116431,33 @@ SExpressionOf(Str, Sym, Int, Flt, Expr): Decl == Body where
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector %
+--R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector(%)
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              convert : UP -> %
---R convert : % -> UP                     convert : Vector R -> %
---R convert : % -> Vector R               coordinates : % -> Vector R
+--R convert : % -> UP                     convert : Vector(R) -> %
+--R convert : % -> Vector(R)              coordinates : % -> Vector(R)
 --R definingPolynomial : () -> UP         discriminant : () -> R
---R discriminant : Vector % -> R          generator : () -> %
+--R discriminant : Vector(%) -> R         generator : () -> %
 --R hash : % -> SingleInteger             inv : % -> % if R has FIELD
 --R latex : % -> String                   lift : % -> UP
 --R norm : % -> R                         one? : % -> Boolean
 --R rank : () -> PositiveInteger          recip : % -> Union(%,"failed")
---R reduce : UP -> %                      represents : Vector R -> %
+--R reduce : UP -> %                      represents : Vector(R) -> %
 --R retract : % -> R                      sample : () -> %
---R trace : % -> R                        traceMatrix : () -> Matrix R
+--R trace : % -> R                        traceMatrix : () -> Matrix(R)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> 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) -> %
 --R ?/? : (%,%) -> % if R has FIELD
 --R D : (%,(R -> R)) -> % if R has FIELD
 --R D : (%,(R -> R),NonNegativeInteger) -> % if R has FIELD
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has FIELD and R has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if R has FIELD and R has PDRING SYMBOL
---R D : (%,List Symbol) -> % if R has FIELD and R has PDRING SYMBOL
---R D : (%,Symbol) -> % if R has FIELD and R has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if R has FIELD and R has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if R has DIFRING and R has FIELD or R has FFIELDC
 --R D : % -> % if R has DIFRING and R has FIELD or R has FFIELDC
 --R ?^? : (%,Integer) -> % if R has FIELD
@@ -116053,75 +116467,75 @@ SExpressionOf(Str, Sym, Int, Flt, Expr): Decl == Body where
 --R characteristicPolynomial : % -> UP
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
 --R charthRoot : % -> % if R has FFIELDC
---R coerce : Fraction Integer -> % if R has FIELD or R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has FIELD or R has RETRACT(FRAC(INT))
 --R coerce : % -> % if R has FIELD
---R conditionP : Matrix % -> Union(Vector %,"failed") if R has FFIELDC
---R coordinates : Vector % -> Matrix R
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : (%,Vector %) -> Vector R
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if R has FFIELDC
+--R coordinates : Vector(%) -> Matrix(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : (%,Vector(%)) -> Vector(R)
 --R createPrimitiveElement : () -> % if R has FFIELDC
---R derivationCoordinates : (Vector %,(R -> R)) -> Matrix R if R has FIELD
+--R derivationCoordinates : (Vector(%),(R -> R)) -> Matrix(R) if R has FIELD
 --R differentiate : (%,(R -> R)) -> % if R has FIELD
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> % if R has FIELD
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has FIELD and R has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has FIELD and R has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if R has FIELD and R has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if R has FIELD and R has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if R has FIELD and R has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if R has FIELD and R has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if R has DIFRING and R has FIELD or R has FFIELDC
 --R differentiate : % -> % if R has DIFRING and R has FIELD or R has FFIELDC
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if R has FFIELDC
 --R discreteLog : % -> NonNegativeInteger if R has FFIELDC
 --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 factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if R has FFIELDC
+--R factor : % -> Factored(%) if R has FIELD
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if R has FFIELDC
 --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 index : PositiveInteger -> % if R has FINITE
 --R init : () -> % if R has FFIELDC
 --R lcm : (%,%) -> % if R has FIELD
---R lcm : List % -> % if R has FIELD
+--R lcm : List(%) -> % if R has FIELD
 --R lookup : % -> PositiveInteger if R has FINITE
 --R minimalPolynomial : % -> UP if R has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has FIELD
 --R nextItem : % -> Union(%,"failed") if R has FFIELDC
---R order : % -> OnePointCompletion PositiveInteger if R has FFIELDC
+--R order : % -> OnePointCompletion(PositiveInteger) if R has FFIELDC
 --R order : % -> PositiveInteger if R has FFIELDC
 --R prime? : % -> Boolean if R has FIELD
 --R primeFrobenius : % -> % if R has FFIELDC
 --R primeFrobenius : (%,NonNegativeInteger) -> % if R has FFIELDC
 --R primitive? : % -> Boolean if R has FFIELDC
 --R primitiveElement : () -> % if R has FFIELDC
---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 random : () -> % if R has FINITE
---R reduce : Fraction UP -> Union(%,"failed") 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 regularRepresentation : % -> Matrix R
---R regularRepresentation : (%,Vector %) -> Matrix R
+--R reduce : Fraction(UP) -> Union(%,"failed") 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 regularRepresentation : % -> Matrix(R)
+--R regularRepresentation : (%,Vector(%)) -> Matrix(R)
 --R ?rem? : (%,%) -> % if R has FIELD
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if R has FFIELDC
---R represents : (Vector R,Vector %) -> %
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT 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 retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
 --R size : () -> NonNegativeInteger if R has FINITE
 --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 tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if R has FFIELDC
---R traceMatrix : Vector % -> Matrix R
+--R traceMatrix : Vector(%) -> Matrix(R)
 --R unit? : % -> Boolean if R has FIELD
 --R unitCanonical : % -> % if R has FIELD
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has FIELD
@@ -116428,7 +116842,8 @@ SimpleAlgebraicExtension(R:CommutativeRing,
 
 --S 1 of 1
 )show SimpleFortranProgram
---R SimpleFortranProgram(R: OrderedSet,FS: FunctionSpace R)  is a domain constructor
+--R 
+--R SimpleFortranProgram(R: OrderedSet,FS: FunctionSpace(R))  is a domain constructor
 --R Abbreviation for SimpleFortranProgram is SFORT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SFORT 
@@ -117138,6 +117553,7 @@ SingletonAsOrderedSet(): OrderedSet with
 
 --S 1 of 1
 )show SparseMultivariatePolynomial
+--R 
 --R SparseMultivariatePolynomial(R: Ring,VarSet: OrderedSet)  is a domain constructor
 --R Abbreviation for SparseMultivariatePolynomial is SMP 
 --R This constructor is not exposed in this frame.
@@ -117149,26 +117565,25 @@ SingletonAsOrderedSet(): OrderedSet with
 --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 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 latex : % -> String                   leadingCoefficient : % -> R
 --R leadingMonomial : % -> %              map : ((R -> R),%) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
---R one? : % -> Boolean                   primitiveMonomials : % -> List %
---R recip : % -> Union(%,"failed")        reductum : % -> %
---R retract : % -> VarSet                 retract : % -> R
---R sample : () -> %                      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 monomial? : % -> Boolean              monomials : % -> List(%)
+--R one? : % -> Boolean                   recip : % -> Union(%,"failed")
+--R reductum : % -> %                     retract : % -> VarSet
+--R retract : % -> R                      sample : () -> %
+--R variables : % -> List(VarSet)         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
@@ -117176,89 +117591,92 @@ SingletonAsOrderedSet(): OrderedSet with
 --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 ?^? : (%,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 VarSet,List NonNegativeInteger) -> %
+--R coefficient : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R coefficient : (%,VarSet,NonNegativeInteger) -> %
---R coefficient : (%,IndexedExponents VarSet) -> R
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT
+--R coefficient : (%,IndexedExponents(VarSet)) -> R
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT)) or R has RETRACT(FRAC(INT))
 --R coerce : % -> % 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 : (%,VarSet) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---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 : % -> 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 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: 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 lcm : (%,%) -> % if R has GCDDOM
---R lcm : List % -> % if R has GCDDOM
+--R lcm : List(%) -> % 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 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 prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,VarSet) -> % 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 : (%,%,VarSet) -> % if R has COMRING
---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(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 squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PFECAT
 --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
 
@@ -117970,7 +118388,7 @@ xts:=x::TaylorSeries Fraction Integer
 --R 
 --R
 --R   (1)  x
---R                                          Type: TaylorSeries Fraction Integer
+--R                                        Type: TaylorSeries(Fraction(Integer))
 --E 1
 
 --S 2 of 10
@@ -117978,7 +118396,7 @@ yts:=y::TaylorSeries Fraction Integer
 --R 
 --R
 --R   (2)  y
---R                                          Type: TaylorSeries Fraction Integer
+--R                                        Type: TaylorSeries(Fraction(Integer))
 --E 2
 
 --S 3 of 10
@@ -117986,7 +118404,7 @@ zts:=z::TaylorSeries Fraction Integer
 --R 
 --R
 --R   (3)  z
---R                                          Type: TaylorSeries Fraction Integer
+--R                                        Type: TaylorSeries(Fraction(Integer))
 --E 3
 
 --S 4 of 10
@@ -117996,7 +118414,7 @@ t1:=sin(xts)
 --R            1  3    1   5     1   7      1    9
 --R   (4)  x - - x  + --- x  - ---- x  + ------ x  + O(11)
 --R            6      120      5040      362880
---R                                          Type: TaylorSeries Fraction Integer
+--R                                        Type: TaylorSeries(Fraction(Integer))
 --E 4
 
 --S 5 of 10
@@ -118006,7 +118424,7 @@ coefficient(t1,3)
 --R          1  3
 --R   (5)  - - x
 --R          6
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 5
 
 --S 6 of 10
@@ -118016,7 +118434,7 @@ coefficient(t1,monomial(3,x)$IndexedExponents Symbol)
 --R          1
 --R   (6)  - -
 --R          6
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 6
 
 --S 7 of 10
@@ -118051,7 +118469,7 @@ t2:=sin(xts + yts)
 --R          2880        4320        10080        40320       362880
 --R   + 
 --R     O(11)
---R                                          Type: TaylorSeries Fraction Integer
+--R                                        Type: TaylorSeries(Fraction(Integer))
 --E 7
 
 --S 8 of 10
@@ -118061,7 +118479,7 @@ coefficient(t2,3)
 --R          1  3   1    2   1  2    1  3
 --R   (8)  - - y  - - x y  - - x y - - x
 --R          6      2        2       6
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 8
 
 --S 9 of 10
@@ -118071,7 +118489,7 @@ coefficient(t2,monomial(3,x)$IndexedExponents Symbol)
 --R          1
 --R   (9)  - -
 --R          6
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 9
 
 --S 10 of 10
@@ -118086,7 +118504,7 @@ polynomial(t2,5)
 --R      1   5   1  3
 --R     --- x  - - x  + x
 --R     120      6
---R                                            Type: Polynomial Fraction Integer
+--R                                          Type: Polynomial(Fraction(Integer))
 --E 10
 
 )spool
@@ -118625,7 +119043,7 @@ keys t
 --R 
 --R
 --R   (6)  [4,3]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 6
 
 --S 7 of 7
@@ -118633,7 +119051,7 @@ entries t
 --R 
 --R
 --R   (7)  ["Number four","Number three"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 7
 )spool
 )lisp (bye)
@@ -118803,6 +119221,7 @@ SparseTable(Key:SetCategory, Ent:SetCategory, dent:Ent) ==
 
 --S 1 of 1
 )show SparseUnivariateLaurentSeries
+--R 
 --R SparseUnivariateLaurentSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for SparseUnivariateLaurentSeries is SULS 
 --R This constructor is not exposed in this frame.
@@ -118816,7 +119235,7 @@ SparseTable(Key:SetCategory, Ent:SetCategory, dent:Ent) ==
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficient : (%,Integer) -> Coef     coerce : Variable var -> %
+--R coefficient : (%,Integer) -> Coef     coerce : Variable(var) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> Integer
 --R ?.? : (%,Integer) -> Coef             extend : (%,Integer) -> %
@@ -118830,13 +119249,13 @@ SparseTable(Key:SetCategory, Ent:SetCategory, dent:Ent) ==
 --R removeZeroes : % -> %                 sample : () -> %
 --R truncate : (%,Integer) -> %           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 ?*? : (SparseUnivariateTaylorSeries(Coef,var,cen),%) -> % if Coef has FIELD
 --R ?*? : (%,SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if Coef has FIELD
 --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 ?/? : (SparseUnivariateTaylorSeries(Coef,var,cen),SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if Coef has FIELD
@@ -118846,10 +119265,10 @@ SparseTable(Key:SetCategory, Ent:SetCategory, dent:Ent) ==
 --R ?<=? : (%,%) -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R ?>? : (%,%) -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R ?>=? : (%,%) -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
---R D : (%,Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R D : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,(SparseUnivariateTaylorSeries(Coef,var,cen) -> SparseUnivariateTaylorSeries(Coef,var,cen)),NonNegativeInteger) -> % if Coef has FIELD
@@ -118857,144 +119276,144 @@ SparseTable(Key:SetCategory, Ent:SetCategory, dent:Ent) ==
 --R ?^? : (%,Integer) -> % if Coef has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
---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 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 : (%,Integer) -> Coef if Coef has **: (Coef,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 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 SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or 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 ceiling : % -> SparseUnivariateTaylorSeries(Coef,var,cen) if SparseUnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has CHARNZ and Coef has FIELD or Coef has CHARNZ
---R coerce : Fraction Integer -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD or Coef has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD or Coef has ALGEBRA(FRAC(INT))
 --R coerce : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
---R coerce : Symbol -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R coerce : Symbol -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R coerce : SparseUnivariateTaylorSeries(Coef,var,cen) -> %
 --R coerce : Coef -> % if Coef has COMRING
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R convert : % -> Pattern Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT PATTERN INT and Coef has FIELD
---R convert : % -> Pattern Float if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT PATTERN FLOAT and Coef has FIELD
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R convert : % -> Pattern(Integer) if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT(PATTERN(INT)) and Coef has FIELD
+--R convert : % -> Pattern(Float) if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT(PATTERN(FLOAT)) and Coef has FIELD
 --R convert : % -> DoubleFloat if SparseUnivariateTaylorSeries(Coef,var,cen) has REAL and Coef has FIELD
 --R convert : % -> Float if SparseUnivariateTaylorSeries(Coef,var,cen) has REAL and Coef has FIELD
---R convert : % -> InputForm if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT INFORM and Coef has FIELD
---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 convert : % -> InputForm if SparseUnivariateTaylorSeries(Coef,var,cen) has KONVERT(INFORM) and Coef has FIELD
+--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 denom : % -> SparseUnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
 --R denominator : % -> % if Coef has FIELD
---R differentiate : (%,Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R differentiate : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Variable var) -> %
+--R differentiate : (%,Variable(var)) -> %
 --R differentiate : (%,(SparseUnivariateTaylorSeries(Coef,var,cen) -> SparseUnivariateTaylorSeries(Coef,var,cen)),NonNegativeInteger) -> % if Coef has FIELD
 --R differentiate : (%,(SparseUnivariateTaylorSeries(Coef,var,cen) -> SparseUnivariateTaylorSeries(Coef,var,cen))) -> % if Coef has FIELD
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if Coef has FIELD
 --R ?.? : (%,SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has ELTAB(SUTS(Coef,var,cen),SUTS(Coef,var,cen)) and Coef has FIELD
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger if Coef has FIELD
---R eval : (%,List SparseUnivariateTaylorSeries(Coef,var,cen),List SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB SUTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,SparseUnivariateTaylorSeries(Coef,var,cen),SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB SUTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,Equation SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB SUTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,List Equation SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB SUTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,List Symbol,List SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,SUTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(SparseUnivariateTaylorSeries(Coef,var,cen)),List(SparseUnivariateTaylorSeries(Coef,var,cen))) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB(SUTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,SparseUnivariateTaylorSeries(Coef,var,cen),SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB(SUTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,Equation(SparseUnivariateTaylorSeries(Coef,var,cen))) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB(SUTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(Equation(SparseUnivariateTaylorSeries(Coef,var,cen)))) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EVALAB(SUTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(Symbol),List(SparseUnivariateTaylorSeries(Coef,var,cen))) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,SUTS(Coef,var,cen)) and Coef has FIELD
 --R eval : (%,Symbol,SparseUnivariateTaylorSeries(Coef,var,cen)) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,SUTS(Coef,var,cen)) and Coef has FIELD
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,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,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 SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --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 factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R factor : % -> Factored(%) if Coef has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
 --R floor : % -> SparseUnivariateTaylorSeries(Coef,var,cen) if SparseUnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
 --R fractionPart : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has EUCDOM and 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 gcd : List(%) -> % if Coef has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if Coef has FIELD
 --R init : () -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has STEP and 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 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 laurent : (Integer,SparseUnivariateTaylorSeries(Coef,var,cen)) -> %
 --R lcm : (%,%) -> % if Coef has FIELD
---R lcm : List % -> % if Coef has FIELD
---R log : % -> % if Coef has ALGEBRA FRAC INT
+--R lcm : List(%) -> % if Coef has FIELD
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R map : ((SparseUnivariateTaylorSeries(Coef,var,cen) -> SparseUnivariateTaylorSeries(Coef,var,cen)),%) -> % if Coef has FIELD
 --R max : (%,%) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R min : (%,%) -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
 --R monomial : (%,SingletonAsOrderedSet,Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if Coef has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if Coef has FIELD
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R negative? : % -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
 --R nextItem : % -> Union(%,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has STEP and Coef has FIELD
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R numer : % -> SparseUnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
 --R numerator : % -> % if Coef has FIELD
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SparseUnivariateTaylorSeries(Coef,var,cen) has PATMAB FLOAT and Coef has FIELD
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SparseUnivariateTaylorSeries(Coef,var,cen) has PATMAB INT and Coef has FIELD
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if SparseUnivariateTaylorSeries(Coef,var,cen) has PATMAB(FLOAT) and Coef has FIELD
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if SparseUnivariateTaylorSeries(Coef,var,cen) has PATMAB(INT) and Coef has FIELD
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
 --R positive? : % -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
 --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 random : () -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
---R rationalFunction : (%,Integer,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R rationalFunction : (%,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R reducedSystem : Matrix % -> Matrix Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if SparseUnivariateTaylorSeries(Coef,var,cen) has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix SparseUnivariateTaylorSeries(Coef,var,cen),vec: Vector SparseUnivariateTaylorSeries(Coef,var,cen)) if Coef has FIELD
---R reducedSystem : Matrix % -> Matrix SparseUnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
+--R rationalFunction : (%,Integer,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R rationalFunction : (%,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if SparseUnivariateTaylorSeries(Coef,var,cen) has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if SparseUnivariateTaylorSeries(Coef,var,cen) has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(SparseUnivariateTaylorSeries(Coef,var,cen)),vec: Vector(SparseUnivariateTaylorSeries(Coef,var,cen))) if Coef has FIELD
+--R reducedSystem : Matrix(%) -> Matrix(SparseUnivariateTaylorSeries(Coef,var,cen)) if Coef has FIELD
 --R ?rem? : (%,%) -> % if Coef has FIELD
---R retract : % -> Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retract : % -> Fraction Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retract : % -> Symbol if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R retract : % -> Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retract : % -> Fraction(Integer) if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retract : % -> Symbol if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R retract : % -> SparseUnivariateTaylorSeries(Coef,var,cen)
---R retractIfCan : % -> Union(Integer,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Fraction Integer,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Symbol,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R retractIfCan : % -> Union(Integer,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Symbol,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R retractIfCan : % -> Union(SparseUnivariateTaylorSeries(Coef,var,cen),"failed")
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: Integer,c: Coef) -> %
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: Integer,c: Coef)) -> %
 --R sign : % -> Integer if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R sizeLess? : (%,%) -> Boolean if Coef has FIELD
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
---R squareFree : % -> Factored % if Coef has FIELD
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and 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 squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if Coef has ALGEBRA FRAC INT
---R tanh : % -> % if Coef has ALGEBRA FRAC INT
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R taylor : % -> SparseUnivariateTaylorSeries(Coef,var,cen)
 --R taylorIfCan : % -> Union(SparseUnivariateTaylorSeries(Coef,var,cen),"failed")
 --R taylorRep : % -> SparseUnivariateTaylorSeries(Coef,var,cen)
---R terms : % -> Stream Record(k: Integer,c: Coef)
+--R terms : % -> Stream(Record(k: Integer,c: Coef))
 --R truncate : (%,Integer,Integer) -> %
 --R unit? : % -> Boolean if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --R unitCanonical : % -> % if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if SparseUnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or SparseUnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R wholePart : % -> SparseUnivariateTaylorSeries(Coef,var,cen) if SparseUnivariateTaylorSeries(Coef,var,cen) has EUCDOM and Coef has FIELD
 --R
 --E 1
@@ -120065,7 +120484,8 @@ unfortunately.
 
 --S 1 of 1
 )show SparseUnivariatePolynomialExpressions
---R SparseUnivariatePolynomialExpressions R: Ring  is a domain constructor
+--R 
+--R SparseUnivariatePolynomialExpressions(R: Ring)  is a domain constructor
 --R Abbreviation for SparseUnivariatePolynomialExpressions is SUPEXPR 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SUPEXPR 
@@ -120079,24 +120499,23 @@ unfortunately.
 --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                   leadingCoefficient : % -> R
 --R leadingMonomial : % -> %              map : ((R -> R),%) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R one? : % -> Boolean                   pi : () -> % if R has TRANFUN
---R primitiveMonomials : % -> List %      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 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 ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,%) -> % if R has TRANFUN
 --R ?**? : (%,NonNegativeInteger) -> %
@@ -120106,13 +120525,13 @@ unfortunately.
 --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 acos : % -> % if R has TRANFUN
@@ -120131,115 +120550,118 @@ unfortunately.
 --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 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 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 cos : % -> % if R has TRANFUN
 --R cosh : % -> % if R has TRANFUN
 --R cot : % -> % if R has TRANFUN
 --R coth : % -> % if R has TRANFUN
 --R csc : % -> % if R has TRANFUN
 --R csch : % -> % if R has TRANFUN
---R degree : (%,List SingletonAsOrderedSet) -> List NonNegativeInteger
+--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 eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
 --R exp : % -> % if R has TRANFUN
---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 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 gcd : (%,%) -> % if R has GCDDOM
---R gcd : List % -> % if R has GCDDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM
---R integrate : % -> % if R has ALGEBRA FRAC INT
+--R gcd : List(%) -> % if R has GCDDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GCDDOM
+--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 log : % -> % if R has TRANFUN
 --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 : % -> 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 sec : % -> % if R has TRANFUN
 --R sech : % -> % if R has TRANFUN
@@ -120249,24 +120671,24 @@ unfortunately.
 --R sin : % -> % if R has TRANFUN
 --R sinh : % -> % if R has TRANFUN
 --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 tan : % -> % if R has TRANFUN
 --R tanh : % -> % if R has TRANFUN
---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
 
@@ -120491,6 +120913,7 @@ SparseUnivariatePolynomialExpressions(R: Ring): Exports == Implementation where
 
 --S 1 of 1
 )show SparseUnivariatePuiseuxSeries
+--R 
 --R SparseUnivariatePuiseuxSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for SparseUnivariatePuiseuxSeries is SUPXS 
 --R This constructor is not exposed in this frame.
@@ -120504,131 +120927,131 @@ SparseUnivariatePolynomialExpressions(R: Ring): 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 : SparseUnivariateTaylorSeries(Coef,var,cen) -> %
 --R coerce : SparseUnivariateLaurentSeries(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 laurent : % -> SparseUnivariateLaurentSeries(Coef,var,cen)
 --R laurentIfCan : % -> Union(SparseUnivariateLaurentSeries(Coef,var,cen),"failed")
 --R laurentRep : % -> SparseUnivariateLaurentSeries(Coef,var,cen)
 --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 puiseux : (Fraction Integer,SparseUnivariateLaurentSeries(Coef,var,cen)) -> %
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if Coef has FIELD
+--R puiseux : (Fraction(Integer),SparseUnivariateLaurentSeries(Coef,var,cen)) -> %
 --R ?quo? : (%,%) -> % if Coef has FIELD
---R rationalPower : % -> Fraction Integer
+--R rationalPower : % -> Fraction(Integer)
 --R ?rem? : (%,%) -> % if Coef has FIELD
 --R retract : % -> SparseUnivariateTaylorSeries(Coef,var,cen)
 --R retract : % -> SparseUnivariateLaurentSeries(Coef,var,cen)
 --R retractIfCan : % -> Union(SparseUnivariateTaylorSeries(Coef,var,cen),"failed")
 --R retractIfCan : % -> Union(SparseUnivariateLaurentSeries(Coef,var,cen),"failed")
---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
 
@@ -120864,7 +121287,8 @@ SparseUnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show SparseUnivariateSkewPolynomial
---R SparseUnivariateSkewPolynomial(R: Ring,sigma: Automorphism R,delta: (R -> R))  is a domain constructor
+--R 
+--R SparseUnivariateSkewPolynomial(R: Ring,sigma: Automorphism(R),delta: (R -> R))  is a domain constructor
 --R Abbreviation for SparseUnivariateSkewPolynomial is ORESUP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ORESUP 
@@ -120877,7 +121301,7 @@ SparseUnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        apply : (%,R,R) -> R
---R coefficients : % -> List R            coerce : R -> %
+--R coefficients : % -> List(R)           coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> NonNegativeInteger      hash : % -> SingleInteger
 --R latex : % -> String                   leadingCoefficient : % -> R
@@ -120890,7 +121314,7 @@ SparseUnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R coefficient : (%,NonNegativeInteger) -> R
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R content : % -> R if R has GCDDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R leftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
@@ -120906,11 +121330,11 @@ SparseUnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 --R monomial : (R,NonNegativeInteger) -> %
 --R outputForm : (%,OutputForm) -> OutputForm
 --R primitivePart : % -> % if R has GCDDOM
---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 rightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R rightExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD
 --R rightExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
@@ -121043,6 +121467,7 @@ SparseUnivariateSkewPolynomial(R:Ring, sigma:Automorphism R, delta: R -> R):
 
 --S 1 of 1
 )show SparseUnivariateTaylorSeries
+--R 
 --R SparseUnivariateTaylorSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for SparseUnivariateTaylorSeries is SUTS 
 --R This constructor is not exposed in this frame.
@@ -121056,7 +121481,7 @@ SparseUnivariateSkewPolynomial(R:Ring, sigma:Automorphism R, delta: R -> R):
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficients : % -> Stream Coef       coerce : Variable var -> %
+--R coefficients : % -> Stream(Coef)      coerce : Variable(var) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> NonNegativeInteger
 --R hash : % -> SingleInteger             latex : % -> String
@@ -121065,95 +121490,95 @@ SparseUnivariateSkewPolynomial(R:Ring, sigma:Automorphism R, delta: R -> R):
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
 --R pole? : % -> Boolean                  quoByVar : % -> %
 --R recip : % -> Union(%,"failed")        reductum : % -> %
---R sample : () -> %                      series : Stream Coef -> %
+--R sample : () -> %                      series : Stream(Coef) -> %
 --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 ?**? : (%,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 ?**? : (%,Coef) -> % if Coef has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --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 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 : (%,NonNegativeInteger) -> Coef if Coef has **: (Coef,NonNegativeInteger) -> 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 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 : (%,NonNegativeInteger) -> Coef
 --R coerce : UnivariatePolynomial(var,Coef) -> %
 --R coerce : Coef -> % if Coef has COMRING
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
---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 coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--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 *: (NonNegativeInteger,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?.? : (%,%) -> % if NonNegativeInteger has SGROUP
 --R ?.? : (%,NonNegativeInteger) -> Coef
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,NonNegativeInteger) -> Coef
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,NonNegativeInteger) -> Coef
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
---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 log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--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 log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (Coef,NonNegativeInteger) -> %
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,NonNegativeInteger) -> NonNegativeInteger
---R pi : () -> % if Coef has ALGEBRA FRAC INT
---R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial Coef
---R polynomial : (%,NonNegativeInteger) -> Polynomial Coef
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: NonNegativeInteger,c: Coef) -> %
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
+--R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial(Coef)
+--R polynomial : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: NonNegativeInteger,c: Coef)) -> %
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
 --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: NonNegativeInteger,c: Coef)
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: NonNegativeInteger,c: Coef))
 --R truncate : (%,NonNegativeInteger,NonNegativeInteger) -> %
 --R truncate : (%,NonNegativeInteger) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
 --R univariatePolynomial : (%,NonNegativeInteger) -> UnivariatePolynomial(var,Coef)
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -121669,6 +122094,7 @@ SparseUnivariateTaylorSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show SplitHomogeneousDirectProduct
+--R 
 --R SplitHomogeneousDirectProduct(dimtot: NonNegativeInteger,dim1: NonNegativeInteger,S: OrderedAbelianMonoidSup)  is a domain constructor
 --R Abbreviation for SplitHomogeneousDirectProduct is SHDP 
 --R This constructor is not exposed in this frame.
@@ -121676,12 +122102,12 @@ SparseUnivariateTaylorSeries(Coef,var,cen): Exports == Implementation 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
@@ -121703,10 +122129,10 @@ SparseUnivariateTaylorSeries(Coef,var,cen): 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
@@ -121715,26 +122141,26 @@ SparseUnivariateTaylorSeries(Coef,var,cen): 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
@@ -121747,27 +122173,27 @@ SparseUnivariateTaylorSeries(Coef,var,cen): 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
@@ -121947,6 +122373,7 @@ SplitHomogeneousDirectProduct(dimtot,dim1,S) : T == C where
 
 --S 1 of 1
 )show SplittingNode
+--R 
 --R SplittingNode(V: Join(SetCategory,Aggregate),C: Join(SetCategory,Aggregate))  is a domain constructor
 --R Abbreviation for SplittingNode is SPLNODE 
 --R This constructor is not exposed in this frame.
@@ -121954,15 +122381,16 @@ SplitHomogeneousDirectProduct(dimtot,dim1,S) : T == C where
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
---R condition : % -> C                    construct : (V,List C) -> List %
---R construct : (V,C) -> %                construct : (V,C,Boolean) -> %
---R copy : % -> %                         empty : () -> %
---R empty? : % -> Boolean                 hash : % -> SingleInteger
---R latex : % -> String                   setCondition! : (%,C) -> %
---R setEmpty! : % -> %                    setStatus! : (%,Boolean) -> %
---R setValue! : (%,V) -> %                status : % -> Boolean
---R value : % -> V                        ?~=? : (%,%) -> Boolean
---R construct : List Record(val: V,tower: C) -> List %
+--R condition : % -> C                    construct : (V,C) -> %
+--R construct : (V,C,Boolean) -> %        copy : % -> %
+--R empty : () -> %                       empty? : % -> Boolean
+--R hash : % -> SingleInteger             latex : % -> String
+--R setCondition! : (%,C) -> %            setEmpty! : % -> %
+--R setStatus! : (%,Boolean) -> %         setValue! : (%,V) -> %
+--R status : % -> Boolean                 value : % -> V
+--R ?~=? : (%,%) -> Boolean              
+--R construct : (V,List(C)) -> List(%)
+--R construct : List(Record(val: V,tower: C)) -> List(%)
 --R construct : Record(val: V,tower: C) -> %
 --R infLex? : (%,%,((V,V) -> Boolean),((C,C) -> Boolean)) -> Boolean
 --R subNode? : (%,%,((C,C) -> Boolean)) -> Boolean
@@ -122183,18 +122611,19 @@ SplittingNode(V,C) : Exports == Implementation where
 
 --S 1 of 1
 )show SplittingTree
+--R 
 --R SplittingTree(V: Join(SetCategory,Aggregate),C: Join(SetCategory,Aggregate))  is a domain constructor
 --R Abbreviation for SplittingTree is SPLTREE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SPLTREE 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                conditions : % -> List C
---R construct : (V,C,V,List C) -> %       construct : (V,C,List %) -> %
+--R children : % -> List(%)               conditions : % -> List(C)
+--R construct : (V,C,V,List(C)) -> %      construct : (V,C,List(%)) -> %
 --R copy : % -> %                         cyclic? : % -> Boolean
 --R distance : (%,%) -> Integer           empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R leaf? : % -> Boolean                  nodes : % -> List %
+--R leaf? : % -> Boolean                  nodes : % -> List(%)
 --R sample : () -> %                      updateStatus! : % -> %
 --R value : % -> SplittingNode(V,C)      
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -122202,38 +122631,38 @@ SplittingNode(V,C) : Exports == Implementation where
 --R any? : ((SplittingNode(V,C) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R child? : (%,%) -> Boolean if SplittingNode(V,C) has SETCAT
 --R coerce : % -> OutputForm if SplittingNode(V,C) has SETCAT
---R construct : (V,C,List SplittingNode(V,C)) -> %
+--R construct : (V,C,List(SplittingNode(V,C))) -> %
 --R construct : SplittingNode(V,C) -> %
 --R count : (SplittingNode(V,C),%) -> NonNegativeInteger if $ has finiteAggregate and SplittingNode(V,C) has SETCAT
 --R count : ((SplittingNode(V,C) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R ?.value : (%,value) -> SplittingNode(V,C)
---R eval : (%,List SplittingNode(V,C),List SplittingNode(V,C)) -> % if SplittingNode(V,C) has EVALAB SPLNODE(V,C) and SplittingNode(V,C) has SETCAT
---R eval : (%,SplittingNode(V,C),SplittingNode(V,C)) -> % if SplittingNode(V,C) has EVALAB SPLNODE(V,C) and SplittingNode(V,C) has SETCAT
---R eval : (%,Equation SplittingNode(V,C)) -> % if SplittingNode(V,C) has EVALAB SPLNODE(V,C) and SplittingNode(V,C) has SETCAT
---R eval : (%,List Equation SplittingNode(V,C)) -> % if SplittingNode(V,C) has EVALAB SPLNODE(V,C) and SplittingNode(V,C) has SETCAT
+--R eval : (%,List(SplittingNode(V,C)),List(SplittingNode(V,C))) -> % if SplittingNode(V,C) has EVALAB(SPLNODE(V,C)) and SplittingNode(V,C) has SETCAT
+--R eval : (%,SplittingNode(V,C),SplittingNode(V,C)) -> % if SplittingNode(V,C) has EVALAB(SPLNODE(V,C)) and SplittingNode(V,C) has SETCAT
+--R eval : (%,Equation(SplittingNode(V,C))) -> % if SplittingNode(V,C) has EVALAB(SPLNODE(V,C)) and SplittingNode(V,C) has SETCAT
+--R eval : (%,List(Equation(SplittingNode(V,C)))) -> % if SplittingNode(V,C) has EVALAB(SPLNODE(V,C)) and SplittingNode(V,C) has SETCAT
 --R every? : ((SplittingNode(V,C) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extractSplittingLeaf : % -> Union(%,"failed")
 --R hash : % -> SingleInteger if SplittingNode(V,C) has SETCAT
 --R latex : % -> String if SplittingNode(V,C) has SETCAT
---R leaves : % -> List SplittingNode(V,C)
+--R leaves : % -> List(SplittingNode(V,C))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map : ((SplittingNode(V,C) -> SplittingNode(V,C)),%) -> %
 --R map! : ((SplittingNode(V,C) -> SplittingNode(V,C)),%) -> % if $ has shallowlyMutable
 --R member? : (SplittingNode(V,C),%) -> Boolean if $ has finiteAggregate and SplittingNode(V,C) has SETCAT
---R members : % -> List SplittingNode(V,C) if $ has finiteAggregate
+--R members : % -> List(SplittingNode(V,C)) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if SplittingNode(V,C) has SETCAT
 --R nodeOf? : (SplittingNode(V,C),%) -> Boolean
---R parts : % -> List SplittingNode(V,C) if $ has finiteAggregate
+--R parts : % -> List(SplittingNode(V,C)) if $ has finiteAggregate
 --R remove : (SplittingNode(V,C),%) -> %
 --R remove! : (SplittingNode(V,C),%) -> %
---R result : % -> List Record(val: V,tower: C)
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R result : % -> List(Record(val: V,tower: C))
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,value,SplittingNode(V,C)) -> SplittingNode(V,C) if $ has shallowlyMutable
 --R setvalue! : (%,SplittingNode(V,C)) -> SplittingNode(V,C) if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
---R splitNodeOf! : (%,%,List SplittingNode(V,C),((C,C) -> Boolean)) -> %
---R splitNodeOf! : (%,%,List SplittingNode(V,C)) -> %
+--R splitNodeOf! : (%,%,List(SplittingNode(V,C)),((C,C) -> Boolean)) -> %
+--R splitNodeOf! : (%,%,List(SplittingNode(V,C))) -> %
 --R subNodeOf? : (SplittingNode(V,C),%,((C,C) -> Boolean)) -> Boolean
 --R ?~=? : (%,%) -> Boolean if SplittingNode(V,C) has SETCAT
 --R
@@ -122644,14 +123073,14 @@ ls : List Symbol := [x,y,z,t]
 --R 
 --R
 --R   (2)  [x,y,z,t]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 23
 V := OVAR(ls)
 --R 
 --R
---R   (3)  OrderedVariableList [x,y,z,t]
+--R   (3)  OrderedVariableList([x,y,z,t])
 --R                                                                 Type: Domain
 --E 3
 
@@ -122659,7 +123088,7 @@ V := OVAR(ls)
 E := IndexedExponents V
 --R 
 --R
---R   (4)  IndexedExponents OrderedVariableList [x,y,z,t]
+--R   (4)  IndexedExponents(OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 4
 
@@ -122667,7 +123096,8 @@ E := IndexedExponents V
 P := NSMP(R, V)
 --R 
 --R
---R   (5)  NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--R   (5)
+--R   NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 5
 
@@ -122676,7 +123106,7 @@ x: P := 'x
 --R 
 --R
 --R   (6)  x
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 6
 
 --S 7 of 23
@@ -122684,7 +123114,7 @@ y: P := 'y
 --R 
 --R
 --R   (7)  y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 7
 
 --S 8 of 23
@@ -122692,7 +123122,7 @@ z: P := 'z
 --R 
 --R
 --R   (8)  z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 8
 
 --S 9 of 23
@@ -122700,7 +123130,7 @@ t: P := 't
 --R 
 --R
 --R   (9)  t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 9
 
 --S 10 of 23
@@ -122708,9 +123138,9 @@ ST := SREGSET(R,E,V,P)
 --R 
 --R
 --R   (10)
---R  SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [
---R  x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Intege
---R  r,OrderedVariableList [x,y,z,t]))
+--R  SquareFreeRegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([
+--R  x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Int
+--R  eger,OrderedVariableList([x,y,z,t])))
 --R                                                                 Type: Domain
 --E 10
 
@@ -122720,7 +123150,7 @@ p1 := x ** 31 - x ** 6 - x - y
 --R
 --R          31    6
 --R   (11)  x   - x  - x - y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 11
 
 --S 12 of 23
@@ -122729,7 +123159,7 @@ p2 := x ** 8  - z
 --R
 --R          8
 --R   (12)  x  - z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 12
 
 --S 13 of 23
@@ -122738,7 +123168,7 @@ p3 := x ** 10 - t
 --R
 --R          10
 --R   (13)  x   - t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 13
 
 --S 14 of 23
@@ -122747,7 +123177,7 @@ lp := [p1, p2, p3]
 --R
 --R           31    6          8      10
 --R   (14)  [x   - x  - x - y,x  - z,x   - t]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--IType: List(NewSparseMultivariatePolynomial(Integer,...
 --E 14
 
 --S 15 of 23
@@ -122756,7 +123186,7 @@ zeroSetSplit(lp)$ST
 --R
 --R            5    4      2     3     8     5    3    2   4                2
 --R   (15)  [{z  - t ,t z y  + 2z y - t  + 2t  + t  - t ,(t  - t)x - t y - z }]
---RType: List SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(SquareFreeRegularTriangularSet(Integer,...
 --E 15
 
 --S 16 of 23
@@ -122768,7 +123198,7 @@ zeroSetSplit(lp,false)$ST
 --R   [{z  - t ,t z y  + 2z y - t  + 2t  + t  - t ,(t  - t)x - t y - z },
 --R      3      5            2    2
 --R    {t  - 1,z  - t,t y + z ,z x  - t}, {t,z,y,x}]
---RType: List SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(SquareFreeRegularTriangularSet(Integer,...
 --E 16
 
 --S 17 of 23
@@ -122776,9 +123206,9 @@ T := REGSET(R,E,V,P)
 --R 
 --R
 --R   (17)
---R  RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],O
---R  rderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedV
---R  ariableList [x,y,z,t]))
+--R  RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t]))
+--R  ,OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,Order
+--R  edVariableList([x,y,z,t])))
 --R                                                                 Type: Domain
 --E 17
 
@@ -122791,7 +123221,7 @@ lts := zeroSetSplit(lp,false)$T
 --R   [{z  - t ,t z y  + 2z y - t  + 2t  + t  - t ,(t  - t)x - t y - z },
 --R      3      5          2     3         2
 --R    {t  - 1,z  - t,t z y  + 2z y + 1,z x  - t}, {t,z,y,x}]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 18
 
 --S 19 of 23
@@ -122800,7 +123230,7 @@ ts := lts.2
 --R
 --R           3      5          2     3         2
 --R   (19)  {t  - 1,z  - t,t z y  + 2z y + 1,z x  - t}
---RType: RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: RegularTriangularSet(Integer,IndexedExponents(...
 --E 19
 
 --S 20 of 23
@@ -122809,7 +123239,7 @@ pol := select(ts,'y)$T
 --R
 --R              2     3
 --R   (20)  t z y  + 2z y + 1
---RType: Union(NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]),...)
+--IType: Union(NewSparseMultivariatePolynomial(Integer,...
 --E 20
 
 --S 21 of 23
@@ -122818,7 +123248,7 @@ tower := collectUnder(ts,'y)$T
 --R
 --R           3      5
 --R   (21)  {t  - 1,z  - t}
---RType: RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: RegularTriangularSet(Integer,IndexedExponents(...
 --E 21
 
 --S 22 of 23
@@ -122826,11 +123256,11 @@ pack := RegularTriangularSetGcdPackage(R,E,V,P,T)
 --R 
 --R
 --R   (22)
---R  RegularTriangularSetGcdPackage(Integer,IndexedExponents OrderedVariableList [
---R  x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Intege
---R  r,OrderedVariableList [x,y,z,t]),RegularTriangularSet(Integer,IndexedExponent
---R  s OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultiv
---R  ariatePolynomial(Integer,OrderedVariableList [x,y,z,t])))
+--R  RegularTriangularSetGcdPackage(Integer,IndexedExponents(OrderedVariableList([
+--R  x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Int
+--R  eger,OrderedVariableList([x,y,z,t])),RegularTriangularSet(Integer,IndexedExpo
+--R  nents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSpars
+--R  eMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
 --R                                                                 Type: Domain
 --E 22
 
@@ -122840,7 +123270,7 @@ toseSquareFreePart(pol,tower)$pack
 --R
 --R                       2          3      5
 --R   (23)  [[val= t y + z ,tower= {t  - 1,z  - t}]]
---RType: List Record(val: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]),tower: RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])))
+--IType: List(Record(val: NewSparseMultivariatePolynomial(...
 --E 23
 )spool
 )lisp (bye)
@@ -123620,7 +124050,7 @@ m := squareMatrix [ [1,-%i],[%i,4] ]
 --R        +1   - %i+
 --R   (1)  |        |
 --R        +%i   4  +
---R                                        Type: SquareMatrix(2,Complex Integer)
+--R                                       Type: SquareMatrix(2,Complex(Integer))
 --E 2
 
 --S 3 of 6
@@ -123630,7 +124060,7 @@ m*m - m
 --R        + 1   - 4%i+
 --R   (2)  |          |
 --R        +4%i   13  +
---R                                        Type: SquareMatrix(2,Complex Integer)
+--R                                       Type: SquareMatrix(2,Complex(Integer))
 --E 3
 
 --S 4 of 6
@@ -123644,7 +124074,7 @@ mm := squareMatrix [ [m, 1], [1-m, m**2] ]
 --R        |+ 0    %i +  + 2   - 5%i+|
 --R        ||         |  |          ||
 --R        ++- %i  - 3+  +5%i   17  ++
---R                        Type: SquareMatrix(2,SquareMatrix(2,Complex Integer))
+--R                       Type: SquareMatrix(2,SquareMatrix(2,Complex(Integer)))
 --E 4
 
 --S 5 of 6
@@ -123654,7 +124084,7 @@ p := (x + m)**2
 --R         2   + 2   - 2%i+    + 2   - 5%i+
 --R   (4)  x  + |          |x + |          |
 --R             +2%i    8  +    +5%i   17  +
---R                             Type: Polynomial SquareMatrix(2,Complex Integer)
+--R                           Type: Polynomial(SquareMatrix(2,Complex(Integer)))
 --E 5
 
 --S 6 of 6
@@ -123666,7 +124096,7 @@ p::SquareMatrix(2, ?)
 --R   (5)  |                          |
 --R        |              2           |
 --R        +2%i x + 5%i  x  + 8x + 17 +
---R                             Type: SquareMatrix(2,Polynomial Complex Integer)
+--R                           Type: SquareMatrix(2,Polynomial(Complex(Integer)))
 --E 6
 )spool
 )lisp (bye)
@@ -123989,7 +124419,7 @@ SquareMatrix(ndim,R): Exports == Implementation where
 a:Stack INT:= stack [1,2,3,4,5]
 --R
 --R   (1)  [1,2,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 1
 
 --S 2 of 44
@@ -124003,7 +124433,7 @@ pop! a
 a
 --R
 --R   (3)  [2,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 3
 
 --S 4 of 44
@@ -124017,7 +124447,7 @@ extract! a
 a
 --R
 --R   (5)  [3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 5
 
 --S 6 of 44
@@ -124031,21 +124461,21 @@ push!(9,a)
 a
 --R
 --R   (7)  [9,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 7
 
 --S 8 of 44
 insert!(8,a)
 --R
 --R   (8)  [8,9,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 8
 
 --S 9 of 44
 a
 --R
 --R   (9)  [8,9,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 9
 
 --S 10 of 44
@@ -124115,21 +124545,21 @@ size?(a,9)
 parts a
 --R
 --R   (19)  [8,9,3,4,5]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 19
 
 --S 20 of 44
 bag([1,2,3,4,5])$Stack(INT)
 --R
 --R   (20)  [5,4,3,2,1]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 20
 
 --S 21 of 44
 b:=empty()$(Stack INT)
 --R
 --R   (21)  []
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 21
 
 --S 22 of 44
@@ -124143,14 +124573,14 @@ empty? b
 sample()$Stack(INT)
 --R
 --R   (23)  []
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 23
 
 --S 24 of 44
 c:=copy a
 --R
 --R   (24)  [8,9,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 24
 
 --S 25 of 44
@@ -124227,35 +124657,35 @@ count(x+->(x>2),a)
 map(x+->x+10,a)
 --R
 --R   (35)  [18,19,13,14,15]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 35
 
 --S 36 of 44
 a
 --R
 --R   (36)  [8,9,3,4,5]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 36
 
 --S 37 of 44
 map!(x+->x+10,a)
 --R
 --R   (37)  [18,19,13,14,15]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 37
 
 --S 38 of 44
 a
 --R
 --R   (38)  [18,19,13,14,15]
---R                                                          Type: Stack Integer
+--R                                                         Type: Stack(Integer)
 --E 38
 
 --S 39 of 44
 members a
 --R
 --R   (39)  [18,19,13,14,15]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 39
 
 --S 40 of 44
@@ -124291,19 +124721,20 @@ latex a
 
 --S 44 of 44
 )show Stack
---R Stack S: SetCategory  is a domain constructor
+--R 
+--R Stack(S: SetCategory)  is a domain constructor
 --R Abbreviation for Stack is STACK 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for STACK 
 --R
 --R------------------------------- Operations --------------------------------
---R bag : List S -> %                     copy : % -> %
+--R bag : List(S) -> %                    copy : % -> %
 --R depth : % -> NonNegativeInteger       empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R extract! : % -> S                     insert! : (S,%) -> %
 --R inspect : % -> S                      map : ((S -> S),%) -> %
 --R pop! : % -> S                         push! : (S,%) -> S
---R sample : () -> %                      stack : List S -> %
+--R sample : () -> %                      stack : List(S) -> %
 --R top : % -> S                         
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -124311,19 +124742,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
@@ -124838,7 +125269,7 @@ copyBSD()
 --R 
 --R
 --R   (4)  [dX,dY,dt]
---R                                       Type: List BasicStochasticDifferential
+--R                                      Type: List(BasicStochasticDifferential)
 --E 4
 
 --S 5 of 12
@@ -124854,7 +125285,7 @@ copyQuadVar()             -- display of multiplication table
 --R 
 --R
 --R   (6)  table()
---R   Type: Table(StochasticDifferential Integer,StochasticDifferential Integer)
+--R Type: Table(StochasticDifferential(Integer),StochasticDifferential(Integer))
 --E 6
 
 --S 7 of 12
@@ -124880,7 +125311,7 @@ copyDrift()       -- display of drift list
 --R 
 --R
 --R   (8)  table()
---R   Type: Table(StochasticDifferential Integer,StochasticDifferential Integer)
+--R Type: Table(StochasticDifferential(Integer),StochasticDifferential(Integer))
 --E 8
 
 --S 9 of 12
@@ -124900,7 +125331,7 @@ ItoMultArray:ARRAY2(SD INT) :=new(nbsd,nbsd,0$SD(INT))
 --R   (10)  |0  0  0|
 --R         |       |
 --R         +0  0  0+
---R                     Type: TwoDimensionalArray StochasticDifferential Integer
+--R                   Type: TwoDimensionalArray(StochasticDifferential(Integer))
 --E 10
 
 --S 11 of 12
@@ -124912,7 +125343,7 @@ ItoMultArray
 --R   (11)  |0  0  0|
 --R         |       |
 --R         +0  0  0+
---R                     Type: TwoDimensionalArray StochasticDifferential Integer
+--R                   Type: TwoDimensionalArray(StochasticDifferential(Integer))
 --E 11
 
 --S 12 of 12
@@ -125302,7 +125733,7 @@ ints := [i for i in 0..]
 --R 
 --R
 --R   (1)  [0,1,2,3,4,5,6,7,8,9,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 1
 
 --S 2 of 12
@@ -125320,10 +125751,10 @@ f x == [x.1 + x.2, x.1]
 --S 4 of 12
 fibs := [i.2 for i in [generate(f,[1,1])]]
 --R 
---R   Compiling function f with type List Integer -> List Integer 
+--R   Compiling function f with type List(Integer) -> List(Integer) 
 --R
 --R   (4)  [1,1,2,3,5,8,13,21,34,55,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 4
 
 --S 5 of 12
@@ -125331,7 +125762,7 @@ fibs := [i.2 for i in [generate(f,[1,1])]]
 --R 
 --R
 --R   (5)  [1,3,5,7,9,11,13,15,17,19,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 5
 
 --S 6 of 12
@@ -125339,7 +125770,7 @@ odds := [2*i+1 for i in ints]
 --R 
 --R
 --R   (6)  [1,3,5,7,9,11,13,15,17,19,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 6
 
 --S 7 of 12
@@ -125347,7 +125778,7 @@ scan(0,+,odds)
 --R 
 --R
 --R   (7)  [1,4,9,16,25,36,49,64,81,100,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 7
 
 --S 8 of 12
@@ -125355,7 +125786,7 @@ scan(0,+,odds)
 --R 
 --R
 --R   (8)  [0,3,10,21,36,55,78,105,136,171,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 8
 
 --S 9 of 12
@@ -125363,7 +125794,7 @@ map(*,ints,odds)
 --R 
 --R
 --R   (9)  [0,3,10,21,36,55,78,105,136,171,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 9
 
 --S 10 of 12
@@ -125379,7 +125810,7 @@ rest ints
 --R 
 --R
 --R   (11)  [1,2,3,4,5,6,7,8,9,10,...]
---R                                              Type: Stream NonNegativeInteger
+--R                                             Type: Stream(NonNegativeInteger)
 --E 11
 
 --S 12 of 12
@@ -126323,7 +126754,7 @@ hullo.2 := char "u"; [hello, hullo]
 --R 
 --R
 --R   (10)  ["Hello, I'm AXIOM!","Hullo, I'm AXIOM!"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 10
 
 --S 11 of 35
@@ -126371,7 +126802,7 @@ split(hello, char " ")
 --R 
 --R
 --R   (16)  ["Hello,","I'm","AXIOM!"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 16
 
 --S 17 of 35
@@ -126385,7 +126816,7 @@ split(saidsaw, other)
 --R 
 --R
 --R   (18)  ["alpha","omega"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 18
 
 --S 19 of 35
@@ -126898,7 +127329,7 @@ t: StringTable(Integer) := table()
 --R 
 --R
 --R   (1)  table()
---R                                                    Type: StringTable Integer
+--R                                                   Type: StringTable(Integer)
 --E 1
 
 --S 2 of 3
@@ -127113,38 +127544,39 @@ point.
 
 --S 1 of 1
 )show SubSpace
+--R 
 --R SubSpace(n: PositiveInteger,R: Ring)  is a domain constructor
 --R Abbreviation for SubSpace is SUBSPACE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SUBSPACE 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                addPoint2 : (%,Point R) -> %
---R birth : % -> %                        children : % -> List %
+--R ?=? : (%,%) -> Boolean                addPoint2 : (%,Point(R)) -> %
+--R birth : % -> %                        children : % -> List(%)
 --R coerce : % -> OutputForm              deepCopy : % -> %
---R extractClosed : % -> Boolean          extractPoint : % -> Point R
+--R extractClosed : % -> Boolean          extractPoint : % -> Point(R)
 --R hash : % -> SingleInteger             internal? : % -> Boolean
 --R latex : % -> String                   leaf? : % -> Boolean
---R level : % -> NonNegativeInteger       merge : List % -> %
+--R level : % -> NonNegativeInteger       merge : List(%) -> %
 --R merge : (%,%) -> %                    new : () -> %
---R parent : % -> %                       pointData : % -> List Point R
---R root? : % -> Boolean                  separate : % -> List %
+--R parent : % -> %                       pointData : % -> List(Point(R))
+--R root? : % -> Boolean                  separate : % -> List(%)
 --R shallowCopy : % -> %                  subspace : () -> %
 --R ?~=? : (%,%) -> Boolean              
---R addPoint : (%,Point R) -> NonNegativeInteger
---R addPoint : (%,List NonNegativeInteger,NonNegativeInteger) -> %
---R addPoint : (%,List NonNegativeInteger,Point R) -> %
---R addPointLast : (%,%,Point R,NonNegativeInteger) -> %
+--R addPoint : (%,Point(R)) -> NonNegativeInteger
+--R addPoint : (%,List(NonNegativeInteger),NonNegativeInteger) -> %
+--R addPoint : (%,List(NonNegativeInteger),Point(R)) -> %
+--R addPointLast : (%,%,Point(R),NonNegativeInteger) -> %
 --R child : (%,NonNegativeInteger) -> %
---R closeComponent : (%,List NonNegativeInteger,Boolean) -> %
---R defineProperty : (%,List NonNegativeInteger,SubSpaceComponentProperty) -> %
+--R closeComponent : (%,List(NonNegativeInteger),Boolean) -> %
+--R defineProperty : (%,List(NonNegativeInteger),SubSpaceComponentProperty) -> %
 --R extractIndex : % -> NonNegativeInteger
 --R extractProperty : % -> SubSpaceComponentProperty
---R modifyPoint : (%,NonNegativeInteger,Point R) -> %
---R modifyPoint : (%,List NonNegativeInteger,NonNegativeInteger) -> %
---R modifyPoint : (%,List NonNegativeInteger,Point R) -> %
+--R modifyPoint : (%,NonNegativeInteger,Point(R)) -> %
+--R modifyPoint : (%,List(NonNegativeInteger),NonNegativeInteger) -> %
+--R modifyPoint : (%,List(NonNegativeInteger),Point(R)) -> %
 --R numberOfChildren : % -> NonNegativeInteger
---R traverse : (%,List NonNegativeInteger) -> %
+--R traverse : (%,List(NonNegativeInteger)) -> %
 --R
 --E 1
 
@@ -127849,6 +128281,7 @@ SuchThat(S1, S2): Cat == Capsule where
 
 --S 1 of 1
 )show Switch
+--R 
 --R Switch  is a domain constructor
 --R Abbreviation for Switch is SWITCH 
 --R This constructor is exposed in this frame.
@@ -127857,14 +128290,14 @@ SuchThat(S1, S2): Cat == Capsule where
 --R------------------------------- Operations --------------------------------
 --R NOT : % -> %                          coerce : Symbol -> %
 --R coerce : % -> OutputForm             
---R AND : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R EQ : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R GE : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R GT : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R LE : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R LT : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
---R NOT : Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %) -> %
---R OR : (Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %),Union(I: Expression Integer,F: Expression Float,CF: Expression Complex Float,switch: %)) -> %
+--R AND : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R EQ : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R GE : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R GT : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R LE : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R LT : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
+--R NOT : Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %) -> %
+--R OR : (Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %),Union(I: Expression(Integer),F: Expression(Float),CF: Expression(Complex(Float)),switch: %)) -> %
 --R
 --E 1
 
@@ -128031,7 +128464,7 @@ A := 'a
 --R 
 --R
 --R   (3)  a
---R                                                             Type: Variable a
+--R                                                            Type: Variable(a)
 --E 3
 
 --S 4 of 24
@@ -128039,7 +128472,7 @@ B := b
 --R 
 --R
 --R   (4)  b
---R                                                             Type: Variable b
+--R                                                            Type: Variable(b)
 --E 4
 
 --S 5 of 24
@@ -128048,7 +128481,7 @@ x**2 + 1
 --R
 --R         2
 --R   (5)  x  + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 5
 
 --S 6 of 24
@@ -128155,7 +128588,7 @@ scripts U
 --R 
 --R
 --R   (18)  [sub= [1,2,1,2],sup= [],presup= [],presub= [],args= []]
---RType: Record(sub: List OutputForm,sup: List OutputForm,presup: List OutputForm,presub: List OutputForm,args: List OutputForm)
+--IType: Record(sub: List(OutputForm),sup: List(OutputForm),...
 --E 18
 
 --S 19 of 24
@@ -128171,7 +128604,7 @@ scripts X
 --R 
 --R
 --R   (20)  [sub= [],sup= [],presup= [],presub= [],args= []]
---RType: Record(sub: List OutputForm,sup: List OutputForm,presup: List OutputForm,presub: List OutputForm,args: List OutputForm)
+--IType: Record(sub: List(OutputForm),sup: List(OutputForm),...
 --E 20
 
 --S 21 of 24
@@ -128189,7 +128622,7 @@ scripts M
 --R 
 --R
 --R   (22)  [sub= [i,j],sup= [k,l],presup= [0,1],presub= [2],args= [u,v,w]]
---RType: Record(sub: List OutputForm,sup: List OutputForm,presup: List OutputForm,presub: List OutputForm,args: List OutputForm)
+--IType: Record(sub: List(OutputForm),sup: List(OutputForm),...
 --E 22
 
 --S 23 of 24
@@ -128207,7 +128640,7 @@ scripts N
 --R 
 --R
 --R   (24)  [sub= [i,j],sup= [k,l],presup= [0,1],presub= [],args= []]
---RType: Record(sub: List OutputForm,sup: List OutputForm,presup: List OutputForm,presub: List OutputForm,args: List OutputForm)
+--IType: Record(sub: List(OutputForm),sup: List(OutputForm),...
 --E 24
 )spool
 )lisp (bye)
@@ -128748,6 +129181,7 @@ Symbol(): Exports == Implementation where
 
 --S 1 of 1
 )show SymbolTable
+--R 
 --R SymbolTable  is a domain constructor
 --R Abbreviation for SymbolTable is SYMTAB 
 --R This constructor is exposed in this frame.
@@ -128755,15 +129189,15 @@ Symbol(): Exports == Implementation where
 --R
 --R------------------------------- Operations --------------------------------
 --R coerce : % -> OutputForm              empty : () -> %
---R externalList : % -> List Symbol       newTypeLists : % -> SExpression
---R parametersOf : % -> List Symbol       printTypes : % -> Void
+--R externalList : % -> List(Symbol)      newTypeLists : % -> SExpression
+--R parametersOf : % -> List(Symbol)      printTypes : % -> Void
 --R coerce : % -> Table(Symbol,FortranType)
 --R declare! : (Symbol,FortranType,%) -> FortranType
---R declare! : (List Symbol,FortranType,%) -> FortranType
+--R declare! : (List(Symbol),FortranType,%) -> FortranType
 --R fortranTypeOf : (Symbol,%) -> FortranType
---R symbolTable : List Record(key: Symbol,entry: FortranType) -> %
---R typeList : (FortranScalarType,%) -> List Union(name: Symbol,bounds: List Union(S: Symbol,P: Polynomial Integer))
---R typeLists : % -> List List Union(name: Symbol,bounds: List Union(S: Symbol,P: Polynomial Integer))
+--R symbolTable : List(Record(key: Symbol,entry: FortranType)) -> %
+--R typeList : (FortranScalarType,%) -> List(Union(name: Symbol,bounds: List(Union(S: Symbol,P: Polynomial(Integer)))))
+--R typeLists : % -> List(List(Union(name: Symbol,bounds: List(Union(S: Symbol,P: Polynomial(Integer))))))
 --R
 --E 1
 
@@ -129004,7 +129438,8 @@ SymbolTable() : exports == implementation where
 
 --S 1 of 1
 )show SymmetricPolynomial
---R SymmetricPolynomial R: Ring  is a domain constructor
+--R 
+--R SymmetricPolynomial(R: Ring)  is a domain constructor
 --R Abbreviation for SymmetricPolynomial is SYMPOLY 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SYMPOLY 
@@ -129017,7 +129452,7 @@ SymbolTable() : exports == implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coefficient : (%,Partition) -> R
---R coefficients : % -> List R            coerce : R -> %
+--R coefficients : % -> List(R)           coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> Partition               ground : % -> R
 --R ground? : % -> Boolean                hash : % -> SingleInteger
@@ -129028,8 +129463,8 @@ SymbolTable() : exports == implementation where
 --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 ?*? : (%,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
@@ -129038,7 +129473,7 @@ SymbolTable() : exports == implementation where
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---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 : % -> % if R has INTDOM
 --R content : % -> R if R has GCDDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
@@ -129048,11 +129483,11 @@ SymbolTable() : exports == implementation where
 --R numberOfMonomials : % -> NonNegativeInteger
 --R pomopo! : (%,R,Partition,%) -> %
 --R primitivePart : % -> % if R has GCDDOM
---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 subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit? : % -> Boolean if R has INTDOM
 --R unitCanonical : % -> % if R has INTDOM
@@ -129189,7 +129624,7 @@ t: Table(Polynomial Integer, String) := table()
 --R 
 --R
 --R   (1)  table()
---R                                       Type: Table(Polynomial Integer,String)
+--R                                      Type: Table(Polynomial(Integer),String)
 --E 1
 
 --S 2 of 18
@@ -129262,7 +129697,7 @@ keys t
 --R
 --R             3      2
 --R   (10)  [x,x  + 1,x  - 1]
---R                                                Type: List Polynomial Integer
+--R                                              Type: List(Polynomial(Integer))
 --E 10
 
 --S 11 of 18
@@ -129318,7 +129753,7 @@ members t
 --R 
 --R
 --R   (17)  ["The easiest to factor","Harder to factor"]
---R                                                            Type: List String
+--R                                                           Type: List(String)
 --E 17
 
 --S 18 of 18
@@ -129596,14 +130031,15 @@ Table(Key: SetCategory, Entry: SetCategory):Exports == Implementation where
 
 --S 1 of 1
 )show Tableau
---R Tableau S: SetCategory  is a domain constructor
+--R 
+--R Tableau(S: SetCategory)  is a domain constructor
 --R Abbreviation for Tableau is TABLEAU 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for TABLEAU 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : % -> OutputForm              listOfLists : % -> List List S
---R tableau : List List S -> %           
+--R coerce : % -> OutputForm              listOfLists : % -> List(List(S))
+--R tableau : List(List(S)) -> %         
 --R
 --E 1
 
@@ -129700,7 +130136,8 @@ Tableau(S:SetCategory):Exports == Implementation where
 
 --S 1 of 1
 )show TaylorSeries
---R TaylorSeries Coef: Ring  is a domain constructor
+--R 
+--R TaylorSeries(Coef: Ring)  is a domain constructor
 --R Abbreviation for TaylorSeries is TS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for TS 
@@ -129711,90 +130148,91 @@ Tableau(S:SetCategory):Exports == Implementation where
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List Symbol) -> %              D : (%,Symbol) -> %
+--R D : (%,List(Symbol)) -> %             D : (%,Symbol) -> %
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        coerce : Polynomial Coef -> %
+--R ?^? : (%,PositiveInteger) -> %        coerce : Polynomial(Coef) -> %
 --R coerce : Symbol -> %                  coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R differentiate : (%,Symbol) -> %       eval : (%,List %,List %) -> %
---R eval : (%,%,%) -> %                   eval : (%,Equation %) -> %
---R eval : (%,List Equation %) -> %       eval : (%,Symbol,%) -> %
+--R differentiate : (%,Symbol) -> %       eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,Symbol,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
 --R leadingCoefficient : % -> Coef        leadingMonomial : % -> %
 --R map : ((Coef -> Coef),%) -> %         monomial? : % -> Boolean
 --R one? : % -> Boolean                   pole? : % -> Boolean
 --R recip : % -> Union(%,"failed")        reductum : % -> %
---R sample : () -> %                      variables : % -> List Symbol
+--R sample : () -> %                      variables : % -> List(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 ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
---R D : (%,List Symbol,List NonNegativeInteger) -> %
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> %
 --R D : (%,Symbol,NonNegativeInteger) -> %
 --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 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 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 : (%,NonNegativeInteger) -> Polynomial Coef
---R coefficient : (%,List Symbol,List NonNegativeInteger) -> %
+--R coefficient : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R coefficient : (%,List(Symbol),List(NonNegativeInteger)) -> %
 --R coefficient : (%,Symbol,NonNegativeInteger) -> %
---R coefficient : (%,IndexedExponents Symbol) -> Coef
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
+--R coefficient : (%,IndexedExponents(Symbol)) -> Coef
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R coerce : % -> % if Coef has INTDOM
 --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 degree : % -> IndexedExponents Symbol
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> %
+--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 degree : % -> IndexedExponents(Symbol)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> %
 --R differentiate : (%,Symbol,NonNegativeInteger) -> %
---R differentiate : (%,List Symbol) -> %
---R eval : (%,List Symbol,List %) -> %
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R differentiate : (%,List(Symbol)) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(Symbol),List(%)) -> %
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
---R fintegrate : ((() -> %),Symbol,Coef) -> % if Coef has ALGEBRA FRAC INT
---R integrate : (%,Symbol,Coef) -> % if Coef has ALGEBRA FRAC INT
---R integrate : (%,Symbol) -> % if Coef has ALGEBRA FRAC INT
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List Symbol,List NonNegativeInteger) -> %
+--R fintegrate : ((() -> %),Symbol,Coef) -> % if Coef has ALGEBRA(FRAC(INT))
+--R integrate : (%,Symbol,Coef) -> % if Coef has ALGEBRA(FRAC(INT))
+--R integrate : (%,Symbol) -> % if Coef has ALGEBRA(FRAC(INT))
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(Symbol),List(NonNegativeInteger)) -> %
 --R monomial : (%,Symbol,NonNegativeInteger) -> %
---R monomial : (Coef,IndexedExponents Symbol) -> %
---R monomial : (%,Symbol,IndexedExponents Symbol) -> %
---R monomial : (%,List Symbol,List IndexedExponents Symbol) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R monomial : (Coef,IndexedExponents(Symbol)) -> %
+--R monomial : (%,Symbol,IndexedExponents(Symbol)) -> %
+--R monomial : (%,List(Symbol),List(IndexedExponents(Symbol))) -> %
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,Symbol,NonNegativeInteger) -> NonNegativeInteger
 --R order : (%,Symbol) -> NonNegativeInteger
---R pi : () -> % if Coef has ALGEBRA FRAC INT
---R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial Coef
---R polynomial : (%,NonNegativeInteger) -> Polynomial Coef
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
+--R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial(Coef)
+--R polynomial : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if Coef has ALGEBRA FRAC INT
---R tanh : % -> % if Coef has ALGEBRA FRAC INT
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
@@ -130061,7 +130499,7 @@ in addition we need to add a line defining [[PI2]] in [[formatPlex]]:
 --R<mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow>
 --R</math>
 --R
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 8
 
 --S 9 of 11
@@ -130073,7 +130511,7 @@ in addition we need to add a line defining [[PI2]] in [[formatPlex]]:
 --R<mrow><mn>1</mn><mo>/</mo><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>5</mn><mo>)</mo></mrow></mrow>
 --R</math>
 --R
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 9
 
 --S 10 of 11
@@ -130085,7 +130523,7 @@ in addition we need to add a line defining [[PI2]] in [[formatPlex]]:
 --R<mrow><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>3</mn><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><mi>y</mi><mo>-</mo><mn>5</mn><mo>)</mo></mrow></mrow>
 --R</math>
 --R
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 10
 
 --S 11 of 11
@@ -130099,15 +130537,15 @@ in addition we need to add a line defining [[PI2]] in [[formatPlex]]:
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                coerce : OutputForm -> %
 --R coerce : % -> OutputForm              display : % -> Void
---R display : (%,Integer) -> Void         epilogue : % -> List String
+--R display : (%,Integer) -> Void         epilogue : % -> List(String)
 --R hash : % -> SingleInteger             latex : % -> String
---R new : () -> %                         prologue : % -> List String
---R tex : % -> List String                ?~=? : (%,%) -> Boolean
+--R new : () -> %                         prologue : % -> List(String)
+--R tex : % -> List(String)               ?~=? : (%,%) -> Boolean
 --R convert : (OutputForm,Integer,OutputForm) -> %
 --R convert : (OutputForm,Integer) -> %
---R setEpilogue! : (%,List String) -> List String
---R setPrologue! : (%,List String) -> List String
---R setTex! : (%,List String) -> List String
+--R setEpilogue! : (%,List(String)) -> List(String)
+--R setPrologue! : (%,List(String)) -> List(String)
+--R setTex! : (%,List(String)) -> List(String)
 --R
 --E 11
 
@@ -131081,6 +131519,7 @@ TextFile: Cat == Def where
 
 --S 1 of 1
 )show TheSymbolTable
+--R 
 --R TheSymbolTable  is a domain constructor
 --R Abbreviation for TheSymbolTable is SYMS 
 --R This constructor is exposed in this frame.
@@ -131093,14 +131532,14 @@ TextFile: Cat == Def where
 --R printHeader : () -> Void              printHeader : Symbol -> Void
 --R printHeader : (Symbol,%) -> Void      printTypes : Symbol -> Void
 --R showTheSymbolTable : () -> %         
---R argumentList! : List Symbol -> Void
---R argumentList! : (Symbol,List Symbol) -> Void
---R argumentList! : (Symbol,List Symbol,%) -> Void
---R argumentListOf : (Symbol,%) -> List Symbol
+--R argumentList! : List(Symbol) -> Void
+--R argumentList! : (Symbol,List(Symbol)) -> Void
+--R argumentList! : (Symbol,List(Symbol),%) -> Void
+--R argumentListOf : (Symbol,%) -> List(Symbol)
 --R clearTheSymbolTable : Symbol -> Void
 --R declare! : (Symbol,FortranType,Symbol) -> FortranType
 --R declare! : (Symbol,FortranType) -> FortranType
---R declare! : (List Symbol,FortranType,Symbol,%) -> FortranType
+--R declare! : (List(Symbol),FortranType,Symbol,%) -> FortranType
 --R declare! : (Symbol,FortranType,Symbol,%) -> FortranType
 --R returnType! : Union(fst: FortranScalarType,void: void) -> Void
 --R returnType! : (Symbol,Union(fst: FortranScalarType,void: void)) -> Void
@@ -131372,29 +131811,30 @@ TheSymbolTable() : Exports == Implementation where
 
 --S 1 of 1
 )show ThreeDimensionalMatrix
---R ThreeDimensionalMatrix R: SetCategory  is a domain constructor
+--R 
+--R ThreeDimensionalMatrix(R: SetCategory)  is a domain constructor
 --R Abbreviation for ThreeDimensionalMatrix is M3D 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for M3D 
 --R
 --R------------------------------- Operations --------------------------------
---R construct : List List List R -> %     copy : % -> %
---R empty : () -> %                       empty? : % -> Boolean
---R eq? : (%,%) -> Boolean                map : ((R -> R),%) -> %
---R sample : () -> %                     
+--R copy : % -> %                         empty : () -> %
+--R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
+--R map : ((R -> R),%) -> %               sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if R has SETCAT
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
---R coerce : % -> PrimitiveArray PrimitiveArray PrimitiveArray R
---R coerce : PrimitiveArray PrimitiveArray PrimitiveArray R -> %
+--R coerce : % -> PrimitiveArray(PrimitiveArray(PrimitiveArray(R)))
+--R coerce : PrimitiveArray(PrimitiveArray(PrimitiveArray(R))) -> %
 --R coerce : % -> OutputForm if R has SETCAT
+--R construct : List(List(List(R))) -> %
 --R count : (R,%) -> NonNegativeInteger if $ has finiteAggregate and R has SETCAT
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R elt : (%,NonNegativeInteger,NonNegativeInteger,NonNegativeInteger) -> 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 hash : % -> SingleInteger if R has SETCAT
 --R identityMatrix : NonNegativeInteger -> % if R has RING
@@ -131402,11 +131842,11 @@ TheSymbolTable() : Exports == Implementation where
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((R -> R),%) -> % if $ has shallowlyMutable
 --R matrixConcat3D : (Symbol,%,%) -> %
---R matrixDimensions : % -> Vector NonNegativeInteger
+--R matrixDimensions : % -> Vector(NonNegativeInteger)
 --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 parts : % -> List R if $ has finiteAggregate
+--R parts : % -> List(R) if $ has finiteAggregate
 --R plus : (%,%) -> % if R has RING
 --R setelt! : (%,NonNegativeInteger,NonNegativeInteger,NonNegativeInteger,R) -> R
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -131742,6 +132182,7 @@ ThreeDimensionalMatrix(R) : Exports == Implementation where
 
 --S 1 of 1
 )show ThreeDimensionalViewport
+--R 
 --R ThreeDimensionalViewport  is a domain constructor
 --R Abbreviation for ThreeDimensionalViewport is VIEW3D 
 --R This constructor is exposed in this frame.
@@ -131755,7 +132196,7 @@ ThreeDimensionalMatrix(R) : Exports == Implementation where
 --R eyeDistance : (%,Float) -> Void       hash : % -> SingleInteger
 --R hitherPlane : (%,Float) -> Void       intensity : (%,Float) -> Void
 --R key : % -> Integer                    latex : % -> String
---R makeViewport3D : % -> %               options : % -> List DrawOption
+--R makeViewport3D : % -> %               options : % -> List(DrawOption)
 --R perspective : (%,String) -> Void      reset : % -> Void
 --R rotate : (%,Float,Float) -> Void      showRegion : (%,String) -> Void
 --R title : (%,String) -> Void            viewDeltaXDefault : Float -> Float
@@ -131769,17 +132210,17 @@ ThreeDimensionalMatrix(R) : Exports == Implementation where
 --R colorDef : (%,Color,Color) -> Void
 --R dimensions : (%,NonNegativeInteger,NonNegativeInteger,PositiveInteger,PositiveInteger) -> Void
 --R lighting : (%,Float,Float,Float) -> Void
---R makeViewport3D : (ThreeSpace DoubleFloat,List DrawOption) -> %
---R makeViewport3D : (ThreeSpace DoubleFloat,String) -> %
---R modifyPointData : (%,NonNegativeInteger,Point DoubleFloat) -> Void
+--R makeViewport3D : (ThreeSpace(DoubleFloat),List(DrawOption)) -> %
+--R makeViewport3D : (ThreeSpace(DoubleFloat),String) -> %
+--R modifyPointData : (%,NonNegativeInteger,Point(DoubleFloat)) -> Void
 --R move : (%,NonNegativeInteger,NonNegativeInteger) -> Void
---R options : (%,List DrawOption) -> %
+--R options : (%,List(DrawOption)) -> %
 --R outlineRender : (%,String) -> Void
 --R resize : (%,PositiveInteger,PositiveInteger) -> Void
 --R rotate : (%,Integer,Integer) -> Void
 --R showClipRegion : (%,String) -> Void
---R subspace : (%,ThreeSpace DoubleFloat) -> %
---R subspace : % -> ThreeSpace DoubleFloat
+--R subspace : (%,ThreeSpace(DoubleFloat)) -> %
+--R subspace : % -> ThreeSpace(DoubleFloat)
 --R translate : (%,Float,Float) -> Void
 --R viewpoint : (%,Float,Float,Float) -> Void
 --R viewpoint : (%,Float,Float) -> Void
@@ -131787,7 +132228,7 @@ ThreeDimensionalMatrix(R) : Exports == Implementation where
 --R viewpoint : (%,Record(theta: DoubleFloat,phi: DoubleFloat,scale: DoubleFloat,scaleX: DoubleFloat,scaleY: DoubleFloat,scaleZ: DoubleFloat,deltaX: DoubleFloat,deltaY: DoubleFloat)) -> Void
 --R viewpoint : % -> Record(theta: DoubleFloat,phi: DoubleFloat,scale: DoubleFloat,scaleX: DoubleFloat,scaleY: DoubleFloat,scaleZ: DoubleFloat,deltaX: DoubleFloat,deltaY: DoubleFloat)
 --R viewpoint : (%,Float,Float,Float,Float,Float) -> Void
---R write : (%,String,List String) -> String
+--R write : (%,String,List(String)) -> String
 --R write : (%,String,String) -> String
 --R zoom : (%,Float,Float,Float) -> Void
 --R
@@ -132822,48 +133263,49 @@ ThreeDimensionalViewport(): Exports == Implementation where
 
 --S 1 of 1
 )show ThreeSpace
---R ThreeSpace R: Ring  is a domain constructor
+--R 
+--R ThreeSpace(R: Ring)  is a domain constructor
 --R Abbreviation for ThreeSpace is SPACE3 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for SPACE3 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                check : % -> %
---R closedCurve : % -> List Point R       closedCurve : List Point R -> %
+--R closedCurve : % -> List(Point(R))     closedCurve : List(Point(R)) -> %
 --R closedCurve? : % -> Boolean           coerce : % -> OutputForm
---R components : % -> List %              composite : List % -> %
---R composites : % -> List %              copy : % -> %
+--R components : % -> List(%)             composite : List(%) -> %
+--R composites : % -> List(%)             copy : % -> %
 --R create3Space : SubSpace(3,R) -> %     create3Space : () -> %
---R curve : % -> List Point R             curve : List Point R -> %
---R curve : (%,List List R) -> %          curve : (%,List Point R) -> %
+--R curve : % -> List(Point(R))           curve : List(Point(R)) -> %
+--R curve : (%,List(List(R))) -> %        curve : (%,List(Point(R))) -> %
 --R curve? : % -> Boolean                 hash : % -> SingleInteger
---R latex : % -> String                   lp : % -> List Point R
---R merge : (%,%) -> %                    merge : List % -> %
---R mesh : % -> List List Point R         mesh : List List Point R -> %
---R mesh? : % -> Boolean                  point : % -> Point R
---R point : Point R -> %                  point : (%,List R) -> %
---R point : (%,Point R) -> %              point? : % -> Boolean
---R polygon : % -> List Point R           polygon : List Point R -> %
---R polygon : (%,List List R) -> %        polygon : (%,List Point R) -> %
---R polygon? : % -> Boolean               subspace : % -> SubSpace(3,R)
---R ?~=? : (%,%) -> Boolean              
---R closedCurve : (%,List List R) -> %
---R closedCurve : (%,List Point R) -> %
---R enterPointData : (%,List Point R) -> NonNegativeInteger
---R lllip : % -> List List List NonNegativeInteger
---R lllp : % -> List List List Point R
---R llprop : % -> List List SubSpaceComponentProperty
---R lprop : % -> List SubSpaceComponentProperty
---R mesh : (List List Point R,Boolean,Boolean) -> %
---R mesh : (%,List List List R,Boolean,Boolean) -> %
---R mesh : (%,List List Point R,Boolean,Boolean) -> %
---R mesh : (%,List List List R,List SubSpaceComponentProperty,SubSpaceComponentProperty) -> %
---R mesh : (%,List List Point R,List SubSpaceComponentProperty,SubSpaceComponentProperty) -> %
---R modifyPointData : (%,NonNegativeInteger,Point R) -> %
+--R latex : % -> String                   lp : % -> List(Point(R))
+--R merge : (%,%) -> %                    merge : List(%) -> %
+--R mesh : % -> List(List(Point(R)))      mesh : List(List(Point(R))) -> %
+--R mesh? : % -> Boolean                  point : % -> Point(R)
+--R point : Point(R) -> %                 point : (%,List(R)) -> %
+--R point : (%,Point(R)) -> %             point? : % -> Boolean
+--R polygon : % -> List(Point(R))         polygon : List(Point(R)) -> %
+--R polygon : (%,List(List(R))) -> %      polygon? : % -> Boolean
+--R subspace : % -> SubSpace(3,R)         ?~=? : (%,%) -> Boolean
+--R closedCurve : (%,List(List(R))) -> %
+--R closedCurve : (%,List(Point(R))) -> %
+--R enterPointData : (%,List(Point(R))) -> NonNegativeInteger
+--R lllip : % -> List(List(List(NonNegativeInteger)))
+--R lllp : % -> List(List(List(Point(R))))
+--R llprop : % -> List(List(SubSpaceComponentProperty))
+--R lprop : % -> List(SubSpaceComponentProperty)
+--R mesh : (List(List(Point(R))),Boolean,Boolean) -> %
+--R mesh : (%,List(List(List(R))),Boolean,Boolean) -> %
+--R mesh : (%,List(List(Point(R))),Boolean,Boolean) -> %
+--R mesh : (%,List(List(List(R))),List(SubSpaceComponentProperty),SubSpaceComponentProperty) -> %
+--R mesh : (%,List(List(Point(R))),List(SubSpaceComponentProperty),SubSpaceComponentProperty) -> %
+--R modifyPointData : (%,NonNegativeInteger,Point(R)) -> %
 --R numberOfComponents : % -> NonNegativeInteger
 --R numberOfComposites : % -> NonNegativeInteger
 --R objects : % -> Record(points: NonNegativeInteger,curves: NonNegativeInteger,polygons: NonNegativeInteger,constructs: NonNegativeInteger)
 --R point : (%,NonNegativeInteger) -> %
+--R polygon : (%,List(Point(R))) -> %
 --R
 --E 1
 
@@ -133283,22 +133725,23 @@ ThreeSpace(R:Ring):Exports == Implementation where
 
 --S 1 of 1
 )show Tree
---R Tree S: SetCategory  is a domain constructor
+--R 
+--R Tree(S: SetCategory)  is a domain constructor
 --R Abbreviation for Tree is TREE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for TREE 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                cyclicCopy : % -> %
---R cyclicEntries : % -> List %           cyclicEqual? : (%,%) -> Boolean
---R cyclicParents : % -> List %           distance : (%,%) -> Integer
+--R cyclicEntries : % -> List(%)          cyclicEqual? : (%,%) -> Boolean
+--R cyclicParents : % -> List(%)          distance : (%,%) -> Integer
 --R ?.value : (%,value) -> S              empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R leaf? : % -> Boolean                  leaves : % -> List S
---R map : ((S -> S),%) -> %               nodes : % -> List %
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
+--R map : ((S -> S),%) -> %               nodes : % -> List(%)
 --R sample : () -> %                      tree : S -> %
---R tree : List S -> %                    tree : (S,List %) -> %
+--R tree : List(S) -> %                   tree : (S,List(%)) -> %
 --R value : % -> S                       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -133307,21 +133750,21 @@ ThreeSpace(R:Ring):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 : (%,value,S) -> S if $ has shallowlyMutable
 --R setvalue! : (%,S) -> S if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -133752,7 +134195,8 @@ Tree(S: SetCategory): T==C where
 
 --S 1 of 1
 )show TubePlot
---R TubePlot Curve: PlottableSpaceCurveCategory  is a domain constructor
+--R 
+--R TubePlot(Curve: PlottableSpaceCurveCategory)  is a domain constructor
 --R Abbreviation for TubePlot is TUBE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for TUBE 
@@ -133760,9 +134204,9 @@ Tree(S: SetCategory): T==C where
 --R------------------------------- Operations --------------------------------
 --R closed? : % -> Boolean                getCurve : % -> Curve
 --R open? : % -> Boolean                 
---R listLoops : % -> List List Point DoubleFloat
+--R listLoops : % -> List(List(Point(DoubleFloat)))
 --R setClosed : (%,Boolean) -> Boolean
---R tube : (Curve,List List Point DoubleFloat,Boolean) -> %
+--R tube : (Curve,List(List(Point(DoubleFloat))),Boolean) -> %
 --R
 --E 1
 
@@ -133868,13 +134312,14 @@ TubePlot(Curve): Exports == Implementation where
 
 --S 1 of 1
 )show Tuple
---R Tuple S: Type  is a domain constructor
+--R 
+--R Tuple(S: Type)  is a domain constructor
 --R Abbreviation for Tuple is TUPLE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for TUPLE 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : PrimitiveArray S -> %        coerce : % -> PrimitiveArray S
+--R coerce : PrimitiveArray(S) -> %       coerce : % -> PrimitiveArray(S)
 --R length : % -> NonNegativeInteger     
 --R ?=? : (%,%) -> Boolean if S has SETCAT
 --R coerce : % -> OutputForm if S has SETCAT
@@ -133997,7 +134442,7 @@ arr : ARRAY2 INT := new(5,4,0)
 --R        |0  0  0  0|
 --R        |          |
 --R        +0  0  0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 1
 
 --S 2 of 20
@@ -134021,7 +134466,7 @@ arr
 --R        |0   0  0  0|
 --R        |           |
 --R        +0   0  0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 3
 
 --S 4 of 20
@@ -134053,7 +134498,7 @@ row(arr,1)
 --R 
 --R
 --R   (7)  [17,0,0,0]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 7
 
 --S 8 of 20
@@ -134061,7 +134506,7 @@ column(arr,1)
 --R 
 --R
 --R   (8)  [17,0,0,0,0]
---R                                            Type: OneDimensionalArray Integer
+--R                                           Type: OneDimensionalArray(Integer)
 --E 8
 
 --S 9 of 20
@@ -134093,7 +134538,7 @@ map(-,arr)
 --R         | 0     0    0  0|
 --R         |                |
 --R         + 0     0    0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 11
 
 --S 12 of 20
@@ -134109,7 +134554,7 @@ map((x +-> x + x),arr)
 --R         |0   0   0  0|
 --R         |            |
 --R         +0   0   0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 12
 
 --S 13 of 20
@@ -134125,7 +134570,7 @@ arrc := copy(arr)
 --R         |0   0   0  0|
 --R         |            |
 --R         +0   0   0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 13
 
 --S 14 of 20
@@ -134141,7 +134586,7 @@ map!(-,arrc)
 --R         | 0     0    0  0|
 --R         |                |
 --R         + 0     0    0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 14
 
 --S 15 of 20
@@ -134157,7 +134602,7 @@ arrc
 --R         | 0     0    0  0|
 --R         |                |
 --R         + 0     0    0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 15
 
 --S 16 of 20
@@ -134173,7 +134618,7 @@ arr
 --R         |0   0   0  0|
 --R         |            |
 --R         +0   0   0  0+
---R                                            Type: TwoDimensionalArray Integer
+--R                                           Type: TwoDimensionalArray(Integer)
 --E 16
 
 --S 17 of 20
@@ -135448,7 +135893,8 @@ TwoDimensionalViewport ():Exports == Implementation where
 
 --S 1 of 1
 )show UnivariateFormalPowerSeries
---R UnivariateFormalPowerSeries Coef: Ring  is a domain constructor
+--R 
+--R UnivariateFormalPowerSeries(Coef: Ring)  is a domain constructor
 --R Abbreviation for UnivariateFormalPowerSeries is UFPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for UFPS 
@@ -135461,7 +135907,7 @@ TwoDimensionalViewport ():Exports == Implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficients : % -> Stream Coef       coerce : Variable QUOTE x -> %
+--R coefficients : % -> Stream(Coef)      coerce : Variable(QUOTE(x)) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> NonNegativeInteger
 --R evenlambert : % -> %                  hash : % -> SingleInteger
@@ -135473,97 +135919,97 @@ TwoDimensionalViewport ():Exports == Implementation where
 --R pole? : % -> Boolean                  quoByVar : % -> %
 --R recip : % -> Union(%,"failed")        reductum : % -> %
 --R revert : % -> %                       sample : () -> %
---R series : Stream Coef -> %             variable : % -> Symbol
+--R series : Stream(Coef) -> %            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 ?**? : (%,Coef) -> % if Coef has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --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 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 : (%,NonNegativeInteger) -> Coef if Coef has **: (Coef,NonNegativeInteger) -> 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 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 : (%,NonNegativeInteger) -> Coef
---R coerce : UnivariatePolynomial(QUOTE x,Coef) -> %
+--R coerce : UnivariatePolynomial(QUOTE(x),Coef) -> %
 --R coerce : Coef -> % if Coef has COMRING
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
---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 QUOTE x) -> %
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--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(QUOTE(x))) -> %
 --R differentiate : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?.? : (%,%) -> % if NonNegativeInteger has SGROUP
 --R ?.? : (%,NonNegativeInteger) -> Coef
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,NonNegativeInteger) -> Coef
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,NonNegativeInteger) -> Coef
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
 --R generalLambert : (%,Integer,Integer) -> %
---R integrate : (%,Variable QUOTE x) -> % 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 integrate : (%,Variable(QUOTE(x))) -> % 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 invmultisect : (Integer,Integer,%) -> %
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (Coef,NonNegativeInteger) -> %
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R multisect : (Integer,Integer,%) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,NonNegativeInteger) -> NonNegativeInteger
---R pi : () -> % if Coef has ALGEBRA FRAC INT
---R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial Coef
---R polynomial : (%,NonNegativeInteger) -> Polynomial Coef
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: NonNegativeInteger,c: Coef) -> %
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
+--R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial(Coef)
+--R polynomial : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: NonNegativeInteger,c: Coef)) -> %
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
 --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: NonNegativeInteger,c: Coef)
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: NonNegativeInteger,c: Coef))
 --R truncate : (%,NonNegativeInteger,NonNegativeInteger) -> %
 --R truncate : (%,NonNegativeInteger) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
---R univariatePolynomial : (%,NonNegativeInteger) -> UnivariatePolynomial(QUOTE x,Coef)
---R variables : % -> List SingletonAsOrderedSet
+--R univariatePolynomial : (%,NonNegativeInteger) -> UnivariatePolynomial(QUOTE(x),Coef)
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -135709,6 +136155,7 @@ UnivariateFormalPowerSeries(Coef: Ring) ==
 
 --S 1 of 1
 )show UnivariateLaurentSeries
+--R 
 --R UnivariateLaurentSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for UnivariateLaurentSeries is ULS 
 --R This constructor is not exposed in this frame.
@@ -135722,7 +136169,7 @@ UnivariateFormalPowerSeries(Coef: Ring) ==
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficient : (%,Integer) -> Coef     coerce : Variable var -> %
+--R coefficient : (%,Integer) -> Coef     coerce : Variable(var) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> Integer
 --R ?.? : (%,Integer) -> Coef             extend : (%,Integer) -> %
@@ -135736,13 +136183,13 @@ UnivariateFormalPowerSeries(Coef: Ring) ==
 --R removeZeroes : % -> %                 sample : () -> %
 --R truncate : (%,Integer) -> %           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 ?*? : (UnivariateTaylorSeries(Coef,var,cen),%) -> % if Coef has FIELD
 --R ?*? : (%,UnivariateTaylorSeries(Coef,var,cen)) -> % if Coef has FIELD
 --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 ?/? : (UnivariateTaylorSeries(Coef,var,cen),UnivariateTaylorSeries(Coef,var,cen)) -> % if Coef has FIELD
@@ -135752,10 +136199,10 @@ UnivariateFormalPowerSeries(Coef: Ring) ==
 --R ?<=? : (%,%) -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R ?>? : (%,%) -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R ?>=? : (%,%) -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
---R D : (%,Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R D : % -> % if UnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,(UnivariateTaylorSeries(Coef,var,cen) -> UnivariateTaylorSeries(Coef,var,cen)),NonNegativeInteger) -> % if Coef has FIELD
@@ -135763,144 +136210,144 @@ UnivariateFormalPowerSeries(Coef: Ring) ==
 --R ?^? : (%,Integer) -> % if Coef has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
---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 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 : (%,Integer) -> Coef if Coef has **: (Coef,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 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 UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or 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 ceiling : % -> UnivariateTaylorSeries(Coef,var,cen) if UnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has CHARNZ and Coef has FIELD or Coef has CHARNZ
---R coerce : Fraction Integer -> % if UnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD or Coef has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD or Coef has ALGEBRA(FRAC(INT))
 --R coerce : % -> % if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
---R coerce : Symbol -> % if UnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R coerce : Symbol -> % if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R coerce : UnivariateTaylorSeries(Coef,var,cen) -> %
 --R coerce : Coef -> % if Coef has COMRING
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R convert : % -> Pattern Integer if UnivariateTaylorSeries(Coef,var,cen) has KONVERT PATTERN INT and Coef has FIELD
---R convert : % -> Pattern Float if UnivariateTaylorSeries(Coef,var,cen) has KONVERT PATTERN FLOAT and Coef has FIELD
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R convert : % -> Pattern(Integer) if UnivariateTaylorSeries(Coef,var,cen) has KONVERT(PATTERN(INT)) and Coef has FIELD
+--R convert : % -> Pattern(Float) if UnivariateTaylorSeries(Coef,var,cen) has KONVERT(PATTERN(FLOAT)) and Coef has FIELD
 --R convert : % -> DoubleFloat if UnivariateTaylorSeries(Coef,var,cen) has REAL and Coef has FIELD
 --R convert : % -> Float if UnivariateTaylorSeries(Coef,var,cen) has REAL and Coef has FIELD
---R convert : % -> InputForm if UnivariateTaylorSeries(Coef,var,cen) has KONVERT INFORM and Coef has FIELD
---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 convert : % -> InputForm if UnivariateTaylorSeries(Coef,var,cen) has KONVERT(INFORM) and Coef has FIELD
+--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 denom : % -> UnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
 --R denominator : % -> % if Coef has FIELD
---R differentiate : (%,Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if UnivariateTaylorSeries(Coef,var,cen) has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R differentiate : % -> % if UnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if UnivariateTaylorSeries(Coef,var,cen) has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Variable var) -> %
+--R differentiate : (%,Variable(var)) -> %
 --R differentiate : (%,(UnivariateTaylorSeries(Coef,var,cen) -> UnivariateTaylorSeries(Coef,var,cen)),NonNegativeInteger) -> % if Coef has FIELD
 --R differentiate : (%,(UnivariateTaylorSeries(Coef,var,cen) -> UnivariateTaylorSeries(Coef,var,cen))) -> % if Coef has FIELD
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if Coef has FIELD
 --R ?.? : (%,UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has ELTAB(UTS(Coef,var,cen),UTS(Coef,var,cen)) and Coef has FIELD
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger if Coef has FIELD
---R eval : (%,List UnivariateTaylorSeries(Coef,var,cen),List UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB UTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,UnivariateTaylorSeries(Coef,var,cen),UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB UTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,Equation UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB UTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,List Equation UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB UTS(Coef,var,cen) and Coef has FIELD
---R eval : (%,List Symbol,List UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,UTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(UnivariateTaylorSeries(Coef,var,cen)),List(UnivariateTaylorSeries(Coef,var,cen))) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB(UTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,UnivariateTaylorSeries(Coef,var,cen),UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB(UTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,Equation(UnivariateTaylorSeries(Coef,var,cen))) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB(UTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(Equation(UnivariateTaylorSeries(Coef,var,cen)))) -> % if UnivariateTaylorSeries(Coef,var,cen) has EVALAB(UTS(Coef,var,cen)) and Coef has FIELD
+--R eval : (%,List(Symbol),List(UnivariateTaylorSeries(Coef,var,cen))) -> % if UnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,UTS(Coef,var,cen)) and Coef has FIELD
 --R eval : (%,Symbol,UnivariateTaylorSeries(Coef,var,cen)) -> % if UnivariateTaylorSeries(Coef,var,cen) has IEVALAB(SYMBOL,UTS(Coef,var,cen)) and Coef has FIELD
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,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,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 UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --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 factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R factor : % -> Factored(%) if Coef has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
 --R floor : % -> UnivariateTaylorSeries(Coef,var,cen) if UnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
 --R fractionPart : % -> % if UnivariateTaylorSeries(Coef,var,cen) has EUCDOM and 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 gcd : List(%) -> % if Coef has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if Coef has FIELD
 --R init : () -> % if UnivariateTaylorSeries(Coef,var,cen) has STEP and 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 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 laurent : (Integer,UnivariateTaylorSeries(Coef,var,cen)) -> %
 --R lcm : (%,%) -> % if Coef has FIELD
---R lcm : List % -> % if Coef has FIELD
---R log : % -> % if Coef has ALGEBRA FRAC INT
+--R lcm : List(%) -> % if Coef has FIELD
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R map : ((UnivariateTaylorSeries(Coef,var,cen) -> UnivariateTaylorSeries(Coef,var,cen)),%) -> % if Coef has FIELD
 --R max : (%,%) -> % if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
 --R min : (%,%) -> % if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has ORDSET and Coef has FIELD
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
 --R monomial : (%,SingletonAsOrderedSet,Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if Coef has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if Coef has FIELD
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R negative? : % -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
 --R nextItem : % -> Union(%,"failed") if UnivariateTaylorSeries(Coef,var,cen) has STEP and Coef has FIELD
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R numer : % -> UnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
 --R numerator : % -> % if Coef has FIELD
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UnivariateTaylorSeries(Coef,var,cen) has PATMAB FLOAT and Coef has FIELD
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UnivariateTaylorSeries(Coef,var,cen) has PATMAB INT and Coef has FIELD
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UnivariateTaylorSeries(Coef,var,cen) has PATMAB(FLOAT) and Coef has FIELD
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UnivariateTaylorSeries(Coef,var,cen) has PATMAB(INT) and Coef has FIELD
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
 --R positive? : % -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
 --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 random : () -> % if UnivariateTaylorSeries(Coef,var,cen) has INS and Coef has FIELD
---R rationalFunction : (%,Integer,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R rationalFunction : (%,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R reducedSystem : Matrix % -> Matrix Integer if UnivariateTaylorSeries(Coef,var,cen) has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if UnivariateTaylorSeries(Coef,var,cen) has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix UnivariateTaylorSeries(Coef,var,cen),vec: Vector UnivariateTaylorSeries(Coef,var,cen)) if Coef has FIELD
---R reducedSystem : Matrix % -> Matrix UnivariateTaylorSeries(Coef,var,cen) if Coef has FIELD
+--R rationalFunction : (%,Integer,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R rationalFunction : (%,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if UnivariateTaylorSeries(Coef,var,cen) has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if UnivariateTaylorSeries(Coef,var,cen) has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(UnivariateTaylorSeries(Coef,var,cen)),vec: Vector(UnivariateTaylorSeries(Coef,var,cen))) if Coef has FIELD
+--R reducedSystem : Matrix(%) -> Matrix(UnivariateTaylorSeries(Coef,var,cen)) if Coef has FIELD
 --R ?rem? : (%,%) -> % if Coef has FIELD
---R retract : % -> Integer if UnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retract : % -> Fraction Integer if UnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retract : % -> Symbol if UnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R retract : % -> Integer if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retract : % -> Fraction(Integer) if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retract : % -> Symbol if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R retract : % -> UnivariateTaylorSeries(Coef,var,cen)
---R retractIfCan : % -> Union(Integer,"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Fraction Integer,"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Symbol,"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT SYMBOL and Coef has FIELD
+--R retractIfCan : % -> Union(Integer,"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Symbol,"failed") if UnivariateTaylorSeries(Coef,var,cen) has RETRACT(SYMBOL) and Coef has FIELD
 --R retractIfCan : % -> Union(UnivariateTaylorSeries(Coef,var,cen),"failed")
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: Integer,c: Coef) -> %
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: Integer,c: Coef)) -> %
 --R sign : % -> Integer if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R sizeLess? : (%,%) -> Boolean if Coef has FIELD
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
---R squareFree : % -> Factored % if Coef has FIELD
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and 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 squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if Coef has ALGEBRA FRAC INT
---R tanh : % -> % if Coef has ALGEBRA FRAC INT
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R taylor : % -> UnivariateTaylorSeries(Coef,var,cen)
 --R taylorIfCan : % -> Union(UnivariateTaylorSeries(Coef,var,cen),"failed")
 --R taylorRep : % -> UnivariateTaylorSeries(Coef,var,cen)
---R terms : % -> Stream Record(k: Integer,c: Coef)
+--R terms : % -> Stream(Record(k: Integer,c: Coef))
 --R truncate : (%,Integer,Integer) -> %
 --R unit? : % -> Boolean if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --R unitCanonical : % -> % if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if UnivariateTaylorSeries(Coef,var,cen) has OINTDOM and Coef has FIELD or UnivariateTaylorSeries(Coef,var,cen) has PFECAT and Coef has FIELD or Coef has INTDOM
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R wholePart : % -> UnivariateTaylorSeries(Coef,var,cen) if UnivariateTaylorSeries(Coef,var,cen) has EUCDOM and Coef has FIELD
 --R
 --E 1
@@ -136141,7 +136588,8 @@ UnivariateLaurentSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show UnivariateLaurentSeriesConstructor
---R UnivariateLaurentSeriesConstructor(Coef: Ring,UTS: UnivariateTaylorSeriesCategory Coef)  is a domain constructor
+--R 
+--R UnivariateLaurentSeriesConstructor(Coef: Ring,UTS: UnivariateTaylorSeriesCategory(Coef))  is a domain constructor
 --R Abbreviation for UnivariateLaurentSeriesConstructor is ULSCONS 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for ULSCONS 
@@ -136170,13 +136618,13 @@ UnivariateLaurentSeries(Coef,var,cen): Exports == Implementation where
 --R taylor : % -> UTS                     taylorRep : % -> UTS
 --R truncate : (%,Integer) -> %           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 ?*? : (UTS,%) -> % if Coef has FIELD
 --R ?*? : (%,UTS) -> % if Coef has FIELD
 --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 ?/? : (UTS,UTS) -> % if Coef has FIELD
@@ -136186,10 +136634,10 @@ UnivariateLaurentSeries(Coef,var,cen): Exports == Implementation where
 --R ?<=? : (%,%) -> Boolean if UTS has ORDSET and Coef has FIELD
 --R ?>? : (%,%) -> Boolean if UTS has ORDSET and Coef has FIELD
 --R ?>=? : (%,%) -> Boolean if UTS has ORDSET and Coef has FIELD
---R D : (%,Symbol) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R D : % -> % if UTS has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if UTS has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,(UTS -> UTS),NonNegativeInteger) -> % if Coef has FIELD
@@ -136197,45 +136645,45 @@ UnivariateLaurentSeries(Coef,var,cen): Exports == Implementation where
 --R ?^? : (%,Integer) -> % if Coef has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if UTS has OINTDOM and Coef has FIELD
---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 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 : (%,Integer) -> Coef if Coef has **: (Coef,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 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 ceiling : % -> UTS if UTS has INS and Coef has FIELD
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ and UTS has PFECAT and Coef has FIELD or UTS has CHARNZ and Coef has FIELD or Coef has CHARNZ
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
---R coerce : Symbol -> % if UTS has RETRACT SYMBOL and Coef has FIELD
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--R coerce : Symbol -> % if UTS has RETRACT(SYMBOL) and Coef has FIELD
 --R coerce : Coef -> % if Coef has COMRING
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and UTS has PFECAT and Coef has FIELD
---R convert : % -> Pattern Integer if UTS has KONVERT PATTERN INT and Coef has FIELD
---R convert : % -> Pattern Float if UTS has KONVERT PATTERN FLOAT and Coef has FIELD
---R convert : % -> InputForm if UTS has KONVERT INFORM and Coef has FIELD
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ and UTS has PFECAT and Coef has FIELD
+--R convert : % -> Pattern(Integer) if UTS has KONVERT(PATTERN(INT)) and Coef has FIELD
+--R convert : % -> Pattern(Float) if UTS has KONVERT(PATTERN(FLOAT)) and Coef has FIELD
+--R convert : % -> InputForm if UTS has KONVERT(INFORM) and Coef has FIELD
 --R convert : % -> Float if UTS has REAL and Coef has FIELD
 --R convert : % -> DoubleFloat if UTS has REAL and Coef has FIELD
---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 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 denom : % -> UTS if Coef has FIELD
 --R denominator : % -> % if Coef has FIELD
---R differentiate : (%,Symbol) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if UTS has PDRING SYMBOL and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if UTS has PDRING(SYMBOL) and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R differentiate : % -> % if UTS has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if UTS has DIFRING and Coef has FIELD or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,(UTS -> UTS),NonNegativeInteger) -> % if Coef has FIELD
@@ -136244,90 +136692,90 @@ UnivariateLaurentSeries(Coef,var,cen): Exports == Implementation where
 --R ?.? : (%,UTS) -> % if UTS has ELTAB(UTS,UTS) and Coef has FIELD
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger if Coef has FIELD
---R eval : (%,List UTS,List UTS) -> % if UTS has EVALAB UTS and Coef has FIELD
---R eval : (%,UTS,UTS) -> % if UTS has EVALAB UTS and Coef has FIELD
---R eval : (%,Equation UTS) -> % if UTS has EVALAB UTS and Coef has FIELD
---R eval : (%,List Equation UTS) -> % if UTS has EVALAB UTS and Coef has FIELD
---R eval : (%,List Symbol,List UTS) -> % if UTS has IEVALAB(SYMBOL,UTS) and Coef has FIELD
+--R eval : (%,List(UTS),List(UTS)) -> % if UTS has EVALAB(UTS) and Coef has FIELD
+--R eval : (%,UTS,UTS) -> % if UTS has EVALAB(UTS) and Coef has FIELD
+--R eval : (%,Equation(UTS)) -> % if UTS has EVALAB(UTS) and Coef has FIELD
+--R eval : (%,List(Equation(UTS))) -> % if UTS has EVALAB(UTS) and Coef has FIELD
+--R eval : (%,List(Symbol),List(UTS)) -> % if UTS has IEVALAB(SYMBOL,UTS) and Coef has FIELD
 --R eval : (%,Symbol,UTS) -> % if UTS has IEVALAB(SYMBOL,UTS) and Coef has FIELD
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,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,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 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 factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UTS has PFECAT and Coef has FIELD
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UTS has PFECAT and Coef has FIELD
+--R factor : % -> Factored(%) if Coef has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UTS has PFECAT and Coef has FIELD
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UTS has PFECAT and Coef has FIELD
 --R floor : % -> UTS if UTS has INS and Coef has FIELD
 --R fractionPart : % -> % if UTS has EUCDOM and 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 gcd : List(%) -> % if Coef has FIELD
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if Coef has FIELD
 --R init : () -> % if UTS has STEP and Coef has FIELD
---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 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 lcm : List(%) -> % if Coef has FIELD
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R map : ((UTS -> UTS),%) -> % if Coef has FIELD
 --R max : (%,%) -> % if UTS has ORDSET and Coef has FIELD
 --R min : (%,%) -> % if UTS has ORDSET and Coef has FIELD
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
 --R monomial : (%,SingletonAsOrderedSet,Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if Coef has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if Coef has FIELD
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R negative? : % -> Boolean if UTS has OINTDOM and Coef has FIELD
 --R nextItem : % -> Union(%,"failed") if UTS has STEP and Coef has FIELD
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R numer : % -> UTS if Coef has FIELD
 --R numerator : % -> % if Coef has FIELD
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UTS has PATMAB INT and Coef has FIELD
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UTS has PATMAB FLOAT and Coef has FIELD
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if UTS has PATMAB(INT) and Coef has FIELD
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if UTS has PATMAB(FLOAT) and Coef has FIELD
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
 --R positive? : % -> Boolean if UTS has OINTDOM and Coef has FIELD
 --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 random : () -> % if UTS has INS and Coef has FIELD
---R rationalFunction : (%,Integer,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R rationalFunction : (%,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R reducedSystem : Matrix % -> Matrix Integer if UTS has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if UTS has LINEXP INT and Coef has FIELD
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix UTS,vec: Vector UTS) if Coef has FIELD
---R reducedSystem : Matrix % -> Matrix UTS if Coef has FIELD
+--R rationalFunction : (%,Integer,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R rationalFunction : (%,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if UTS has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if UTS has LINEXP(INT) and Coef has FIELD
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(UTS),vec: Vector(UTS)) if Coef has FIELD
+--R reducedSystem : Matrix(%) -> Matrix(UTS) if Coef has FIELD
 --R ?rem? : (%,%) -> % if Coef has FIELD
---R retract : % -> Symbol if UTS has RETRACT SYMBOL and Coef has FIELD
---R retract : % -> Fraction Integer if UTS has RETRACT INT and Coef has FIELD
---R retract : % -> Integer if UTS has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Symbol,"failed") if UTS has RETRACT SYMBOL and Coef has FIELD
---R retractIfCan : % -> Union(Fraction Integer,"failed") if UTS has RETRACT INT and Coef has FIELD
---R retractIfCan : % -> Union(Integer,"failed") if UTS has RETRACT INT and Coef has FIELD
+--R retract : % -> Symbol if UTS has RETRACT(SYMBOL) and Coef has FIELD
+--R retract : % -> Fraction(Integer) if UTS has RETRACT(INT) and Coef has FIELD
+--R retract : % -> Integer if UTS has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Symbol,"failed") if UTS has RETRACT(SYMBOL) and Coef has FIELD
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if UTS has RETRACT(INT) and Coef has FIELD
+--R retractIfCan : % -> Union(Integer,"failed") if UTS has RETRACT(INT) and Coef has FIELD
 --R retractIfCan : % -> Union(UTS,"failed")
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: Integer,c: Coef) -> %
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: Integer,c: Coef)) -> %
 --R sign : % -> Integer if UTS has OINTDOM and Coef has FIELD
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R sizeLess? : (%,%) -> Boolean if Coef has FIELD
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if UTS has PFECAT and Coef has FIELD
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
---R squareFree : % -> Factored % if Coef has FIELD
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if UTS has PFECAT and 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 squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if UTS has PFECAT and Coef has FIELD
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if UTS has PFECAT and Coef has FIELD
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R tan : % -> % if Coef has ALGEBRA FRAC INT
---R tanh : % -> % if Coef has ALGEBRA FRAC INT
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R taylorIfCan : % -> Union(UTS,"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 wholePart : % -> UTS if UTS has EUCDOM and Coef has FIELD
 --R
 --E 1
@@ -137097,7 +137545,7 @@ l := coefficients p
 --R 
 --R
 --R   (15)  [18,60,- 46,8]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 15
 
 --S 16 of 35
@@ -137130,7 +137578,7 @@ vectorise(ux,5)
 --R 
 --R
 --R   (19)  [3,2,0,0,1]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 19
 
 --S 20 of 35
@@ -137172,7 +137620,7 @@ r := a1**2 - 2/3
 --R           2   2
 --R   (24)  a1  - -
 --R               3
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 24
 
 --S 25 of 35
@@ -137180,7 +137628,7 @@ s := a1 + 4
 --R 
 --R
 --R   (25)  a1 + 4
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 25
 
 --S 26 of 35
@@ -137188,7 +137636,7 @@ r quo s
 --R 
 --R
 --R   (26)  a1 - 4
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 26
 
 --S 27 of 35
@@ -137198,7 +137646,7 @@ r rem s
 --R         46
 --R   (27)  --
 --R          3
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 27
 
 --S 28 of 35
@@ -137208,7 +137656,7 @@ d := divide(r, s)
 --R                                      46
 --R   (28)  [quotient= a1 - 4,remainder= --]
 --R                                       3
---RType: Record(quotient: UnivariatePolynomial(a1,Fraction Integer),remainder: UnivariatePolynomial(a1,Fraction Integer))
+--IType: Record(quotient: UnivariatePolynomial(a1,Fraction(Integer)),...
 --E 28
 
 --S 29 of 35
@@ -137216,7 +137664,7 @@ r - (d.quotient * s + d.remainder)
 --R 
 --R
 --R   (29)  0
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 29
 
 --S 30 of 35
@@ -137226,7 +137674,7 @@ integrate r
 --R         1   3   2
 --R   (30)  - a1  - - a1
 --R         3       3
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 30
 
 --S 31 of 35
@@ -137236,7 +137684,7 @@ integrate s
 --R         1   2
 --R   (31)  - a1  + 4a1
 --R         2
---R                              Type: UnivariatePolynomial(a1,Fraction Integer)
+--R                             Type: UnivariatePolynomial(a1,Fraction(Integer))
 --E 31
 
 --S 32 of 35
@@ -137253,7 +137701,7 @@ t := a1**2 - a1/b2 + (b1**2-b1)/(b2+3)
 --R           2    1      b1  - b1
 --R   (33)  a1  - -- a1 + --------
 --R               b2       b2 + 3
---R                   Type: UnivariatePolynomial(a1,Fraction Polynomial Integer)
+--R                 Type: UnivariatePolynomial(a1,Fraction(Polynomial(Integer)))
 --E 33
 
 --S 34 of 35
@@ -137265,7 +137713,7 @@ u : FRAC POLY INT := t
 --R   (34)  ---------------------------------------
 --R                          2
 --R                        b2  + 3b2
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 34
 
 --S 35 of 35
@@ -137276,7 +137724,7 @@ u :: UP(b1,?)
 --R            1     2      1        a1 b2 - a1
 --R   (35)  ------ b1  - ------ b1 + ----------
 --R         b2 + 3       b2 + 3          b2
---R                   Type: UnivariatePolynomial(b1,Fraction Polynomial Integer)
+--R                 Type: UnivariatePolynomial(b1,Fraction(Polynomial(Integer)))
 --E 35
 )spool
 )lisp (bye)
@@ -137756,6 +138204,7 @@ UnivariatePolynomial(x:Symbol, R:Ring):
 
 --S 1 of 1
 )show UnivariatePuiseuxSeries
+--R 
 --R UnivariatePuiseuxSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for UnivariatePuiseuxSeries is UPXS 
 --R This constructor is not exposed in this frame.
@@ -137769,131 +138218,131 @@ UnivariatePolynomial(x:Symbol, R:Ring):
 --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 : UnivariateTaylorSeries(Coef,var,cen) -> %
 --R coerce : UnivariateLaurentSeries(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 laurent : % -> UnivariateLaurentSeries(Coef,var,cen)
 --R laurentIfCan : % -> Union(UnivariateLaurentSeries(Coef,var,cen),"failed")
 --R laurentRep : % -> UnivariateLaurentSeries(Coef,var,cen)
 --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 puiseux : (Fraction Integer,UnivariateLaurentSeries(Coef,var,cen)) -> %
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if Coef has FIELD
+--R puiseux : (Fraction(Integer),UnivariateLaurentSeries(Coef,var,cen)) -> %
 --R ?quo? : (%,%) -> % if Coef has FIELD
---R rationalPower : % -> Fraction Integer
+--R rationalPower : % -> Fraction(Integer)
 --R ?rem? : (%,%) -> % if Coef has FIELD
 --R retract : % -> UnivariateTaylorSeries(Coef,var,cen)
 --R retract : % -> UnivariateLaurentSeries(Coef,var,cen)
 --R retractIfCan : % -> Union(UnivariateTaylorSeries(Coef,var,cen),"failed")
 --R retractIfCan : % -> Union(UnivariateLaurentSeries(Coef,var,cen),"failed")
---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
 
@@ -138203,7 +138652,8 @@ UnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show UnivariatePuiseuxSeriesConstructor
---R UnivariatePuiseuxSeriesConstructor(Coef: Ring,ULS: UnivariateLaurentSeriesCategory Coef)  is a domain constructor
+--R 
+--R UnivariatePuiseuxSeriesConstructor(Coef: Ring,ULS: UnivariateLaurentSeriesCategory(Coef))  is a domain constructor
 --R Abbreviation for UnivariatePuiseuxSeriesConstructor is UPXSCONS 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for UPXSCONS 
@@ -138218,122 +138668,122 @@ UnivariatePuiseuxSeries(Coef,var,cen): Exports == Implementation where
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
 --R coerce : ULS -> %                     coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R degree : % -> Fraction Integer        hash : % -> SingleInteger
+--R degree : % -> Fraction(Integer)       hash : % -> SingleInteger
 --R latex : % -> String                   laurent : % -> ULS
 --R laurentRep : % -> ULS                 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 retract : % -> ULS                    sample : () -> %
 --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 ?**? : (%,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 : 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 : % -> % 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 : % -> % 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 : (%,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 : (%,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 laurentIfCan : % -> Union(ULS,"failed")
 --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 puiseux : (Fraction Integer,ULS) -> %
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if Coef has FIELD
+--R puiseux : (Fraction(Integer),ULS) -> %
 --R ?quo? : (%,%) -> % if Coef has FIELD
---R rationalPower : % -> Fraction Integer
+--R rationalPower : % -> Fraction(Integer)
 --R ?rem? : (%,%) -> % if Coef has FIELD
 --R retractIfCan : % -> Union(ULS,"failed")
---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
 
@@ -138832,7 +139282,8 @@ UnivariatePuiseuxSeriesConstructor(Coef,ULS):_
 
 --S 1 of 1
 )show UnivariatePuiseuxSeriesWithExponentialSingularity
---R UnivariatePuiseuxSeriesWithExponentialSingularity(R: Join(OrderedSet,RetractableTo Integer,LinearlyExplicitRingOver Integer,GcdDomain),FE: Join(AlgebraicallyClosedField,TranscendentalFunctionCategory,FunctionSpace R),var: Symbol,cen: FE)  is a domain constructor
+--R 
+--R UnivariatePuiseuxSeriesWithExponentialSingularity(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 UnivariatePuiseuxSeriesWithExponentialSingularity is UPXSSING 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for UPXSSING 
@@ -138852,8 +139303,8 @@ UnivariatePuiseuxSeriesConstructor(Coef,ULS):_
 --R reductum : % -> %                     sample : () -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
---R ?*? : (%,Fraction Integer) -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA FRAC INT
---R ?*? : (Fraction Integer,%) -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA FRAC INT
+--R ?*? : (%,Fraction(Integer)) -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA(FRAC(INT))
+--R ?*? : (Fraction(Integer),%) -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA(FRAC(INT))
 --R ?*? : (UnivariatePuiseuxSeries(FE,var,cen),%) -> %
 --R ?*? : (%,UnivariatePuiseuxSeries(FE,var,cen)) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
@@ -138864,17 +139315,17 @@ UnivariatePuiseuxSeriesConstructor(Coef,ULS):_
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if UnivariatePuiseuxSeries(FE,var,cen) has CHARNZ
 --R coefficient : (%,ExponentialOfUnivariatePuiseuxSeries(FE,var,cen)) -> UnivariatePuiseuxSeries(FE,var,cen)
---R coefficients : % -> List UnivariatePuiseuxSeries(FE,var,cen)
---R coerce : Fraction Integer -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA FRAC INT or UnivariatePuiseuxSeries(FE,var,cen) has RETRACT FRAC INT
+--R coefficients : % -> List(UnivariatePuiseuxSeries(FE,var,cen))
+--R coerce : Fraction(Integer) -> % if UnivariatePuiseuxSeries(FE,var,cen) has ALGEBRA(FRAC(INT)) or UnivariatePuiseuxSeries(FE,var,cen) has RETRACT(FRAC(INT))
 --R coerce : UnivariatePuiseuxSeries(FE,var,cen) -> %
 --R content : % -> UnivariatePuiseuxSeries(FE,var,cen) if UnivariatePuiseuxSeries(FE,var,cen) has GCDDOM
 --R degree : % -> ExponentialOfUnivariatePuiseuxSeries(FE,var,cen)
---R dominantTerm : % -> Union(Record(%term: Record(%coef: UnivariatePuiseuxSeries(FE,var,cen),%expon: ExponentialOfUnivariatePuiseuxSeries(FE,var,cen),%expTerms: List Record(k: Fraction Integer,c: FE)),%type: String),"failed")
+--R dominantTerm : % -> Union(Record(%term: Record(%coef: UnivariatePuiseuxSeries(FE,var,cen),%expon: ExponentialOfUnivariatePuiseuxSeries(FE,var,cen),%expTerms: List(Record(k: Fraction(Integer),c: FE))),%type: String),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
 --R exquo : (%,UnivariatePuiseuxSeries(FE,var,cen)) -> Union(%,"failed") if UnivariatePuiseuxSeries(FE,var,cen) has INTDOM
 --R ground : % -> UnivariatePuiseuxSeries(FE,var,cen)
 --R leadingCoefficient : % -> UnivariatePuiseuxSeries(FE,var,cen)
---R limitPlus : % -> Union(OrderedCompletion FE,"failed")
+--R limitPlus : % -> Union(OrderedCompletion(FE),"failed")
 --R map : ((UnivariatePuiseuxSeries(FE,var,cen) -> UnivariatePuiseuxSeries(FE,var,cen)),%) -> %
 --R mapExponents : ((ExponentialOfUnivariatePuiseuxSeries(FE,var,cen) -> ExponentialOfUnivariatePuiseuxSeries(FE,var,cen)),%) -> %
 --R minimumDegree : % -> ExponentialOfUnivariatePuiseuxSeries(FE,var,cen)
@@ -138883,11 +139334,11 @@ UnivariatePuiseuxSeriesConstructor(Coef,ULS):_
 --R pomopo! : (%,UnivariatePuiseuxSeries(FE,var,cen),ExponentialOfUnivariatePuiseuxSeries(FE,var,cen),%) -> %
 --R primitivePart : % -> % if UnivariatePuiseuxSeries(FE,var,cen) has GCDDOM
 --R retract : % -> UnivariatePuiseuxSeries(FE,var,cen)
---R retract : % -> Fraction Integer if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT FRAC INT
---R retract : % -> Integer if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT INT
+--R retract : % -> Fraction(Integer) if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT(FRAC(INT))
+--R retract : % -> Integer if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT(INT)
 --R retractIfCan : % -> Union(UnivariatePuiseuxSeries(FE,var,cen),"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT INT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if UnivariatePuiseuxSeries(FE,var,cen) has RETRACT(INT)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -139268,7 +139719,7 @@ UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen):_
 F:=EXPR(FRAC(INT))
 --R 
 --R
---R   (1)  Expression Fraction Integer
+--R   (1)  Expression(Fraction(Integer))
 --E 1
 
 --S 2 of 33
@@ -139283,10 +139734,11 @@ D0:=OREUP('d,F,1,Dx)
 --R 
 --R
 --R   (3)
---I  UnivariateSkewPolynomial(d,Expression Fraction Integer,R -> R,theMap LAMBDA-C
---I  LOSURE(NIL,NIL,NIL,G9057 envArg,SPADCALL(G9057,coerceOrCroak(CONS(QUOTE List 
---I  Variable x,wrap LIST QUOTE x),QUOTE List Symbol,QUOTE *1;anonymousFunction;2;
---I  frame0;internal),ELT(*1;anonymousFunction;2;frame0;internal;MV,0))))
+--I  UnivariateSkewPolynomial(d,Expression(Fraction(Integer)),R -> R,theMap(LAMBDA
+--I  -CLOSURE(NIL,NIL,NIL,G1393(envArg),SPADCALL(G1393,coerceOrCroak(CONS(QUOTE(Li
+--I  st(Variable(x))),wrap(LIST(QUOTE(x)))),QUOTE(List(Symbol)),QUOTE(*1;anonymous
+--I  Function;0;initial;internal)),ELT(*1;anonymousFunction;0;initial;internal;MV,
+  0)))))
 --E 3
 
 --S 4 of 33
@@ -139377,7 +139829,7 @@ W:=OREUP('x,R,1,D)
 --R
 --R   (2)
 --R  UnivariateSkewPolynomial(x,UnivariatePolynomial(t,Integer),R -> R,theMap(DIFR
---I  ING-;D;2S;1,411))
+--I  ING-;D;2S;1,0))
 --E 12
 
 --S 13 of 33
@@ -139547,12 +139999,12 @@ S:=OREUP('x,R,1,delta)
 --R 
 --R
 --R   (4)
---I  UnivariateSkewPolynomial(x,SquareMatrix(2,Integer),R -> R,theMap LAMBDA-CLOSU
---I  RE(NIL,NIL,NIL,G9459 envArg,SPADCALL(SPADCALL(getValueFromEnvironment(QUOTE y
---I  ,QUOTE SquareMatrix(2,Integer)),G9459,ELT(*1;anonymousFunction;13;frame0;inte
---I  rnal;MV,0)),SPADCALL(G9459,getValueFromEnvironment(QUOTE y,QUOTE SquareMatrix
---I  (2,Integer)),ELT(*1;anonymousFunction;13;frame0;internal;MV,0)),ELT(*1;anonym
---I  ousFunction;13;frame0;internal;MV,1))))
+--I  UnivariateSkewPolynomial(x,SquareMatrix(2,Integer),R -> R,theMap(LAMBDA-CLOSU
+--I  RE(NIL,NIL,NIL,G1461(envArg),SPADCALL(SPADCALL(getValueFromEnvironment(QUOTE(
+--I  y),QUOTE(SquareMatrix(2,Integer))),G1461,ELT(*1;anonymousFunction;3;initial;i
+--I  nternal;MV,0)),SPADCALL(G1461,getValueFromEnvironment(QUOTE(y),QUOTE(SquareMa
+--I  trix(2,Integer))),ELT(*1;anonymousFunction;3;initial;internal;MV,0)),ELT(*1;a
+--I  nonymousFunction;3;initial;internal;MV,1)))))
 --E 29
 
 --S 30 of 33
@@ -139583,7 +140035,7 @@ x^2*a
 --S 33 of 33
 )show UnivariateSkewPolynomial
 --R 
---R UnivariateSkewPolynomial(x: Symbol,R: Ring,sigma: Automorphism R,delta: (R -> R))  is a domain constructor
+--R UnivariateSkewPolynomial(x: Symbol,R: Ring,sigma: Automorphism(R),delta: (R -> R))  is a domain constructor
 --R Abbreviation for UnivariateSkewPolynomial is OREUP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for OREUP 
@@ -139596,7 +140048,7 @@ x^2*a
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        apply : (%,R,R) -> R
---R coefficients : % -> List R            coerce : Variable x -> %
+--R coefficients : % -> List(R)           coerce : Variable(x) -> %
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              degree : % -> NonNegativeInteger
 --R hash : % -> SingleInteger             latex : % -> String
@@ -139609,7 +140061,7 @@ x^2*a
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R coefficient : (%,NonNegativeInteger) -> R
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R content : % -> R if R has GCDDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R leftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
@@ -139624,11 +140076,11 @@ x^2*a
 --R monicRightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has INTDOM
 --R monomial : (R,NonNegativeInteger) -> %
 --R primitivePart : % -> % if R has GCDDOM
---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 rightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
 --R rightExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD
 --R rightExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD
@@ -140030,6 +140482,7 @@ UnivariateSkewPolynomial(x:Symbol,R:Ring,sigma:Automorphism R,delta: R -> R):
 
 --S 1 of 1
 )show UnivariateTaylorSeries
+--R 
 --R UnivariateTaylorSeries(Coef: Ring,var: Symbol,cen: Coef)  is a domain constructor
 --R Abbreviation for UnivariateTaylorSeries is UTS 
 --R This constructor is not exposed in this frame.
@@ -140043,7 +140496,7 @@ UnivariateSkewPolynomial(x:Symbol,R:Ring,sigma:Automorphism R,delta: R -> R):
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficients : % -> Stream Coef       coerce : Variable var -> %
+--R coefficients : % -> Stream(Coef)      coerce : Variable(var) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> NonNegativeInteger
 --R evenlambert : % -> %                  hash : % -> SingleInteger
@@ -140055,97 +140508,97 @@ UnivariateSkewPolynomial(x:Symbol,R:Ring,sigma:Automorphism R,delta: R -> R):
 --R pole? : % -> Boolean                  quoByVar : % -> %
 --R recip : % -> Union(%,"failed")        reductum : % -> %
 --R revert : % -> %                       sample : () -> %
---R series : Stream Coef -> %             variable : % -> Symbol
+--R series : Stream(Coef) -> %            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 ?**? : (%,Coef) -> % if Coef has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --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 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 : (%,NonNegativeInteger) -> Coef if Coef has **: (Coef,NonNegativeInteger) -> 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 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 : (%,NonNegativeInteger) -> Coef
 --R coerce : UnivariatePolynomial(var,Coef) -> %
 --R coerce : Coef -> % if Coef has COMRING
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
---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 coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--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 *: (NonNegativeInteger,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?.? : (%,%) -> % if NonNegativeInteger has SGROUP
 --R ?.? : (%,NonNegativeInteger) -> Coef
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,NonNegativeInteger) -> Coef
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,NonNegativeInteger) -> Coef
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
 --R generalLambert : (%,Integer,Integer) -> %
---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 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 invmultisect : (Integer,Integer,%) -> %
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (Coef,NonNegativeInteger) -> %
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R multisect : (Integer,Integer,%) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,NonNegativeInteger) -> NonNegativeInteger
---R pi : () -> % if Coef has ALGEBRA FRAC INT
---R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial Coef
---R polynomial : (%,NonNegativeInteger) -> Polynomial Coef
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: NonNegativeInteger,c: Coef) -> %
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
+--R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial(Coef)
+--R polynomial : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: NonNegativeInteger,c: Coef)) -> %
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
 --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: NonNegativeInteger,c: Coef)
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: NonNegativeInteger,c: Coef))
 --R truncate : (%,NonNegativeInteger,NonNegativeInteger) -> %
 --R truncate : (%,NonNegativeInteger) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
 --R univariatePolynomial : (%,NonNegativeInteger) -> UnivariatePolynomial(var,Coef)
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -140548,6 +141001,7 @@ UnivariateTaylorSeries(Coef,var,cen): Exports == Implementation where
 
 --S 1 of 1
 )show UnivariateTaylorSeriesCZero
+--R 
 --R UnivariateTaylorSeriesCZero(Coef: Ring,var: Symbol)  is a domain constructor
 --R Abbreviation for UnivariateTaylorSeriesCZero is UTSZ 
 --R This constructor is exposed in this frame.
@@ -140561,7 +141015,7 @@ UnivariateTaylorSeries(Coef,var,cen): Exports == Implementation where
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficients : % -> Stream Coef       coerce : Variable var -> %
+--R coefficients : % -> Stream(Coef)      coerce : Variable(var) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> NonNegativeInteger
 --R evenlambert : % -> %                  hash : % -> SingleInteger
@@ -140573,97 +141027,97 @@ UnivariateTaylorSeries(Coef,var,cen): Exports == Implementation where
 --R pole? : % -> Boolean                  quoByVar : % -> %
 --R recip : % -> Union(%,"failed")        reductum : % -> %
 --R revert : % -> %                       sample : () -> %
---R series : Stream Coef -> %             variable : % -> Symbol
+--R series : Stream(Coef) -> %            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 ?**? : (%,Coef) -> % if Coef has FIELD
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R D : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --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 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 : (%,NonNegativeInteger) -> Coef if Coef has **: (Coef,NonNegativeInteger) -> 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 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 : (%,NonNegativeInteger) -> Coef
 --R coerce : UnivariatePolynomial(var,Coef) -> %
 --R coerce : Coef -> % if Coef has COMRING
 --R coerce : % -> % if Coef has INTDOM
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
---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 coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--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 *: (NonNegativeInteger,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING SYMBOL
+--R differentiate : (%,Symbol) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef and Coef has PDRING(SYMBOL)
 --R ?.? : (%,%) -> % if NonNegativeInteger has SGROUP
 --R ?.? : (%,NonNegativeInteger) -> Coef
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,NonNegativeInteger) -> Coef
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,NonNegativeInteger) -> Coef
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
 --R generalLambert : (%,Integer,Integer) -> %
---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 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 invmultisect : (Integer,Integer,%) -> %
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(SingletonAsOrderedSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,SingletonAsOrderedSet,NonNegativeInteger) -> %
 --R monomial : (Coef,NonNegativeInteger) -> %
 --R multiplyCoefficients : ((Integer -> Coef),%) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R multisect : (Integer,Integer,%) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,NonNegativeInteger) -> NonNegativeInteger
---R pi : () -> % if Coef has ALGEBRA FRAC INT
---R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial Coef
---R polynomial : (%,NonNegativeInteger) -> Polynomial Coef
---R sec : % -> % if Coef has ALGEBRA FRAC INT
---R sech : % -> % if Coef has ALGEBRA FRAC INT
---R series : Stream Record(k: NonNegativeInteger,c: Coef) -> %
---R sin : % -> % if Coef has ALGEBRA FRAC INT
---R sinh : % -> % if Coef has ALGEBRA FRAC INT
---R sqrt : % -> % if Coef has ALGEBRA FRAC INT
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
+--R polynomial : (%,NonNegativeInteger,NonNegativeInteger) -> Polynomial(Coef)
+--R polynomial : (%,NonNegativeInteger) -> Polynomial(Coef)
+--R sec : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sech : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R series : Stream(Record(k: NonNegativeInteger,c: Coef)) -> %
+--R sin : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sinh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R sqrt : % -> % if Coef has ALGEBRA(FRAC(INT))
 --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: NonNegativeInteger,c: Coef)
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R terms : % -> Stream(Record(k: NonNegativeInteger,c: Coef))
 --R truncate : (%,NonNegativeInteger,NonNegativeInteger) -> %
 --R truncate : (%,NonNegativeInteger) -> %
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if Coef has INTDOM
 --R univariatePolynomial : (%,NonNegativeInteger) -> UnivariatePolynomial(var,Coef)
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -141041,7 +141495,7 @@ pints := 1..
 --R 
 --R
 --R   (1)  1..
---R                                       Type: UniversalSegment PositiveInteger
+--R                                      Type: UniversalSegment(PositiveInteger)
 --E 1
 
 --S 2 of 9
@@ -141049,7 +141503,7 @@ nevens := (0..) by -2
 --R 
 --R
 --R   (2)  0.. by - 2
---R                                    Type: UniversalSegment NonNegativeInteger
+--R                                   Type: UniversalSegment(NonNegativeInteger)
 --E 2
 
 --S 3 of 9
@@ -141057,7 +141511,7 @@ useg: UniversalSegment(Integer) := 3..10
 --R 
 --R
 --R   (3)  3..10
---R                                               Type: UniversalSegment Integer
+--R                                              Type: UniversalSegment(Integer)
 --E 3
 
 --S 4 of 9
@@ -141089,7 +141543,7 @@ expand pints
 --R 
 --R
 --R   (7)  [1,2,3,4,5,6,7,8,9,10,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 7
 
 --S 8 of 9
@@ -141097,7 +141551,7 @@ expand nevens
 --R 
 --R
 --R   (8)  [0,- 2,- 4,- 6,- 8,- 10,- 12,- 14,- 16,- 18,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 8
 
 --S 9 of 9
@@ -141105,7 +141559,7 @@ expand [1, 3, 10..15, 100..]
 --R 
 --R
 --R   (9)  [1,3,10,11,12,13,14,15,100,101,...]
---R                                                         Type: Stream Integer
+--R                                                        Type: Stream(Integer)
 --E 9
 )spool
 )lisp (bye)
@@ -141345,19 +141799,20 @@ UniversalSegment(S: Type): SegmentCategory(S) with
 
 --S 1 of 1
 )show U32Vector
+--R 
 --R U32Vector  is a domain constructor
 --R Abbreviation for U32Vector is U32VEC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for U32VEC 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R concat : (Integer,%) -> %             concat : (%,Integer) -> %
---R construct : List Integer -> %         copy : % -> %
+--R construct : List(Integer) -> %        copy : % -> %
 --R delete : (%,Integer) -> %             ?.? : (%,Integer) -> Integer
 --R empty : () -> %                       empty? : % -> Boolean
---R entries : % -> List Integer           eq? : (%,%) -> Boolean
---R index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(Integer)          eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R insert : (%,%,Integer) -> %           qelt : (%,Integer) -> Integer
 --R reverse : % -> %                      sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -141368,18 +141823,18 @@ UniversalSegment(S: Type): SegmentCategory(S) with
 --R ?>=? : (%,%) -> Boolean if Integer has ORDSET
 --R any? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if Integer has SETCAT
---R convert : % -> InputForm if Integer has KONVERT INFORM
+--R convert : % -> InputForm if Integer has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : (Integer,%) -> NonNegativeInteger if $ has finiteAggregate and Integer has SETCAT
 --R count : ((Integer -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R delete : (%,UniversalSegment Integer) -> %
---R ?.? : (%,UniversalSegment Integer) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R elt : (%,Integer,Integer) -> Integer
 --R entry? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT
---R eval : (%,List Integer,List Integer) -> % if Integer has EVALAB INT and Integer has SETCAT
---R eval : (%,Integer,Integer) -> % if Integer has EVALAB INT and Integer has SETCAT
---R eval : (%,Equation Integer) -> % if Integer has EVALAB INT and Integer has SETCAT
---R eval : (%,List Equation Integer) -> % if Integer has EVALAB INT and Integer has SETCAT
+--R eval : (%,List(Integer),List(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,Integer,Integer) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,Equation(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,List(Equation(Integer))) -> % if Integer has EVALAB(INT) and Integer has SETCAT
 --R every? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,Integer) -> % if $ has shallowlyMutable
 --R find : ((Integer -> Boolean),%) -> Union(Integer,"failed")
@@ -141394,14 +141849,14 @@ UniversalSegment(S: Type): SegmentCategory(S) with
 --R max : (%,%) -> % if Integer has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT
---R members : % -> List Integer if $ has finiteAggregate
+--R members : % -> List(Integer) if $ has finiteAggregate
 --R merge : (%,%) -> % if Integer has ORDSET
 --R merge : (((Integer,Integer) -> Boolean),%,%) -> %
 --R min : (%,%) -> % if Integer has ORDSET
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,Integer) -> %
---R parts : % -> List Integer if $ has finiteAggregate
+--R parts : % -> List(Integer) if $ has finiteAggregate
 --R position : (Integer,%,Integer) -> Integer if Integer has SETCAT
 --R position : (Integer,%) -> Integer if Integer has SETCAT
 --R position : ((Integer -> Boolean),%) -> Integer
@@ -141414,7 +141869,7 @@ UniversalSegment(S: Type): SegmentCategory(S) with
 --R removeDuplicates : % -> % if $ has finiteAggregate and Integer has SETCAT
 --R reverse! : % -> % if $ has shallowlyMutable
 --R select : ((Integer -> Boolean),%) -> % if $ has finiteAggregate
---R setelt : (%,UniversalSegment Integer,Integer) -> Integer if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),Integer) -> Integer if $ has shallowlyMutable
 --R setelt : (%,Integer,Integer) -> Integer if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : % -> % if Integer has ORDSET
@@ -141558,7 +142013,8 @@ U32Vector() : OneDimensionalArrayAggregate Integer == add
 
 --S 1 of 1
 )show Variable
---R Variable sym: Symbol  is a domain constructor
+--R 
+--R Variable(sym: Symbol)  is a domain constructor
 --R Abbreviation for Variable is VARIABLE 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for VARIABLE 
@@ -141637,7 +142093,7 @@ u : VECTOR INT := new(5,12)
 --R 
 --R
 --R   (1)  [12,12,12,12,12]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 1
 
 --S 2 of 11
@@ -141645,7 +142101,7 @@ v : VECTOR INT := vector([1,2,3,4,5])
 --R 
 --R
 --R   (2)  [1,2,3,4,5]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 2
 
 --S 3 of 11
@@ -141677,7 +142133,7 @@ v
 --R 
 --R
 --R   (6)  [1,2,99,4,5]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 6
 
 --S 7 of 11
@@ -141685,7 +142141,7 @@ v
 --R 
 --R
 --R   (7)  [5,10,495,20,25]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 7
 
 --S 8 of 11
@@ -141693,7 +142149,7 @@ v * 7
 --R 
 --R
 --R   (8)  [7,14,693,28,35]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 8
 
 --S 9 of 11
@@ -141701,7 +142157,7 @@ w : VECTOR INT := vector([2,3,4,5,6])
 --R 
 --R
 --R   (9)  [2,3,4,5,6]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 9
 
 --S 10 of 11
@@ -141709,7 +142165,7 @@ v + w
 --R 
 --R
 --R   (10)  [3,5,103,9,11]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 10
 
 --S 11 of 11
@@ -141717,7 +142173,7 @@ v - w
 --R 
 --R
 --R   (11)  [- 1,- 1,95,- 1,- 1]
---R                                                         Type: Vector Integer
+--R                                                        Type: Vector(Integer)
 --E 11
 )spool
 )lisp (bye)
@@ -142096,7 +142552,8 @@ Void: with
 
 --S 1 of 1
 )show WeightedPolynomials
---R WeightedPolynomials(R: Ring,VarSet: OrderedSet,E: OrderedAbelianMonoidSup,P: PolynomialCategory(R,E,VarSet),vl: List VarSet,wl: List NonNegativeInteger,wtlevel: NonNegativeInteger)  is a domain constructor
+--R 
+--R WeightedPolynomials(R: Ring,VarSet: OrderedSet,E: OrderedAbelianMonoidSup,P: PolynomialCategory(R,E,VarSet),vl: List(VarSet),wl: List(NonNegativeInteger),wtlevel: NonNegativeInteger)  is a domain constructor
 --R Abbreviation for WeightedPolynomials is WP 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.3.pamphlet to see algebra source code for WP 
@@ -142303,14 +142760,14 @@ ls : List Symbol := [x,y,z,t]
 --R 
 --R
 --R   (2)  [x,y,z,t]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 16
 V := OVAR(ls)
 --R 
 --R
---R   (3)  OrderedVariableList [x,y,z,t]
+--R   (3)  OrderedVariableList([x,y,z,t])
 --R                                                                 Type: Domain
 --E 3
 
@@ -142318,7 +142775,7 @@ V := OVAR(ls)
 E := IndexedExponents V
 --R 
 --R
---R   (4)  IndexedExponents OrderedVariableList [x,y,z,t]
+--R   (4)  IndexedExponents(OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 4
 
@@ -142326,7 +142783,8 @@ E := IndexedExponents V
 P := NSMP(R, V)
 --R 
 --R
---R   (5)  NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--R   (5)
+--R   NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --R                                                                 Type: Domain
 --E 5
 
@@ -142335,7 +142793,7 @@ x: P := 'x
 --R 
 --R
 --R   (6)  x
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 6
 
 --S 7 of 16
@@ -142343,7 +142801,7 @@ y: P := 'y
 --R 
 --R
 --R   (7)  y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 7
 
 --S 8 of 16
@@ -142351,7 +142809,7 @@ z: P := 'z
 --R 
 --R
 --R   (8)  z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 8
 
 --S 9 of 16
@@ -142359,7 +142817,7 @@ t: P := 't
 --R 
 --R
 --R   (9)  t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 9
 
 --S 10 of 16
@@ -142367,9 +142825,9 @@ T := WUTSET(R,E,V,P)
 --R 
 --R
 --R   (10)
---R  WuWenTsunTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t]
---R  ,OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,Ordere
---R  dVariableList [x,y,z,t]))
+--R  WuWenTsunTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t]
+--R  )),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,Ord
+--R  eredVariableList([x,y,z,t])))
 --R                                                                 Type: Domain
 --E 10
 
@@ -142379,7 +142837,7 @@ p1 := x ** 31 - x ** 6 - x - y
 --R
 --R          31    6
 --R   (11)  x   - x  - x - y
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 11
 
 --S 12 of 16
@@ -142388,7 +142846,7 @@ p2 := x ** 8  - z
 --R
 --R          8
 --R   (12)  x  - z
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 12
 
 --S 13 of 16
@@ -142397,7 +142855,7 @@ p3 := x ** 10 - t
 --R
 --R          10
 --R   (13)  x   - t
---R Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
 --E 13
 
 --S 14 of 16
@@ -142406,7 +142864,7 @@ lp := [p1, p2, p3]
 --R
 --R           31    6          8      10
 --R   (14)  [x   - x  - x - y,x  - z,x   - t]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
 --E 14
 
 --S 15 of 16
@@ -142416,7 +142874,7 @@ characteristicSet(lp)$T
 --R   (15)
 --R     5    4  4 2 2     3 4        7     4      6    6    3      3     3     3
 --R   {z  - t ,t z y  + 2t z y + (- t  + 2t  - t)z  + t z,(t  - 1)z x - z y - t }
---RType: Union(WuWenTsunTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t])),...)
+--IType: Union(WuWenTsunTriangularSet(Integer,IndexedExponents(...
 --E 15
 
 --S 16 of 16
@@ -142428,7 +142886,7 @@ zeroSetSplit(lp)$T
 --R   [{t,z,y,x}, {t  - 1,z  - t ,z y + t ,z x  - t},
 --R      5    4  4 2 2     3 4        7     4      6    6    3      3     3     3
 --R    {z  - t ,t z y  + 2t z y + (- t  + 2t  - t)z  + t z,(t  - 1)z x - z y - t }]
---RType: List WuWenTsunTriangularSet(Integer,IndexedExponents OrderedVariableList [x,y,z,t],OrderedVariableList [x,y,z,t],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [x,y,z,t]))
+--IType: List(WuWenTsunTriangularSet(Integer,IndexedExponents(...
 --E 16
 )spool
 )lisp (bye)
@@ -142956,6 +143414,7 @@ equivalent for the
 
 --S 1 of 1
 )show XDistributedPolynomial
+--R 
 --R XDistributedPolynomial(vl: OrderedSet,R: Ring)  is a domain constructor
 --R Abbreviation for XDistributedPolynomial is XDPOLY 
 --R This constructor is not exposed in this frame.
@@ -142969,7 +143428,7 @@ equivalent for the
 --R ?-? : (%,%) -> %                      -? : % -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R coef : (%,%) -> R                     coefficients : % -> List R
+--R coef : (%,%) -> R                     coefficients : % -> List(R)
 --R coerce : Integer -> %                 coerce : R -> %
 --R coerce : vl -> %                      coerce : % -> OutputForm
 --R constant : % -> R                     constant? : % -> Boolean
@@ -142977,33 +143436,33 @@ equivalent for the
 --R latex : % -> String                   leadingCoefficient : % -> R
 --R lquo : (%,vl) -> %                    lquo : (%,%) -> %
 --R map : ((R -> R),%) -> %               mirror : % -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R one? : % -> Boolean                   quasiRegular : % -> %
 --R quasiRegular? : % -> Boolean          recip : % -> Union(%,"failed")
 --R reductum : % -> %                     rquo : (%,vl) -> %
 --R rquo : (%,%) -> %                     sample : () -> %
---R varList : % -> List vl                zero? : % -> Boolean
+--R varList : % -> List(vl)               zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
---R ?*? : (R,OrderedFreeMonoid vl) -> %
+--R ?*? : (R,OrderedFreeMonoid(vl)) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coef : (%,OrderedFreeMonoid vl) -> R
---R coefficient : (%,OrderedFreeMonoid vl) -> R
---R coerce : OrderedFreeMonoid vl -> %
---R leadingMonomial : % -> OrderedFreeMonoid vl
---R leadingTerm : % -> Record(k: OrderedFreeMonoid vl,c: R)
---R listOfTerms : % -> List Record(k: OrderedFreeMonoid vl,c: R)
---R lquo : (%,OrderedFreeMonoid vl) -> %
---R maxdeg : % -> OrderedFreeMonoid vl
---R mindeg : % -> OrderedFreeMonoid vl
---R mindegTerm : % -> Record(k: OrderedFreeMonoid vl,c: R)
---R monom : (OrderedFreeMonoid vl,R) -> %
+--R coef : (%,OrderedFreeMonoid(vl)) -> R
+--R coefficient : (%,OrderedFreeMonoid(vl)) -> R
+--R coerce : OrderedFreeMonoid(vl) -> %
+--R leadingMonomial : % -> OrderedFreeMonoid(vl)
+--R leadingTerm : % -> Record(k: OrderedFreeMonoid(vl),c: R)
+--R listOfTerms : % -> List(Record(k: OrderedFreeMonoid(vl),c: R))
+--R lquo : (%,OrderedFreeMonoid(vl)) -> %
+--R maxdeg : % -> OrderedFreeMonoid(vl)
+--R mindeg : % -> OrderedFreeMonoid(vl)
+--R mindegTerm : % -> Record(k: OrderedFreeMonoid(vl),c: R)
+--R monom : (OrderedFreeMonoid(vl),R) -> %
 --R numberOfMonomials : % -> NonNegativeInteger
---R retract : % -> OrderedFreeMonoid vl
---R retractIfCan : % -> Union(OrderedFreeMonoid vl,"failed")
---R rquo : (%,OrderedFreeMonoid vl) -> %
+--R retract : % -> OrderedFreeMonoid(vl)
+--R retractIfCan : % -> Union(OrderedFreeMonoid(vl),"failed")
+--R rquo : (%,OrderedFreeMonoid(vl)) -> %
 --R sh : (%,%) -> % if R has COMRING
 --R sh : (%,NonNegativeInteger) -> % if R has COMRING
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -143221,7 +143680,7 @@ b:Symbol := 'b
 RN := Fraction(Integer)
 --R 
 --R
---R   (3)  Fraction Integer
+--R   (3)  Fraction(Integer)
 --R                                                                 Type: Domain
 --E 3
 
@@ -143229,7 +143688,7 @@ RN := Fraction(Integer)
 word := OrderedFreeMonoid Symbol
 --R 
 --R
---R   (4)  OrderedFreeMonoid Symbol
+--R   (4)  OrderedFreeMonoid(Symbol)
 --R                                                                 Type: Domain
 --E 4
 
@@ -143237,7 +143696,7 @@ word := OrderedFreeMonoid Symbol
 lword := LyndonWord(Symbol)
 --R 
 --R
---R   (5)  LyndonWord Symbol
+--R   (5)  LyndonWord(Symbol)
 --R                                                                 Type: Domain
 --E 5
 
@@ -143245,7 +143704,7 @@ lword := LyndonWord(Symbol)
 base := PoincareBirkhoffWittLyndonBasis Symbol
 --R 
 --R
---R   (6)  PoincareBirkhoffWittLyndonBasis Symbol
+--R   (6)  PoincareBirkhoffWittLyndonBasis(Symbol)
 --R                                                                 Type: Domain
 --E 6
 
@@ -143253,7 +143712,7 @@ base := PoincareBirkhoffWittLyndonBasis Symbol
 dpoly := XDistributedPolynomial(Symbol, RN)
 --R 
 --R
---R   (7)  XDistributedPolynomial(Symbol,Fraction Integer)
+--R   (7)  XDistributedPolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 7
 
@@ -143261,7 +143720,7 @@ dpoly := XDistributedPolynomial(Symbol, RN)
 rpoly := XRecursivePolynomial(Symbol, RN)
 --R 
 --R
---R   (8)  XRecursivePolynomial(Symbol,Fraction Integer)
+--R   (8)  XRecursivePolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 8
 
@@ -143269,7 +143728,7 @@ rpoly := XRecursivePolynomial(Symbol, RN)
 lpoly := LiePolynomial(Symbol, RN)
 --R 
 --R
---R   (9)  LiePolynomial(Symbol,Fraction Integer)
+--R   (9)  LiePolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 9
 
@@ -143277,7 +143736,7 @@ lpoly := LiePolynomial(Symbol, RN)
 poly  := XPBWPolynomial(Symbol, RN)
 --R 
 --R
---R   (10)  XPBWPolynomial(Symbol,Fraction Integer)
+--R   (10)  XPBWPolynomial(Symbol,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 10
 
@@ -143292,7 +143751,7 @@ liste : List lword := LyndonWordsList([a,b], 6)
 --R    [a b a b], [a b ], [a b a b ], [a b ], [a b], [a b ], [a b a b], [a b ],
 --R      2     2     2 2        2 4           3       5
 --R    [a b 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 11
 
 --S 12 of 39
@@ -143300,7 +143759,7 @@ liste : List lword := LyndonWordsList([a,b], 6)
 --R 
 --R
 --R   (12)  0
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 12
 
 --S 13 of 39
@@ -143308,7 +143767,7 @@ liste : List lword := LyndonWordsList([a,b], 6)
 --R 
 --R
 --R   (13)  1
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 13
 
 --S 14 of 39
@@ -143316,7 +143775,7 @@ p : poly := a
 --R 
 --R
 --R   (14)  [a]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 14
 
 --S 15 of 39
@@ -143324,7 +143783,7 @@ q : poly := b
 --R 
 --R
 --R   (15)  [b]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 15
 
 --S 16 of 39
@@ -143332,7 +143791,7 @@ pq: poly := p*q
 --R 
 --R
 --R   (16)  [a b] + [b][a]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 16
 
 --S 17 of 39
@@ -143340,7 +143799,7 @@ pq :: dpoly
 --R 
 --R
 --R   (17)  a b
---R                        Type: XDistributedPolynomial(Symbol,Fraction Integer)
+--R                       Type: XDistributedPolynomial(Symbol,Fraction(Integer))
 --E 17
 
 --S 18 of 39
@@ -143348,7 +143807,7 @@ mirror pq
 --R 
 --R
 --R   (18)  [b][a]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 18
 
 --S 19 of 39
@@ -143356,7 +143815,7 @@ listOfTerms pq
 --R 
 --R
 --R   (19)  [[k= [b][a],c= 1],[k= [a b],c= 1]]
---RType: List Record(k: PoincareBirkhoffWittLyndonBasis Symbol,c: Fraction Integer)
+--RType: List(Record(k: PoincareBirkhoffWittLyndonBasis(Symbol),c: Fraction(Integer)))
 --E 19
 
 --S 20 of 39
@@ -143364,7 +143823,7 @@ reductum pq
 --R 
 --R
 --R   (20)  [a b]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 20
 
 --S 21 of 39
@@ -143372,7 +143831,7 @@ leadingMonomial pq
 --R 
 --R
 --R   (21)  [b][a]
---R                                 Type: PoincareBirkhoffWittLyndonBasis Symbol
+--R                                Type: PoincareBirkhoffWittLyndonBasis(Symbol)
 --E 21
 
 --S 22 of 39
@@ -143380,7 +143839,7 @@ coefficients pq
 --R 
 --R
 --R   (22)  [1,1]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 22
 
 --S 23 of 39
@@ -143388,7 +143847,7 @@ leadingTerm pq
 --R 
 --R
 --R   (23)  [k= [b][a],c= 1]
---R  Type: Record(k: PoincareBirkhoffWittLyndonBasis Symbol,c: Fraction Integer)
+--RType: Record(k: PoincareBirkhoffWittLyndonBasis(Symbol),c: Fraction(Integer))
 --E 23
 
 --S 24 of 39
@@ -143411,7 +143870,7 @@ pq4:=exp(pq,4)
 --R     3               1
 --R     - [b][a b][a] + - [b][b][a][a]
 --R     2               2
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 25
 
 --S 26 of 39
@@ -143419,7 +143878,7 @@ log(pq4,4) - pq
 --R 
 --R
 --R   (26)  0
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 26
 
 --S 27 of 39
@@ -143428,7 +143887,7 @@ lp1 :lpoly := LiePoly liste.10
 --R
 --R           3 2
 --R   (27)  [a b ]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 27
 
 --S 28 of 39
@@ -143437,7 +143896,7 @@ lp2 :lpoly := LiePoly liste.11
 --R
 --R           2
 --R   (28)  [a b a b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 28
 
 --S 29 of 39
@@ -143446,7 +143905,7 @@ lp :lpoly := [lp1, lp2]
 --R
 --R           3 2 2
 --R   (29)  [a b a b a b]
---R                                 Type: LiePolynomial(Symbol,Fraction Integer)
+--R                                Type: LiePolynomial(Symbol,Fraction(Integer))
 --E 29
 
 --S 30 of 39
@@ -143455,7 +143914,7 @@ lpd1: dpoly := lp1
 --R
 --R          3 2     2         2 2                    2 2           2    2 3
 --R   (30)  a b  - 2a b a b - a b a + 4a b a b a - a b a  - 2b a b a  + b a
---R                        Type: XDistributedPolynomial(Symbol,Fraction Integer)
+--R                       Type: XDistributedPolynomial(Symbol,Fraction(Integer))
 --E 30
 
 --S 31 of 39
@@ -143468,7 +143927,7 @@ lpd2: dpoly := lp2
 --R   + 
 --R            2
 --R     b a b a
---R                        Type: XDistributedPolynomial(Symbol,Fraction Integer)
+--R                       Type: XDistributedPolynomial(Symbol,Fraction(Integer))
 --E 31
 
 --S 32 of 39
@@ -143529,7 +143988,7 @@ lpd : dpoly := lpd1 * lpd2 - lpd2 * lpd1
 --R   + 
 --R      2 3       2
 --R     b a b a b a
---R                        Type: XDistributedPolynomial(Symbol,Fraction Integer)
+--R                       Type: XDistributedPolynomial(Symbol,Fraction(Integer))
 --E 32
 
 --S 33 of 39
@@ -143537,7 +143996,7 @@ lp :: dpoly - lpd
 --R 
 --R
 --R   (33)  0
---R                        Type: XDistributedPolynomial(Symbol,Fraction Integer)
+--R                       Type: XDistributedPolynomial(Symbol,Fraction(Integer))
 --E 33
 
 --S 34 of 39
@@ -143546,7 +144005,7 @@ p := 3 * lp
 --R
 --R            3 2 2
 --R   (34)  3[a b a b a b]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 34
 
 --S 35 of 39
@@ -143555,7 +144014,7 @@ q := lp1
 --R
 --R           3 2
 --R   (35)  [a b ]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 35
 
 --S 36 of 39
@@ -143564,7 +144023,7 @@ pq:= p * q
 --R
 --R            3 2 2        3 2
 --R   (36)  3[a b a b a b][a b ]
---R                                Type: XPBWPolynomial(Symbol,Fraction Integer)
+--R                               Type: XPBWPolynomial(Symbol,Fraction(Integer))
 --E 36
 
 --S 37 of 39
@@ -143663,7 +144122,7 @@ pr:rpoly := p :: rpoly
 --R             a(a b(a b 3 + b a(- 3)) + b(a(a b(- 9) + b a 12) + b a a(- 3)))
 --R           + 
 --R             b a(a(a b 6 + b a(- 9)) + b a a 3)
---R                          Type: XRecursivePolynomial(Symbol,Fraction Integer)
+--R                         Type: XRecursivePolynomial(Symbol,Fraction(Integer))
 --E 37
 
 --S 38 of 39
@@ -143674,7 +144133,7 @@ qr:rpoly := q :: rpoly
 --R     a(a(a b b 1 + b(a b(- 2) + b a(- 1))) + b(a b a 4 + b a a(- 1)))
 --R   + 
 --R     b(a b a a(- 2) + b a a a 1)
---R                          Type: XRecursivePolynomial(Symbol,Fraction Integer)
+--R                         Type: XRecursivePolynomial(Symbol,Fraction(Integer))
 --E 38
 
 --S 39 of 39
@@ -143682,7 +144141,7 @@ pq :: rpoly - pr*qr
 --R 
 --R
 --R   (39)  0
---R                          Type: XRecursivePolynomial(Symbol,Fraction Integer)
+--R                         Type: XRecursivePolynomial(Symbol,Fraction(Integer))
 --E 39
 )spool
 )lisp (bye)
@@ -144343,7 +144802,7 @@ XPBWPolynomial(VarSet:OrderedSet,R:CommutativeRing): XDPcat == XDPdef where
 poly := XPolynomial(Integer)
 --R 
 --R
---R   (1)  XPolynomial Integer
+--R   (1)  XPolynomial(Integer)
 --R                                                                 Type: Domain
 --E 1
 
@@ -144352,7 +144811,7 @@ pr: poly := 2*x + 3*y-5
 --R 
 --R
 --R   (2)  - 5 + x 2 + y 3
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 2
 
 --S 3 of 14
@@ -144360,7 +144819,7 @@ pr2: poly := pr*pr
 --R 
 --R
 --R   (3)  25 + x(- 20 + x 4 + y 6) + y(- 30 + x 6 + y 9)
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 3
 
 --S 4 of 14
@@ -144396,7 +144855,7 @@ qr :=  pr**3
 --R     - 125 + x(150 + x(- 60 + x 8 + y 12) + y(- 90 + x 12 + y 18))
 --R   + 
 --R     y(225 + x(- 90 + x 12 + y 18) + y(- 135 + x 18 + y 27))
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 7
 
 --S 8 of 14
@@ -144426,14 +144885,14 @@ trunc(qr,2)
 --R 
 --R
 --R   (10)  - 125 + x(150 + x(- 60) + y(- 90)) + y(225 + x(- 90) + y(- 135))
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 10
 
 --S 11 of 14
 Word := OrderedFreeMonoid Symbol
 --R 
 --R
---R   (11)  OrderedFreeMonoid Symbol
+--R   (11)  OrderedFreeMonoid(Symbol)
 --R                                                                 Type: Domain
 --E 11
 
@@ -144443,7 +144902,7 @@ w: Word := x*y**2
 --R
 --R            2
 --R   (12)  x y
---R                                               Type: OrderedFreeMonoid Symbol
+--R                                              Type: OrderedFreeMonoid(Symbol)
 --E 12
 
 --S 13 of 14
@@ -144451,7 +144910,7 @@ rquo(qr,w)
 --R 
 --R
 --R   (13)  18
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 13
 
 --S 14 of 14
@@ -144459,7 +144918,7 @@ sh(pr,w::poly)
 --R 
 --R
 --R   (14)  x(x y y 4 + y(x y 2 + y(- 5 + x 2 + y 9))) + y x y y 3
---R                                                    Type: XPolynomial Integer
+--R                                                   Type: XPolynomial(Integer)
 --E 14
 )spool
 )lisp (bye)
@@ -144675,7 +145134,7 @@ XPolynomial(R:Ring) == XRecursivePolynomial(Symbol, R)
 Word := OrderedFreeMonoid(Symbol)
 --R 
 --R
---R   (1)  OrderedFreeMonoid Symbol
+--R   (1)  OrderedFreeMonoid(Symbol)
 --R                                                                 Type: Domain
 --E 1
 
@@ -144683,7 +145142,7 @@ Word := OrderedFreeMonoid(Symbol)
 poly:= XPR(Integer,Word)
 --R 
 --R
---R   (2)  XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R   (2)  XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --R                                                                 Type: Domain
 --E 2
 
@@ -144692,7 +145151,7 @@ p:poly := 2 * x - 3 * y + 1
 --R 
 --R
 --R   (3)  1 + 2x - 3y
---R                      Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R                     Type: XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --E 3
 
 --S 4 of 15
@@ -144700,7 +145159,7 @@ q:poly := 2 * x + 1
 --R 
 --R
 --R   (4)  1 + 2x
---R                      Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R                     Type: XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --E 4
 
 --S 5 of 15
@@ -144708,7 +145167,7 @@ p + q
 --R 
 --R
 --R   (5)  2 + 4x - 3y
---R                      Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R                     Type: XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --E 5
 
 --S 6 of 15
@@ -144717,7 +145176,7 @@ p * q
 --R
 --R                        2
 --R   (6)  1 + 4x - 3y + 4x  - 6y x
---R                      Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R                     Type: XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --E 6
 
 --S 7 of 15
@@ -144725,14 +145184,14 @@ p * q
 --R 
 --R
 --R   (7)  - 6x y + 6y x
---R                      Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol)
+--R                     Type: XPolynomialRing(Integer,OrderedFreeMonoid(Symbol))
 --E 7
 
 --S 8 of 15
 M := SquareMatrix(2,Fraction Integer)
 --R 
 --R
---R   (8)  SquareMatrix(2,Fraction Integer)
+--R   (8)  SquareMatrix(2,Fraction(Integer))
 --R                                                                 Type: Domain
 --E 8
 
@@ -144741,7 +145200,7 @@ poly1:= XPR(M,Word)
 --R 
 --R
 --R   (9)
---R   XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol)
+--R   XPolynomialRing(SquareMatrix(2,Fraction(Integer)),OrderedFreeMonoid(Symbol))
 --R                                                                 Type: Domain
 --E 9
 
@@ -144752,7 +145211,7 @@ m1:M := matrix [ [i*j**2 for i in 1..2] for j in 1..2]
 --R         +1  2+
 --R   (10)  |    |
 --R         +4  8+
---R                                       Type: SquareMatrix(2,Fraction Integer)
+--R                                      Type: SquareMatrix(2,Fraction(Integer))
 --E 10
 
 --S 11 of 15
@@ -144766,7 +145225,7 @@ m2:M := m1 - 5/4
 --R         |     27|
 --R         | 4   --|
 --R         +      4+
---R                                       Type: SquareMatrix(2,Fraction Integer)
+--R                                      Type: SquareMatrix(2,Fraction(Integer))
 --E 11
 
 --S 12 of 15
@@ -144780,7 +145239,7 @@ m3: M := m2**2
 --R         |     857|
 --R         |26   ---|
 --R         +      16+
---R                                       Type: SquareMatrix(2,Fraction Integer)
+--R                                      Type: SquareMatrix(2,Fraction(Integer))
 --E 12
 
 --S 13 of 15
@@ -144794,7 +145253,7 @@ pm:poly1   := m1*x + m2*y + m3*z - 2/3
 --R         |       2|   +4  8+    |     27|    |     857|
 --R         | 0   - -|             | 4   --|    |26   ---|
 --R         +       3+             +      4+    +      16+
---RType: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol)
+--RType: XPolynomialRing(SquareMatrix(2,Fraction(Integer)),OrderedFreeMonoid(Symbol))
 --E 13
 
 --S 14 of 15
@@ -144808,7 +145267,7 @@ qm:poly1 := pm - m1*x
 --R         |       2|   |     27|    |     857|
 --R         | 0   - -|   | 4   --|    |26   ---|
 --R         +       3+   +      4+    +      16+
---RType: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol)
+--RType: XPolynomialRing(SquareMatrix(2,Fraction(Integer)),OrderedFreeMonoid(Symbol))
 --E 14
 
 --S 15 of 15
@@ -144855,7 +145314,7 @@ qm**3
 --R     |795341   25447787|      |12326223  788893897|
 --R     |------   --------|      |--------  ---------|
 --R     +  64       1024  +      +   128       4096  +
---RType: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol)
+--RType: XPolynomialRing(SquareMatrix(2,Fraction(Integer)),OrderedFreeMonoid(Symbol))
 --E 15
 )spool
 )lisp (bye)
@@ -145275,6 +145734,7 @@ XPolynomialRing(R:Ring,E:OrderedMonoid): T == C where
 
 --S 1 of 1
 )show XRecursivePolynomial
+--R 
 --R XRecursivePolynomial(VarSet: OrderedSet,R: Ring)  is a domain constructor
 --R Abbreviation for XRecursivePolynomial is XRPOLY 
 --R This constructor is not exposed in this frame.
@@ -145299,24 +145759,24 @@ XPolynomialRing(R:Ring,E:OrderedMonoid): T == C where
 --R quasiRegular : % -> %                 quasiRegular? : % -> Boolean
 --R recip : % -> Union(%,"failed")        rquo : (%,%) -> %
 --R rquo : (%,VarSet) -> %                sample : () -> %
---R varList : % -> List VarSet            zero? : % -> Boolean
+--R varList : % -> List(VarSet)           zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R RemainderList : % -> List Record(k: VarSet,c: %)
+--R RemainderList : % -> List(Record(k: VarSet,c: %))
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coef : (%,OrderedFreeMonoid VarSet) -> R
---R coerce : OrderedFreeMonoid VarSet -> %
+--R coef : (%,OrderedFreeMonoid(VarSet)) -> R
+--R coerce : OrderedFreeMonoid(VarSet) -> %
 --R expand : % -> XDistributedPolynomial(VarSet,R)
---R lquo : (%,OrderedFreeMonoid VarSet) -> %
---R maxdeg : % -> OrderedFreeMonoid VarSet
---R mindeg : % -> OrderedFreeMonoid VarSet
---R mindegTerm : % -> Record(k: OrderedFreeMonoid VarSet,c: R)
---R monom : (OrderedFreeMonoid VarSet,R) -> %
---R retract : % -> OrderedFreeMonoid VarSet
---R retractIfCan : % -> Union(OrderedFreeMonoid VarSet,"failed")
---R rquo : (%,OrderedFreeMonoid VarSet) -> %
+--R lquo : (%,OrderedFreeMonoid(VarSet)) -> %
+--R maxdeg : % -> OrderedFreeMonoid(VarSet)
+--R mindeg : % -> OrderedFreeMonoid(VarSet)
+--R mindegTerm : % -> Record(k: OrderedFreeMonoid(VarSet),c: R)
+--R monom : (OrderedFreeMonoid(VarSet),R) -> %
+--R retract : % -> OrderedFreeMonoid(VarSet)
+--R retractIfCan : % -> Union(OrderedFreeMonoid(VarSet),"failed")
+--R rquo : (%,OrderedFreeMonoid(VarSet)) -> %
 --R sh : (%,NonNegativeInteger) -> % if R has COMRING
 --R sh : (%,%) -> % if R has COMRING
 --R subtractIfCan : (%,%) -> Union(%,"failed")
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 73b964c..aced0c8 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -245,15 +245,16 @@ in the bootstrap set. Thus,
 
 --S 1 of 1
 )show AffineAlgebraicSetComputeWithGroebnerBasis
---R AffineAlgebraicSetComputeWithGroebnerBasis(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K)  is a package constructor
+--R 
+--R AffineAlgebraicSetComputeWithGroebnerBasis(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K))  is a package constructor
 --R Abbreviation for AffineAlgebraicSetComputeWithGroebnerBasis is AFALGGRO 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for AFALGGRO 
 --R
 --R------------------------------- Operations --------------------------------
---R affineAlgSet : List PolyRing -> Union(List ProjPt,"failed",Infinite,Integer)
---R affineRationalPoints : (PolyRing,PositiveInteger) -> List ProjPt
---R affineSingularPoints : PolyRing -> Union(List ProjPt,"failed",Infinite,Integer)
+--R affineAlgSet : List(PolyRing) -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R affineRationalPoints : (PolyRing,PositiveInteger) -> List(ProjPt)
+--R affineSingularPoints : PolyRing -> Union(List(ProjPt),"failed",Infinite,Integer)
 --R
 --E 1
 
@@ -470,19 +471,20 @@ AffineAlgebraicSetComputeWithGroebnerBasis(K,symb,PolyRing,E,ProjPt):Exports_
 
 --S 1 of 1
 )show AffineAlgebraicSetComputeWithResultant
---R AffineAlgebraicSetComputeWithResultant(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K)  is a package constructor
+--R 
+--R AffineAlgebraicSetComputeWithResultant(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K))  is a package constructor
 --R Abbreviation for AffineAlgebraicSetComputeWithResultant is AFALGRES 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for AFALGRES 
 --R
 --R------------------------------- Operations --------------------------------
---R affineAlgSet : List PolyRing -> Union(List ProjPt,"failed",Infinite,Integer)
---R affineAlgSetLocal : List SparseUnivariatePolynomial SparseUnivariatePolynomial K -> Union(List ProjPt,"failed",Infinite,Integer)
---R affineRationalPoints : (PolyRing,PositiveInteger) -> Union(List ProjPt,"failed",Infinite,Integer)
---R affineSingularPoints : PolyRing -> Union(List ProjPt,"failed",Infinite,Integer)
---R affineSingularPoints : SparseUnivariatePolynomial SparseUnivariatePolynomial K -> Union(List ProjPt,"failed",Infinite,Integer)
---R allPairsAmong : List SparseUnivariatePolynomial SparseUnivariatePolynomial K -> List List SparseUnivariatePolynomial SparseUnivariatePolynomial K
---R polyRing2UPUP : PolyRing -> SparseUnivariatePolynomial SparseUnivariatePolynomial K
+--R affineAlgSet : List(PolyRing) -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R affineAlgSetLocal : List(SparseUnivariatePolynomial(SparseUnivariatePolynomial(K))) -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R affineRationalPoints : (PolyRing,PositiveInteger) -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R affineSingularPoints : PolyRing -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R affineSingularPoints : SparseUnivariatePolynomial(SparseUnivariatePolynomial(K)) -> Union(List(ProjPt),"failed",Infinite,Integer)
+--R allPairsAmong : List(SparseUnivariatePolynomial(SparseUnivariatePolynomial(K))) -> List(List(SparseUnivariatePolynomial(SparseUnivariatePolynomial(K))))
+--R polyRing2UPUP : PolyRing -> SparseUnivariatePolynomial(SparseUnivariatePolynomial(K))
 --R
 --E 1
 
@@ -4073,7 +4075,7 @@ getDomains 'Collection
 --R    RegularChain, RegularTriangularSet, Result, RoutinesTable, Set,
 --R    SparseTable, SquareFreeRegularTriangularSet, Stream, String, StringTable,
 --R    Table, Vector, WuWenTsunTriangularSet}
---R                                                             Type: Set Symbol
+--R                                                            Type: Set(Symbol)
 --E 1
 
 --S 2 of 5
@@ -4083,7 +4085,7 @@ difference(getDomains 'IndexedAggregate,getDomains 'Collection)
 --R   {DirectProduct, DirectProductMatrixModule, DirectProductModule,
 --R    HomogeneousDirectProduct, OrderedDirectProduct,
 --R    SplitHomogeneousDirectProduct}
---R                                                             Type: Set Symbol
+--R                                                            Type: Set(Symbol)
 --E 2
 
 --S 3 of 5
@@ -4093,19 +4095,20 @@ credits()
 --RMichael Albaugh        Cyril Alberga          Roy Adler
 --RChristian Aistleitner  Richard Anderson       George Andrews
 --RS.J. Atkins
---RHenry Baker            Stephen Balzac         Yurij Baransky
---RDavid R. Barton        Gerald Baumgartner     Gilbert Baumslag
---RMichael Becker         Nelson H. F. Beebe     Jay Belanger
---RDavid Bindel           Fred Blair             Vladimir Bondarenko
---RMark Botch             Alexandre Bouyer       Peter A. Broadbery
---RMartin Brock           Manuel Bronstein       Stephen Buchwald
---RFlorian Bundschuh      Luanne Burns           William Burge
+--RHenry Baker            Martin Baker           Stephen Balzac
+--RYurij Baransky         David R. Barton        Gerald Baumgartner
+--RGilbert Baumslag       Michael Becker         Nelson H. F. Beebe
+--RJay Belanger           David Bindel           Fred Blair
+--RVladimir Bondarenko    Mark Botch             Alexandre Bouyer
+--RPeter A. Broadbery     Martin Brock           Manuel Bronstein
+--RStephen Buchwald       Florian Bundschuh      Luanne Burns
+--RWilliam Burge
 --RQuentin Carpent        Robert Caviness        Bruce Char
 --ROndrej Certik          Cheekai Chin           David V. Chudnovsky
---RGregory V. Chudnovsky  Josh Cohen             Christophe Conil
---RDon Coppersmith        George Corliss         Robert Corless
---RGary Cornell           Meino Cramer           Claire Di Crescenzo
---RDavid Cyganski
+--RGregory V. Chudnovsky  James Cloos            Josh Cohen
+--RChristophe Conil       Don Coppersmith        George Corliss
+--RRobert Corless         Gary Cornell           Meino Cramer
+--RClaire Di Crescenzo    David Cyganski
 --RNathaniel Daly         Timothy Daly Sr.       Timothy Daly Jr.
 --RJames H. Davenport     Didier Deshommes       Michael Dewar
 --RJean Della Dora        Gabriel Dos Reis       Claire DiCrescendo
@@ -4130,45 +4133,42 @@ credits()
 --RRoger House            Gernot Hueber
 --RPietro Iglio
 --RAlejandro Jakubi       Richard Jenks
---RKai Kaminski           Grant Keady            Tony Kennedy
---RTed Kosan              Paul Kosinski          Klaus Kusche
---RBernhard Kutzler
+--RKai Kaminski           Grant Keady            Wilfrid Kendall
+--RTony Kennedy           Ted Kosan              Paul Kosinski
+--RKlaus Kusche           Bernhard Kutzler
 --RTim Lahey              Larry Lambe            Kaj Laurson
---RGeorge L. Legendre     Franz Lehner           Frederic Lehobey
---RMichel Levaud          Howard Levy            Liu Xiaojun
---RRudiger Loos           Michael Lucks          Richard Luczak
+--RFranz Lehner           Frederic Lehobey       Michel Levaud
+--RHoward Levy            Liu Xiaojun            Rudiger Loos
+--RMichael Lucks          Richard Luczak
 --RCamm Maguire           Francois Maltey        Alasdair McAndrew
 --RBob McElrath           Michael McGettrick     Ian Meikle
 --RDavid Mentre           Victor S. Miller       Gerard Milmeister
 --RMohammed Mobarak       H. Michael Moeller     Michael Monagan
 --RMarc Moreno-Maza       Scott Morrison         Joel Moses
 --RMark Murray
---RWilliam Naylor         C. Andrew Neff         John Nelder
---RGodfrey Nolan          Arthur Norman          Jinzhong Niu
+--RWilliam Naylor         Patrice Naudin         C. Andrew Neff
+--RJohn Nelder            Godfrey Nolan          Arthur Norman
+--RJinzhong Niu
 --RMichael O'Connor       Summat Oemrawsingh     Kostas Oikonomou
 --RHumberto Ortiz-Zuazaga
---RJulian A. Padget       Bill Page              Susan Pelzel
---RMichel Petitot         Didier Pinchon         Ayal Pinkus
---RJose Alfredo Portes
+--RJulian A. Padget       Bill Page              David Parnas
+--RSusan Pelzel           Michel Petitot         Didier Pinchon
+--RAyal Pinkus            Jose Alfredo Portes
 --RClaude Quitte
 --RArthur C. Ralfs        Norman Ramsey          Anatoly Raportirenko
 --RAlbert D. Rich         Michael Richardson     Guilherme Reis
 --RRenaud Rioboo          Jean Rivlin            Nicolas Robidoux
 --RSimon Robinson         Raymond Rogers         Michael Rothstein
 --RMartin Rubey
---RArthur C. Ralfs        Norman Ramsey          Anatoly Raportirenko
---RMichael Richardson     Renaud Rioboo          Jean Rivlin
---RNicolas Robidoux       Simon Robinson         Raymond Rogers
---RMichael Rothstein      Martin Rubey
 --RPhilip Santas          Alfred Scheerhorn      William Schelter
 --RGerhard Schneider      Martin Schoenert       Marshall Schor
 --RFrithjof Schulze       Fritz Schwarz          Steven Segletes
 --RNick Simicich          William Sit            Elena Smirnova
 --RJonathan Steinbach     Fabio Stumbo           Christine Sundaresan
 --RRobert Sutor           Moss E. Sweedler       Eugene Surowitz
---RMax Tegmark            James Thatcher         Balbir Thomas
---RMike Thomas            Dylan Thurston         Steve Toleque
---RBarry Trager           Themos T. Tsikas
+--RMax Tegmark            T. Doug Telford        James Thatcher
+--RBalbir Thomas          Mike Thomas            Dylan Thurston
+--RSteve Toleque          Barry Trager           Themos T. Tsikas
 --RGregory Vanuxem
 --RBernhard Wall          Stephen Watt           Jaap Weel
 --RJuergen Weiss          M. Weller              Mark Wegman
@@ -4194,13 +4194,14 @@ summary()
 
 --S 5 of 5
 )show API
+--R 
 --R ApplicationProgramInterface  is a package constructor
 --R Abbreviation for ApplicationProgramInterface is API 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for API 
 --R
 --R------------------------------- Operations --------------------------------
---R credits : () -> Void                  getDomains : Symbol -> Set Symbol
+--R credits : () -> Void                  getDomains : Symbol -> Set(Symbol)
 --R summary : () -> Void                 
 --R
 --E 5
@@ -5565,7 +5566,7 @@ BasicOperatorFunctions1(A:SetCategory): Exports == Implementation where
 n:=linearBezier([2.0,2.0],[4.0,4.0])
 --R
 --I   (1)  theMap(BEZIER;linearBezier;2LM;1!0,707)
---R                                                  Type: (Float -> List Float)
+--R                                                 Type: (Float -> List(Float))
 --E 1
 
 --S 2 of 9
@@ -5574,14 +5575,14 @@ n:=linearBezier([2.0,2.0],[4.0,4.0])
 --R   (2)
 --R   [[2.0,2.0], [2.2,2.2], [2.4,2.4], [2.6,2.6], [2.8,2.8], [3.0,3.0],
 --R    [3.2,3.2], [3.4,3.4], [3.6,3.6], [3.8,3.8], [4.0,4.0]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 2
 
 --S 3 of 9
 n:=quadraticBezier([2.0,2.0],[4.0,4.0],[6.0,2.0])
 --R
 --I   (3)  theMap(BEZIER;quadraticBezier;3LM;2!0,291)
---R                                                  Type: (Float -> List Float)
+--R                                                 Type: (Float -> List(Float))
 --E 3
 
 --S 4 of 9
@@ -5590,14 +5591,14 @@ n:=quadraticBezier([2.0,2.0],[4.0,4.0],[6.0,2.0])
 --R   (4)
 --R   [[2.0,2.0], [2.4,2.36], [2.8,2.64], [3.2,2.84], [3.6,2.96], [4.0,3.0],
 --R    [4.4,2.96], [4.8,2.84], [5.2,2.64], [5.6,2.36], [6.0,2.0]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 4
 
 --S 5 of 9
 n:=cubicBezier([2.0,2.0],[2.0,4.0],[6.0,4.0],[6.0,2.0])
 --R
 --I   (5)  theMap(BEZIER;cubicBezier;4LM;3!0,915)
---R                                                  Type: (Float -> List Float)
+--R                                                 Type: (Float -> List(Float))
 --E 5
 
 --S 6 of 9
@@ -5607,19 +5608,675 @@ n:=cubicBezier([2.0,2.0],[2.0,4.0],[6.0,4.0],[6.0,2.0])
 --R   [[2.0,2.0], [2.112,2.54], [2.416,2.96], [2.864,3.26], [3.408,3.44],
 --R    [4.0,3.5], [4.592,3.44], [5.136,3.26], [5.584,2.96], [5.888,2.54],
 --R    [6.0,2.0]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 6
 
 --S 7 of 9
 line:=[[i::Float,4.0] for i in -4..4 by 1]
+--R 
+--R
+--R   (7)
+--R   [[- 4.0,4.0], [- 3.0,4.0], [- 2.0,4.0], [- 1.0,4.0], [0.0,4.0], [1.0,4.0],
+--R    [2.0,4.0], [3.0,4.0], [4.0,4.0]]
+--R                                                      Type: List(List(Float))
 --E 7
 
 --S 8 of 9
 functions:=[quadraticBezier([2.0,2.0],m,[6.0,2.0]) for m in line]
+--R 
+--R
+--R   (8)
+--R   [theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0),
+--R    theMap(BEZIER;quadraticBezier;3LM;2!0,0)]
+--R                                           Type: List((Float -> List(Float)))
 --E 8
 
 --S 9 of 9
-graphs:=[[point(((functions.i)(j/100.0))::LIST(DFLOAT)) for j in 0..100] for i in 1..9]
+graphs:=[[point(((functions.i)(j/100.0))::LIST(DFLOAT)) _
+          for j in 0..100] for i in 1..9]
+--R 
+--R
+--R   (9)
+--R   [
+--R     [[2.,2.], [1.8815999999999999,2.0396000000000001],
+--R      [1.7664,2.0783999999999998], [1.6544000000000003,2.1164000000000005],
+--R      [1.5456000000000003,2.1536], [1.4399999999999999,2.1899999999999999],
+--R      [1.3375999999999999,2.2256], [1.2383999999999999,2.2604000000000006],
+--R      [1.1424000000000003,2.2944], [1.0496000000000003,2.3275999999999999],
+--R      [0.95999999999999996,2.3599999999999999],
+--R      [0.87360000000000015,2.3915999999999999],
+--R      [0.79039999999999999,2.4224000000000006],
+--R      [0.71040000000000014,2.4523999999999999],
+--R      [0.63360000000000016,2.4815999999999998],
+--R      [0.56000000000000005,2.5099999999999998],
+--R      [0.48959999999999998,2.5375999999999999], [0.4224,2.5644],
+--R      [0.3584,2.5903999999999998], [0.29759999999999998,2.6156000000000006],
+--R      [0.23999999999999999,2.6400000000000006],
+--R      [0.18559999999999999,2.6636000000000006],
+--R      [0.13439999999999999,2.6863999999999999],
+--R      [8.6400000000000005E-2,2.7084000000000001],
+--R      [4.1599999999999998E-2,2.7296000000000005], [0.,2.75],
+--R      [- 3.8400000000000004E-2,2.7696000000000005],
+--R      [- 7.3599999999999999E-2,2.7884000000000002], [- 0.1056,2.8064],
+--R      [- 0.13440000000000002,2.8235999999999999], [- 0.16,2.8399999999999999],
+--R      [- 0.18240000000000001,2.8555999999999999],
+--R      [- 0.2016,2.8704000000000001],
+--R      [- 0.21760000000000002,2.8843999999999999],
+--R      [- 0.23039999999999999,2.8976000000000006],
+--R      [- 0.23999999999999999,2.9100000000000001],
+--R      [- 0.24640000000000001,2.9216000000000006],
+--R      [- 0.24959999999999999,2.9323999999999999],
+--R      [- 0.24959999999999999,2.9424000000000001],
+--R      [- 0.24640000000000001,2.9516], [- 0.23999999999999999,2.96],
+--R      [- 0.23039999999999999,2.9676],
+--R      [- 0.21760000000000002,2.9744000000000002],
+--R      [- 0.2016,2.9803999999999999],
+--R      [- 0.18240000000000001,2.9855999999999998], [- 0.16,2.9900000000000002],
+--R      [- 0.13440000000000002,2.9935999999999998], [- 0.1056,2.9964],
+--R      [- 7.3599999999999999E-2,2.9984000000000002],
+--R      [- 3.8400000000000004E-2,2.9996], [0.,3.],
+--R      [4.1599999999999998E-2,2.9996],
+--R      [8.6400000000000005E-2,2.9984000000000002], [0.13439999999999999,2.9964],
+--R      [0.18559999999999999,2.9935999999999998],
+--R      [0.23999999999999999,2.9900000000000002],
+--R      [0.29759999999999998,2.9855999999999998], [0.3584,2.9803999999999999],
+--R      [0.4224,2.9744000000000002], [0.48959999999999998,2.9676],
+--R      [0.56000000000000005,2.96], [0.63360000000000016,2.9516],
+--R      [0.71040000000000014,2.9424000000000001],
+--R      [0.79039999999999999,2.9323999999999999],
+--R      [0.87360000000000015,2.9216000000000006],
+--R      [0.95999999999999996,2.9100000000000001],
+--R      [1.0496000000000003,2.8976000000000006],
+--R      [1.1424000000000003,2.8843999999999999],
+--R      [1.2383999999999999,2.8704000000000001],
+--R      [1.3375999999999999,2.8555999999999999],
+--R      [1.4399999999999999,2.8399999999999999],
+--R      [1.5456000000000003,2.8235999999999999], [1.6544000000000003,2.8064],
+--R      [1.7664,2.7884000000000002], [1.8815999999999999,2.7696000000000005],
+--R      [2.,2.75], [2.1215999999999999,2.7296000000000005],
+--R      [2.2464,2.7084000000000001], [2.3744000000000005,2.6863999999999999],
+--R      [2.5055999999999998,2.6636000000000006],
+--R      [2.6400000000000006,2.6400000000000006],
+--R      [2.7776000000000005,2.6156000000000006],
+--R      [2.9184000000000001,2.5903999999999998], [3.0623999999999998,2.5644],
+--R      [3.2096,2.5375999999999999], [3.3599999999999999,2.5099999999999998],
+--R      [3.5135999999999998,2.4815999999999998],
+--R      [3.6703999999999999,2.4523999999999999], [3.8304,2.4224000000000006],
+--R      [3.9935999999999998,2.3915999999999999],
+--R      [4.1600000000000001,2.3599999999999999],
+--R      [4.329600000000001,2.3275999999999999], [4.5023999999999997,2.2944],
+--R      [4.6783999999999999,2.2604000000000006], [4.8575999999999997,2.2256],
+--R      [5.0400000000000009,2.1899999999999999], [5.2256,2.1536],
+--R      [5.4143999999999997,2.1164000000000005],
+--R      [5.6063999999999998,2.0783999999999998],
+--R      [5.8015999999999996,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [1.9014,2.0396000000000001],
+--R      [1.8056000000000001,2.0783999999999998],
+--R      [1.7125999999999999,2.1164000000000005], [1.6224000000000003,2.1536],
+--R      [1.5349999999999999,2.1899999999999999], [1.4503999999999999,2.2256],
+--R      [1.3686000000000003,2.2604000000000006], [1.2896000000000001,2.2944],
+--R      [1.2134,2.3275999999999999], [1.1399999999999999,2.3599999999999999],
+--R      [1.0693999999999999,2.3915999999999999],
+--R      [1.0016000000000003,2.4224000000000006],
+--R      [0.93659999999999999,2.4523999999999999],
+--R      [0.87439999999999996,2.4815999999999998],
+--R      [0.81499999999999995,2.5099999999999998],
+--R      [0.75839999999999996,2.5375999999999999], [0.70460000000000012,2.5644],
+--R      [0.65359999999999996,2.5903999999999998],
+--R      [0.60540000000000016,2.6156000000000006],
+--R      [0.56000000000000005,2.6400000000000006],
+--R      [0.51739999999999997,2.6636000000000006],
+--R      [0.47760000000000002,2.6863999999999999],
+--R      [0.44059999999999999,2.7084000000000001],
+--R      [0.40639999999999998,2.7296000000000005], [0.375,2.75],
+--R      [0.34639999999999999,2.7696000000000005], [0.3206,2.7884000000000002],
+--R      [0.29759999999999998,2.8064], [0.27739999999999998,2.8235999999999999],
+--R      [0.26000000000000001,2.8399999999999999],
+--R      [0.24540000000000001,2.8555999999999999],
+--R      [0.23360000000000003,2.8704000000000001],
+--R      [0.22459999999999999,2.8843999999999999],
+--R      [0.21840000000000004,2.8976000000000006], [0.215,2.9100000000000001],
+--R      [0.21440000000000003,2.9216000000000006],
+--R      [0.21659999999999999,2.9323999999999999],
+--R      [0.22159999999999999,2.9424000000000001], [0.22939999999999999,2.9516],
+--R      [0.23999999999999999,2.96], [0.25340000000000007,2.9676],
+--R      [0.26960000000000006,2.9744000000000002],
+--R      [0.28860000000000008,2.9803999999999999],
+--R      [0.31040000000000001,2.9855999999999998],
+--R      [0.33500000000000008,2.9900000000000002], [0.3624,2.9935999999999998],
+--R      [0.39260000000000006,2.9964], [0.42559999999999998,2.9984000000000002],
+--R      [0.46139999999999998,2.9996], [0.5,3.], [0.54139999999999999,2.9996],
+--R      [0.58560000000000012,2.9984000000000002], [0.63260000000000005,2.9964],
+--R      [0.68240000000000012,2.9935999999999998],
+--R      [0.73499999999999999,2.9900000000000002],
+--R      [0.79039999999999999,2.9855999999999998],
+--R      [0.84860000000000002,2.9803999999999999],
+--R      [0.90959999999999996,2.9744000000000002], [0.97340000000000004,2.9676],
+--R      [1.04,2.96], [1.1093999999999999,2.9516], [1.1816,2.9424000000000001],
+--R      [1.2565999999999999,2.9323999999999999], [1.3344,2.9216000000000006],
+--R      [1.415,2.9100000000000001], [1.4984,2.8976000000000006],
+--R      [1.5846,2.8843999999999999], [1.6736,2.8704000000000001],
+--R      [1.7654000000000001,2.8555999999999999],
+--R      [1.8600000000000003,2.8399999999999999],
+--R      [1.9574000000000003,2.8235999999999999], [2.0575999999999999,2.8064],
+--R      [2.1606000000000005,2.7884000000000002], [2.2664,2.7696000000000005],
+--R      [2.375,2.75], [2.4864000000000006,2.7296000000000005],
+--R      [2.6006,2.7084000000000001], [2.7176,2.6863999999999999],
+--R      [2.8374000000000006,2.6636000000000006], [2.96,2.6400000000000006],
+--R      [3.0853999999999999,2.6156000000000006],
+--R      [3.2136000000000005,2.5903999999999998], [3.3445999999999998,2.5644],
+--R      [3.4784000000000006,2.5375999999999999],
+--R      [3.6150000000000002,2.5099999999999998], [3.7544,2.4815999999999998],
+--R      [3.8965999999999998,2.4523999999999999],
+--R      [4.0415999999999999,2.4224000000000006],
+--R      [4.1894000000000009,2.3915999999999999],
+--R      [4.3399999999999999,2.3599999999999999],
+--R      [4.4934000000000012,2.3275999999999999], [4.6496000000000013,2.2944],
+--R      [4.8086000000000002,2.2604000000000006], [4.9703999999999997,2.2256],
+--R      [5.1349999999999998,2.1899999999999999], [5.3023999999999996,2.1536],
+--R      [5.4725999999999999,2.1164000000000005], [5.6456,2.0783999999999998],
+--R      [5.8213999999999997,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [1.9212000000000002,2.0396000000000001],
+--R      [1.8448,2.0783999999999998], [1.7707999999999999,2.1164000000000005],
+--R      [1.6992000000000003,2.1536], [1.6299999999999999,2.1899999999999999],
+--R      [1.5631999999999999,2.2256], [1.4987999999999999,2.2604000000000006],
+--R      [1.4368000000000003,2.2944], [1.3772,2.3275999999999999],
+--R      [1.3200000000000003,2.3599999999999999],
+--R      [1.2652000000000001,2.3915999999999999],
+--R      [1.2128000000000001,2.4224000000000006],
+--R      [1.1628000000000003,2.4523999999999999], [1.1152,2.4815999999999998],
+--R      [1.0700000000000003,2.5099999999999998],
+--R      [1.0271999999999999,2.5375999999999999], [0.98680000000000012,2.5644],
+--R      [0.94879999999999998,2.5903999999999998],
+--R      [0.91320000000000001,2.6156000000000006],
+--R      [0.88000000000000012,2.6400000000000006],
+--R      [0.84919999999999995,2.6636000000000006],
+--R      [0.82079999999999997,2.6863999999999999],
+--R      [0.79479999999999995,2.7084000000000001], [0.7712,2.7296000000000005],
+--R      [0.75,2.75], [0.73119999999999996,2.7696000000000005],
+--R      [0.71479999999999999,2.7884000000000002], [0.70079999999999998,2.8064],
+--R      [0.68920000000000003,2.8235999999999999],
+--R      [0.68000000000000016,2.8399999999999999],
+--R      [0.67320000000000002,2.8555999999999999],
+--R      [0.66879999999999995,2.8704000000000001],
+--R      [0.66679999999999995,2.8843999999999999],
+--R      [0.66720000000000002,2.8976000000000006],
+--R      [0.67000000000000015,2.9100000000000001],
+--R      [0.67520000000000002,2.9216000000000006],
+--R      [0.68279999999999996,2.9323999999999999],
+--R      [0.69279999999999997,2.9424000000000001], [0.70520000000000005,2.9516],
+--R      [0.71999999999999997,2.96], [0.73719999999999997,2.9676],
+--R      [0.75680000000000014,2.9744000000000002],
+--R      [0.77880000000000016,2.9803999999999999],
+--R      [0.80320000000000014,2.9855999999999998],
+--R      [0.82999999999999996,2.9900000000000002],
+--R      [0.85919999999999996,2.9935999999999998], [0.89080000000000004,2.9964],
+--R      [0.92479999999999996,2.9984000000000002], [0.96120000000000005,2.9996],
+--R      [1.,3.], [1.0411999999999999,2.9996], [1.0848,2.9984000000000002],
+--R      [1.1308000000000002,2.9964], [1.1792000000000002,2.9935999999999998],
+--R      [1.23,2.9900000000000002], [1.2831999999999999,2.9855999999999998],
+--R      [1.3388,2.9803999999999999], [1.3968000000000003,2.9744000000000002],
+--R      [1.4572000000000003,2.9676], [1.52,2.96], [1.5851999999999999,2.9516],
+--R      [1.6528,2.9424000000000001], [1.7228000000000003,2.9323999999999999],
+--R      [1.7951999999999999,2.9216000000000006],
+--R      [1.8700000000000001,2.9100000000000001], [1.9472,2.8976000000000006],
+--R      [2.0268000000000006,2.8843999999999999],
+--R      [2.1088000000000005,2.8704000000000001], [2.1932,2.8555999999999999],
+--R      [2.2799999999999998,2.8399999999999999],
+--R      [2.3692000000000002,2.8235999999999999], [2.4607999999999999,2.8064],
+--R      [2.5548000000000002,2.7884000000000002],
+--R      [2.6511999999999998,2.7696000000000005], [2.75,2.75],
+--R      [2.8512,2.7296000000000005], [2.9548000000000005,2.7084000000000001],
+--R      [3.0608,2.6863999999999999], [3.1692,2.6636000000000006],
+--R      [3.2799999999999998,2.6400000000000006],
+--R      [3.3932000000000002,2.6156000000000006],
+--R      [3.5087999999999999,2.5903999999999998], [3.6267999999999998,2.5644],
+--R      [3.7471999999999999,2.5375999999999999],
+--R      [3.8700000000000001,2.5099999999999998],
+--R      [3.9952000000000005,2.4815999999999998],
+--R      [4.1227999999999998,2.4523999999999999],
+--R      [4.2527999999999997,2.4224000000000006],
+--R      [4.3852000000000011,2.3915999999999999],
+--R      [4.5199999999999996,2.3599999999999999],
+--R      [4.6571999999999996,2.3275999999999999], [4.7968000000000011,2.2944],
+--R      [4.9387999999999996,2.2604000000000006], [5.0831999999999997,2.2256],
+--R      [5.2300000000000004,2.1899999999999999], [5.3792,2.1536],
+--R      [5.530800000000001,2.1164000000000005],
+--R      [5.684800000000001,2.0783999999999998],
+--R      [5.8411999999999997,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [1.9410000000000003,2.0396000000000001],
+--R      [1.8839999999999999,2.0783999999999998], [1.829,2.1164000000000005],
+--R      [1.7760000000000002,2.1536], [1.7250000000000001,2.1899999999999999],
+--R      [1.6759999999999999,2.2256], [1.629,2.2604000000000006],
+--R      [1.5840000000000001,2.2944], [1.5409999999999999,2.3275999999999999],
+--R      [1.5,2.3599999999999999], [1.4610000000000003,2.3915999999999999],
+--R      [1.4239999999999999,2.4224000000000006],
+--R      [1.3890000000000002,2.4523999999999999],
+--R      [1.3560000000000003,2.4815999999999998], [1.325,2.5099999999999998],
+--R      [1.2960000000000003,2.5375999999999999], [1.2689999999999999,2.5644],
+--R      [1.244,2.5903999999999998], [1.2210000000000001,2.6156000000000006],
+--R      [1.2,2.6400000000000006], [1.181,2.6636000000000006],
+--R      [1.1639999999999999,2.6863999999999999], [1.149,2.7084000000000001],
+--R      [1.1359999999999999,2.7296000000000005], [1.125,2.75],
+--R      [1.1160000000000001,2.7696000000000005], [1.109,2.7884000000000002],
+--R      [1.1040000000000001,2.8064], [1.101,2.8235999999999999],
+--R      [1.1000000000000001,2.8399999999999999], [1.101,2.8555999999999999],
+--R      [1.1040000000000001,2.8704000000000001], [1.109,2.8843999999999999],
+--R      [1.1160000000000001,2.8976000000000006], [1.125,2.9100000000000001],
+--R      [1.1359999999999999,2.9216000000000006], [1.149,2.9323999999999999],
+--R      [1.1639999999999999,2.9424000000000001], [1.181,2.9516], [1.2,2.96],
+--R      [1.2210000000000001,2.9676], [1.244,2.9744000000000002],
+--R      [1.2689999999999999,2.9803999999999999],
+--R      [1.2960000000000003,2.9855999999999998], [1.325,2.9900000000000002],
+--R      [1.3560000000000003,2.9935999999999998], [1.3890000000000002,2.9964],
+--R      [1.4239999999999999,2.9984000000000002], [1.4610000000000003,2.9996],
+--R      [1.5,3.], [1.5409999999999999,2.9996],
+--R      [1.5840000000000001,2.9984000000000002], [1.629,2.9964],
+--R      [1.6759999999999999,2.9935999999999998],
+--R      [1.7250000000000001,2.9900000000000002],
+--R      [1.7760000000000002,2.9855999999999998], [1.829,2.9803999999999999],
+--R      [1.8839999999999999,2.9744000000000002], [1.9410000000000003,2.9676],
+--R      [2.,2.96], [2.0609999999999999,2.9516],
+--R      [2.1240000000000006,2.9424000000000001],
+--R      [2.1890000000000001,2.9323999999999999],
+--R      [2.2559999999999998,2.9216000000000006],
+--R      [2.3250000000000002,2.9100000000000001],
+--R      [2.3959999999999999,2.8976000000000006],
+--R      [2.4689999999999999,2.8843999999999999],
+--R      [2.5440000000000005,2.8704000000000001], [2.621,2.8555999999999999],
+--R      [2.7000000000000002,2.8399999999999999],
+--R      [2.7810000000000006,2.8235999999999999], [2.8639999999999999,2.8064],
+--R      [2.9489999999999998,2.7884000000000002],
+--R      [3.0360000000000005,2.7696000000000005], [3.125,2.75],
+--R      [3.2160000000000002,2.7296000000000005],
+--R      [3.3090000000000002,2.7084000000000001],
+--R      [3.4039999999999999,2.6863999999999999],
+--R      [3.5009999999999999,2.6636000000000006],
+--R      [3.6000000000000005,2.6400000000000006],
+--R      [3.7010000000000005,2.6156000000000006],
+--R      [3.8039999999999998,2.5903999999999998], [3.9089999999999998,2.5644],
+--R      [4.016,2.5375999999999999], [4.125,2.5099999999999998],
+--R      [4.2359999999999998,2.4815999999999998],
+--R      [4.3490000000000002,2.4523999999999999],
+--R      [4.4640000000000004,2.4224000000000006],
+--R      [4.5810000000000013,2.3915999999999999],
+--R      [4.7000000000000011,2.3599999999999999],
+--R      [4.8209999999999997,2.3275999999999999], [4.944,2.2944],
+--R      [5.069,2.2604000000000006], [5.1959999999999997,2.2256],
+--R      [5.3250000000000011,2.1899999999999999], [5.4560000000000013,2.1536],
+--R      [5.5890000000000004,2.1164000000000005],
+--R      [5.7240000000000002,2.0783999999999998],
+--R      [5.8609999999999998,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [1.9608000000000003,2.0396000000000001],
+--R      [1.9232,2.0783999999999998], [1.8872,2.1164000000000005],
+--R      [1.8528000000000002,2.1536], [1.8200000000000003,2.1899999999999999],
+--R      [1.7887999999999999,2.2256], [1.7592000000000003,2.2604000000000006],
+--R      [1.7312000000000003,2.2944], [1.7048000000000001,2.3275999999999999],
+--R      [1.6799999999999999,2.3599999999999999],
+--R      [1.6568000000000001,2.3915999999999999], [1.6352,2.4224000000000006],
+--R      [1.6152,2.4523999999999999], [1.5968,2.4815999999999998],
+--R      [1.5800000000000001,2.5099999999999998], [1.5648,2.5375999999999999],
+--R      [1.5511999999999999,2.5644], [1.5391999999999999,2.5903999999999998],
+--R      [1.5287999999999999,2.6156000000000006], [1.52,2.6400000000000006],
+--R      [1.5127999999999999,2.6636000000000006],
+--R      [1.5072000000000001,2.6863999999999999],
+--R      [1.5032000000000001,2.7084000000000001],
+--R      [1.5007999999999999,2.7296000000000005], [1.5,2.75],
+--R      [1.5007999999999999,2.7696000000000005],
+--R      [1.5032000000000001,2.7884000000000002], [1.5072000000000001,2.8064],
+--R      [1.5127999999999999,2.8235999999999999], [1.52,2.8399999999999999],
+--R      [1.5287999999999999,2.8555999999999999],
+--R      [1.5391999999999999,2.8704000000000001],
+--R      [1.5511999999999999,2.8843999999999999], [1.5648,2.8976000000000006],
+--R      [1.5800000000000001,2.9100000000000001], [1.5968,2.9216000000000006],
+--R      [1.6152,2.9323999999999999], [1.6352,2.9424000000000001],
+--R      [1.6568000000000001,2.9516], [1.6799999999999999,2.96],
+--R      [1.7048000000000001,2.9676], [1.7312000000000003,2.9744000000000002],
+--R      [1.7592000000000003,2.9803999999999999],
+--R      [1.7887999999999999,2.9855999999999998],
+--R      [1.8200000000000003,2.9900000000000002],
+--R      [1.8528000000000002,2.9935999999999998], [1.8872,2.9964],
+--R      [1.9232,2.9984000000000002], [1.9608000000000003,2.9996], [2.,3.],
+--R      [2.0407999999999999,2.9996], [2.0832000000000006,2.9984000000000002],
+--R      [2.1272000000000002,2.9964], [2.1728000000000005,2.9935999999999998],
+--R      [2.2200000000000006,2.9900000000000002],
+--R      [2.2688000000000006,2.9855999999999998],
+--R      [2.3191999999999999,2.9803999999999999], [2.3712,2.9744000000000002],
+--R      [2.4247999999999998,2.9676], [2.48,2.96], [2.5367999999999999,2.9516],
+--R      [2.5952000000000002,2.9424000000000001],
+--R      [2.6551999999999998,2.9323999999999999],
+--R      [2.7168000000000001,2.9216000000000006],
+--R      [2.7799999999999998,2.9100000000000001],
+--R      [2.8448000000000002,2.8976000000000006], [2.9112,2.8843999999999999],
+--R      [2.9792000000000005,2.8704000000000001], [3.0488,2.8555999999999999],
+--R      [3.1200000000000001,2.8399999999999999],
+--R      [3.1928000000000001,2.8235999999999999], [3.2671999999999999,2.8064],
+--R      [3.3431999999999999,2.7884000000000002],
+--R      [3.4207999999999998,2.7696000000000005], [3.5,2.75],
+--R      [3.5808,2.7296000000000005], [3.6631999999999998,2.7084000000000001],
+--R      [3.7471999999999999,2.6863999999999999],
+--R      [3.8328000000000007,2.6636000000000006],
+--R      [3.9199999999999999,2.6400000000000006],
+--R      [4.0087999999999999,2.6156000000000006],
+--R      [4.0991999999999997,2.5903999999999998], [4.1912000000000003,2.5644],
+--R      [4.2847999999999997,2.5375999999999999],
+--R      [4.3799999999999999,2.5099999999999998],
+--R      [4.4767999999999999,2.4815999999999998],
+--R      [4.5751999999999997,2.4523999999999999],
+--R      [4.6752000000000002,2.4224000000000006],
+--R      [4.7767999999999997,2.3915999999999999],
+--R      [4.8799999999999999,2.3599999999999999],
+--R      [4.9847999999999999,2.3275999999999999], [5.0911999999999997,2.2944],
+--R      [5.1992000000000012,2.2604000000000006], [5.3087999999999997,2.2256],
+--R      [5.4199999999999999,2.1899999999999999], [5.5327999999999999,2.1536],
+--R      [5.6471999999999998,2.1164000000000005],
+--R      [5.7632000000000012,2.0783999999999998],
+--R      [5.8807999999999998,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [1.9805999999999999,2.0396000000000001],
+--R      [1.9623999999999999,2.0783999999999998],
+--R      [1.9454000000000002,2.1164000000000005], [1.9296,2.1536],
+--R      [1.915,2.1899999999999999], [1.9016,2.2256], [1.8894,2.2604000000000006],
+--R      [1.8784000000000001,2.2944], [1.8686000000000003,2.3275999999999999],
+--R      [1.8600000000000003,2.3599999999999999],
+--R      [1.8526000000000002,2.3915999999999999], [1.8464,2.4224000000000006],
+--R      [1.8413999999999999,2.4523999999999999],
+--R      [1.8375999999999999,2.4815999999999998], [1.835,2.5099999999999998],
+--R      [1.8335999999999999,2.5375999999999999], [1.8333999999999999,2.5644],
+--R      [1.8344,2.5903999999999998], [1.8366000000000002,2.6156000000000006],
+--R      [1.8400000000000003,2.6400000000000006],
+--R      [1.8446000000000002,2.6636000000000006], [1.8504,2.6863999999999999],
+--R      [1.8573999999999999,2.7084000000000001],
+--R      [1.8655999999999999,2.7296000000000005], [1.875,2.75],
+--R      [1.8855999999999999,2.7696000000000005], [1.8974,2.7884000000000002],
+--R      [1.9104000000000001,2.8064], [1.9246000000000003,2.8235999999999999],
+--R      [1.9399999999999999,2.8399999999999999],
+--R      [1.9565999999999999,2.8555999999999999],
+--R      [1.9743999999999999,2.8704000000000001],
+--R      [1.9934000000000003,2.8843999999999999],
+--R      [2.0135999999999998,2.8976000000000006],
+--R      [2.0350000000000001,2.9100000000000001],
+--R      [2.0575999999999999,2.9216000000000006],
+--R      [2.0813999999999999,2.9323999999999999],
+--R      [2.1063999999999998,2.9424000000000001], [2.1326000000000001,2.9516],
+--R      [2.1600000000000001,2.96], [2.1886000000000001,2.9676],
+--R      [2.2183999999999999,2.9744000000000002],
+--R      [2.2494000000000005,2.9803999999999999],
+--R      [2.2816000000000001,2.9855999999999998],
+--R      [2.3149999999999999,2.9900000000000002],
+--R      [2.3496000000000006,2.9935999999999998], [2.3854000000000006,2.9964],
+--R      [2.4224000000000006,2.9984000000000002], [2.4605999999999999,2.9996],
+--R      [2.5,3.], [2.5406,2.9996], [2.5823999999999998,2.9984000000000002],
+--R      [2.6254,2.9964], [2.6696,2.9935999999999998],
+--R      [2.7149999999999999,2.9900000000000002],
+--R      [2.7616000000000005,2.9855999999999998],
+--R      [2.8094000000000001,2.9803999999999999],
+--R      [2.8584000000000005,2.9744000000000002], [2.9085999999999999,2.9676],
+--R      [2.96,2.96], [3.0125999999999999,2.9516],
+--R      [3.0663999999999998,2.9424000000000001], [3.1214,2.9323999999999999],
+--R      [3.1776,2.9216000000000006], [3.2349999999999999,2.9100000000000001],
+--R      [3.2936000000000005,2.8976000000000006],
+--R      [3.3534000000000006,2.8843999999999999],
+--R      [3.4144000000000005,2.8704000000000001],
+--R      [3.4765999999999999,2.8555999999999999], [3.54,2.8399999999999999],
+--R      [3.6046000000000005,2.8235999999999999], [3.6703999999999999,2.8064],
+--R      [3.7374000000000001,2.7884000000000002],
+--R      [3.8056000000000001,2.7696000000000005], [3.875,2.75],
+--R      [3.9456000000000007,2.7296000000000005],
+--R      [4.0174000000000003,2.7084000000000001],
+--R      [4.0903999999999998,2.6863999999999999],
+--R      [4.1646000000000001,2.6636000000000006],
+--R      [4.2400000000000002,2.6400000000000006],
+--R      [4.3166000000000011,2.6156000000000006],
+--R      [4.394400000000001,2.5903999999999998], [4.4733999999999998,2.5644],
+--R      [4.5536000000000012,2.5375999999999999],
+--R      [4.6349999999999998,2.5099999999999998],
+--R      [4.7176000000000009,2.4815999999999998],
+--R      [4.801400000000001,2.4523999999999999],
+--R      [4.8864000000000001,2.4224000000000006],
+--R      [4.9725999999999999,2.3915999999999999],
+--R      [5.0599999999999996,2.3599999999999999],
+--R      [5.1486000000000001,2.3275999999999999], [5.2384000000000004,2.2944],
+--R      [5.3293999999999997,2.2604000000000006], [5.4215999999999998,2.2256],
+--R      [5.5149999999999997,2.1899999999999999], [5.6096000000000004,2.1536],
+--R      [5.7054000000000009,2.1164000000000005],
+--R      [5.8023999999999996,2.0783999999999998],
+--R      [5.9005999999999998,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [2.0004,2.0396000000000001],
+--R      [2.0015999999999998,2.0783999999999998],
+--R      [2.0036000000000005,2.1164000000000005], [2.0064000000000002,2.1536],
+--R      [2.0099999999999998,2.1899999999999999], [2.0144000000000002,2.2256],
+--R      [2.0196000000000005,2.2604000000000006], [2.0255999999999998,2.2944],
+--R      [2.0324,2.3275999999999999], [2.04,2.3599999999999999],
+--R      [2.0484,2.3915999999999999], [2.0575999999999999,2.4224000000000006],
+--R      [2.0676000000000005,2.4523999999999999],
+--R      [2.0783999999999998,2.4815999999999998],
+--R      [2.0899999999999999,2.5099999999999998],
+--R      [2.1023999999999998,2.5375999999999999], [2.1156000000000006,2.5644],
+--R      [2.1295999999999999,2.5903999999999998],
+--R      [2.1444000000000001,2.6156000000000006],
+--R      [2.1600000000000001,2.6400000000000006],
+--R      [2.1764000000000001,2.6636000000000006], [2.1936,2.6863999999999999],
+--R      [2.2115999999999998,2.7084000000000001],
+--R      [2.2303999999999999,2.7296000000000005], [2.25,2.75],
+--R      [2.2704,2.7696000000000005], [2.2915999999999999,2.7884000000000002],
+--R      [2.3136000000000001,2.8064], [2.3363999999999998,2.8235999999999999],
+--R      [2.3599999999999999,2.8399999999999999],
+--R      [2.3843999999999999,2.8555999999999999],
+--R      [2.4096000000000002,2.8704000000000001], [2.4356,2.8843999999999999],
+--R      [2.4624000000000006,2.8976000000000006],
+--R      [2.4900000000000002,2.9100000000000001],
+--R      [2.5184000000000006,2.9216000000000006],
+--R      [2.5476000000000001,2.9323999999999999],
+--R      [2.5775999999999999,2.9424000000000001], [2.6084000000000005,2.9516],
+--R      [2.6400000000000006,2.96], [2.6724000000000006,2.9676],
+--R      [2.7056000000000004,2.9744000000000002],
+--R      [2.7395999999999998,2.9803999999999999], [2.7744,2.9855999999999998],
+--R      [2.8100000000000005,2.9900000000000002], [2.8464,2.9935999999999998],
+--R      [2.8835999999999999,2.9964], [2.9216000000000006,2.9984000000000002],
+--R      [2.9603999999999999,2.9996], [3.,3.], [3.0404,2.9996],
+--R      [3.0815999999999999,2.9984000000000002], [3.1236000000000006,2.9964],
+--R      [3.1663999999999999,2.9935999999999998], [3.21,2.9900000000000002],
+--R      [3.2544,2.9855999999999998], [3.2995999999999999,2.9803999999999999],
+--R      [3.3456000000000001,2.9744000000000002], [3.3923999999999999,2.9676],
+--R      [3.4399999999999999,2.96], [3.4883999999999999,2.9516],
+--R      [3.5375999999999999,2.9424000000000001],
+--R      [3.5876000000000001,2.9323999999999999],
+--R      [3.6383999999999999,2.9216000000000006],
+--R      [3.6899999999999999,2.9100000000000001],
+--R      [3.7423999999999999,2.8976000000000006],
+--R      [3.7955999999999999,2.8843999999999999],
+--R      [3.8496000000000006,2.8704000000000001],
+--R      [3.9043999999999999,2.8555999999999999], [3.96,2.8399999999999999],
+--R      [4.0164,2.8235999999999999], [4.0735999999999999,2.8064],
+--R      [4.1315999999999997,2.7884000000000002],
+--R      [4.1904000000000003,2.7696000000000005], [4.25,2.75],
+--R      [4.3103999999999996,2.7296000000000005],
+--R      [4.3715999999999999,2.7084000000000001],
+--R      [4.4336000000000002,2.6863999999999999],
+--R      [4.4964000000000013,2.6636000000000006],
+--R      [4.5599999999999996,2.6400000000000006],
+--R      [4.6243999999999996,2.6156000000000006],
+--R      [4.6896000000000004,2.5903999999999998], [4.7556000000000012,2.5644],
+--R      [4.8224,2.5375999999999999], [4.8899999999999997,2.5099999999999998],
+--R      [4.958400000000001,2.4815999999999998],
+--R      [5.0275999999999996,2.4523999999999999],
+--R      [5.0975999999999999,2.4224000000000006],
+--R      [5.1684000000000001,2.3915999999999999],
+--R      [5.2400000000000002,2.3599999999999999],
+--R      [5.3124000000000002,2.3275999999999999], [5.3856000000000002,2.2944],
+--R      [5.4596,2.2604000000000006], [5.5343999999999998,2.2256],
+--R      [5.6100000000000012,2.1899999999999999], [5.6863999999999999,2.1536],
+--R      [5.7636000000000003,2.1164000000000005],
+--R      [5.8415999999999997,2.0783999999999998],
+--R      [5.9203999999999999,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [2.0202,2.0396000000000001],
+--R      [2.0407999999999999,2.0783999999999998],
+--R      [2.0617999999999999,2.1164000000000005], [2.0832000000000006,2.1536],
+--R      [2.105,2.1899999999999999], [2.1272000000000002,2.2256],
+--R      [2.1497999999999999,2.2604000000000006], [2.1728000000000005,2.2944],
+--R      [2.1962000000000002,2.3275999999999999],
+--R      [2.2200000000000006,2.3599999999999999],
+--R      [2.2442000000000002,2.3915999999999999],
+--R      [2.2688000000000006,2.4224000000000006],
+--R      [2.2938000000000001,2.4523999999999999],
+--R      [2.3191999999999999,2.4815999999999998],
+--R      [2.3450000000000006,2.5099999999999998], [2.3712,2.5375999999999999],
+--R      [2.3978000000000002,2.5644], [2.4247999999999998,2.5903999999999998],
+--R      [2.4521999999999999,2.6156000000000006], [2.48,2.6400000000000006],
+--R      [2.5082,2.6636000000000006], [2.5367999999999999,2.6863999999999999],
+--R      [2.5657999999999999,2.7084000000000001],
+--R      [2.5952000000000002,2.7296000000000005], [2.625,2.75],
+--R      [2.6551999999999998,2.7696000000000005], [2.6858,2.7884000000000002],
+--R      [2.7168000000000001,2.8064], [2.7482000000000006,2.8235999999999999],
+--R      [2.7799999999999998,2.8399999999999999],
+--R      [2.8121999999999998,2.8555999999999999],
+--R      [2.8448000000000002,2.8704000000000001],
+--R      [2.8778000000000006,2.8843999999999999], [2.9112,2.8976000000000006],
+--R      [2.9449999999999998,2.9100000000000001],
+--R      [2.9792000000000005,2.9216000000000006],
+--R      [3.0137999999999998,2.9323999999999999], [3.0488,2.9424000000000001],
+--R      [3.0842000000000001,2.9516], [3.1200000000000001,2.96],
+--R      [3.1562000000000001,2.9676], [3.1928000000000001,2.9744000000000002],
+--R      [3.2298,2.9803999999999999], [3.2671999999999999,2.9855999999999998],
+--R      [3.3050000000000006,2.9900000000000002],
+--R      [3.3431999999999999,2.9935999999999998], [3.3818000000000001,2.9964],
+--R      [3.4207999999999998,2.9984000000000002], [3.4601999999999999,2.9996],
+--R      [3.5,3.], [3.5402000000000005,2.9996], [3.5808,2.9984000000000002],
+--R      [3.6217999999999999,2.9964], [3.6631999999999998,2.9935999999999998],
+--R      [3.7050000000000001,2.9900000000000002],
+--R      [3.7471999999999999,2.9855999999999998],
+--R      [3.7898000000000005,2.9803999999999999],
+--R      [3.8328000000000007,2.9744000000000002], [3.8761999999999999,2.9676],
+--R      [3.9199999999999999,2.96], [3.9641999999999999,2.9516],
+--R      [4.0087999999999999,2.9424000000000001],
+--R      [4.0537999999999998,2.9323999999999999],
+--R      [4.0991999999999997,2.9216000000000006],
+--R      [4.1449999999999996,2.9100000000000001],
+--R      [4.1912000000000003,2.8976000000000006], [4.2378,2.8843999999999999],
+--R      [4.2847999999999997,2.8704000000000001],
+--R      [4.3322000000000003,2.8555999999999999],
+--R      [4.3799999999999999,2.8399999999999999],
+--R      [4.4282000000000004,2.8235999999999999], [4.4767999999999999,2.8064],
+--R      [4.5258000000000003,2.7884000000000002],
+--R      [4.5751999999999997,2.7696000000000005], [4.625,2.75],
+--R      [4.6752000000000002,2.7296000000000005],
+--R      [4.7257999999999996,2.7084000000000001],
+--R      [4.7767999999999997,2.6863999999999999],
+--R      [4.8281999999999998,2.6636000000000006],
+--R      [4.8799999999999999,2.6400000000000006],
+--R      [4.9321999999999999,2.6156000000000006],
+--R      [4.9847999999999999,2.5903999999999998], [5.0377999999999998,2.5644],
+--R      [5.0911999999999997,2.5375999999999999],
+--R      [5.1449999999999996,2.5099999999999998],
+--R      [5.1992000000000012,2.4815999999999998], [5.2538,2.4523999999999999],
+--R      [5.3087999999999997,2.4224000000000006],
+--R      [5.3642000000000003,2.3915999999999999],
+--R      [5.4199999999999999,2.3599999999999999],
+--R      [5.4762000000000004,2.3275999999999999], [5.5327999999999999,2.2944],
+--R      [5.5898000000000003,2.2604000000000006], [5.6471999999999998,2.2256],
+--R      [5.7050000000000001,2.1899999999999999], [5.7632000000000012,2.1536],
+--R      [5.8217999999999996,2.1164000000000005],
+--R      [5.8807999999999998,2.0783999999999998],
+--R      [5.9401999999999999,2.0396000000000001], [6.,2.]]
+--R     ,
+--R
+--R     [[2.,2.], [2.04,2.0396000000000001],
+--R      [2.0800000000000001,2.0783999999999998],
+--R      [2.1200000000000001,2.1164000000000005], [2.1600000000000001,2.1536],
+--R      [2.2000000000000002,2.1899999999999999], [2.2400000000000002,2.2256],
+--R      [2.2799999999999998,2.2604000000000006], [2.3199999999999998,2.2944],
+--R      [2.3599999999999999,2.3275999999999999],
+--R      [2.3999999999999999,2.3599999999999999],
+--R      [2.4399999999999999,2.3915999999999999], [2.48,2.4224000000000006],
+--R      [2.5200000000000005,2.4523999999999999],
+--R      [2.5600000000000005,2.4815999999999998],
+--R      [2.6000000000000005,2.5099999999999998],
+--R      [2.6400000000000006,2.5375999999999999], [2.6800000000000006,2.5644],
+--R      [2.7200000000000006,2.5903999999999998],
+--R      [2.7599999999999998,2.6156000000000006],
+--R      [2.7999999999999998,2.6400000000000006],
+--R      [2.8399999999999999,2.6636000000000006],
+--R      [2.8799999999999999,2.6863999999999999],
+--R      [2.9199999999999999,2.7084000000000001], [2.96,2.7296000000000005],
+--R      [3.,2.75], [3.04,2.7696000000000005],
+--R      [3.0800000000000001,2.7884000000000002], [3.1200000000000001,2.8064],
+--R      [3.1600000000000001,2.8235999999999999],
+--R      [3.2000000000000002,2.8399999999999999],
+--R      [3.2400000000000002,2.8555999999999999],
+--R      [3.2799999999999998,2.8704000000000001],
+--R      [3.3199999999999998,2.8843999999999999],
+--R      [3.3599999999999999,2.8976000000000006],
+--R      [3.3999999999999999,2.9100000000000001],
+--R      [3.4399999999999999,2.9216000000000006], [3.48,2.9323999999999999],
+--R      [3.5200000000000005,2.9424000000000001], [3.5600000000000005,2.9516],
+--R      [3.6000000000000005,2.96], [3.6400000000000006,2.9676],
+--R      [3.6800000000000006,2.9744000000000002],
+--R      [3.7200000000000006,2.9803999999999999],
+--R      [3.7599999999999998,2.9855999999999998],
+--R      [3.7999999999999998,2.9900000000000002],
+--R      [3.8399999999999999,2.9935999999999998], [3.8799999999999999,2.9964],
+--R      [3.9199999999999999,2.9984000000000002], [3.96,2.9996], [4.,3.],
+--R      [4.0400000000000009,2.9996], [4.0800000000000001,2.9984000000000002],
+--R      [4.120000000000001,2.9964], [4.1600000000000001,2.9935999999999998],
+--R      [4.2000000000000011,2.9900000000000002],
+--R      [4.2400000000000002,2.9855999999999998],
+--R      [4.2800000000000011,2.9803999999999999],
+--R      [4.3200000000000003,2.9744000000000002], [4.3600000000000012,2.9676],
+--R      [4.4000000000000004,2.96], [4.4400000000000013,2.9516],
+--R      [4.4800000000000004,2.9424000000000001],
+--R      [4.5199999999999996,2.9323999999999999],
+--R      [4.5599999999999996,2.9216000000000006],
+--R      [4.5999999999999996,2.9100000000000001],
+--R      [4.6399999999999997,2.8976000000000006],
+--R      [4.6799999999999997,2.8843999999999999],
+--R      [4.7199999999999998,2.8704000000000001],
+--R      [4.7599999999999998,2.8555999999999999],
+--R      [4.7999999999999998,2.8399999999999999],
+--R      [4.8399999999999999,2.8235999999999999], [4.8799999999999999,2.8064],
+--R      [4.9199999999999999,2.7884000000000002], [4.96,2.7696000000000005],
+--R      [5.,2.75], [5.0400000000000009,2.7296000000000005],
+--R      [5.0800000000000001,2.7084000000000001],
+--R      [5.120000000000001,2.6863999999999999],
+--R      [5.1600000000000001,2.6636000000000006],
+--R      [5.2000000000000011,2.6400000000000006],
+--R      [5.2400000000000002,2.6156000000000006],
+--R      [5.2800000000000011,2.5903999999999998], [5.3200000000000003,2.5644],
+--R      [5.3600000000000012,2.5375999999999999],
+--R      [5.4000000000000004,2.5099999999999998],
+--R      [5.4400000000000013,2.4815999999999998],
+--R      [5.4800000000000004,2.4523999999999999],
+--R      [5.5199999999999996,2.4224000000000006],
+--R      [5.5599999999999996,2.3915999999999999],
+--R      [5.5999999999999996,2.3599999999999999],
+--R      [5.6399999999999997,2.3275999999999999], [5.6799999999999997,2.2944],
+--R      [5.7199999999999998,2.2604000000000006], [5.7599999999999998,2.2256],
+--R      [5.7999999999999998,2.1899999999999999], [5.8399999999999999,2.1536],
+--R      [5.8799999999999999,2.1164000000000005],
+--R      [5.9199999999999999,2.0783999999999998], [5.96,2.0396000000000001],
+--R      [6.,2.]]
+--R     ]
+--R                                         Type: List(List(Point(DoubleFloat)))
 --E 9
 
 -- We do not do these during testing since graphics is not available
@@ -5985,7 +6642,8 @@ BezoutMatrix(R,UP,M,Row,Col): Exports == Implementation where
 
 --S 1 of 1
 )show BlowUpPackage
---R BlowUpPackage(K: Field,symb: List Symbol,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(# symb,NonNegativeInteger),BLMET: BlowUpMethodCategory)  is a package constructor
+--R 
+--R BlowUpPackage(K: Field,symb: List(Symbol),PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(#(symb),NonNegativeInteger),BLMET: BlowUpMethodCategory)  is a package constructor
 --R Abbreviation for BlowUpPackage is BLUPPACK 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for BLUPPACK 
@@ -5993,10 +6651,10 @@ BezoutMatrix(R,UP,M,Row,Col): Exports == Implementation where
 --R------------------------------- Operations --------------------------------
 --R applyTransform : (PolyRing,BLMET) -> PolyRing
 --R biringToPolyRing : (DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),BLMET) -> PolyRing
---R newtonPolySlope : DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K) -> List List NonNegativeInteger
+--R newtonPolySlope : DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K) -> List(List(NonNegativeInteger))
 --R polyRingToBlUpRing : (PolyRing,BLMET) -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
 --R quadTransform : (DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),NonNegativeInteger,BLMET) -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
---R stepBlowUp : (DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),AffinePlane K,BLMET,K) -> Record(mult: NonNegativeInteger,subMult: NonNegativeInteger,blUpRec: List Record(recTransStr: DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),recPoint: AffinePlane K,recChart: BLMET,definingExtension: K))
+--R stepBlowUp : (DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),AffinePlane(K),BLMET,K) -> Record(mult: NonNegativeInteger,subMult: NonNegativeInteger,blUpRec: List(Record(recTransStr: DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),recPoint: AffinePlane(K),recChart: BLMET,definingExtension: K)))
 --R
 --E 1
 
@@ -7102,7 +7760,7 @@ D(product(f(i,x),i=1..m),x)
 --R   (2)   | |   f(i,x)>     --------
 --R         | |         --+    f(i,x)
 --R        i= 1         i= 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 2
 
 --S 3 of 6
@@ -7126,8 +7784,8 @@ displayRow(n)==output center blankSeparate pascalRow(n)
 --S 6 of 6
 for i in 0..7 repeat displayRow i
 --R 
---R   Compiling function pascalRow with type NonNegativeInteger -> List 
---R      OutputForm 
+--R   Compiling function pascalRow with type NonNegativeInteger -> List(
+--R      OutputForm) 
 --R   Compiling function displayRow with type NonNegativeInteger -> Void 
 --R                                     1
 --R                                  1    1
@@ -9705,7 +10363,7 @@ complete 1
 --R 
 --R
 --R   (1)  (1)
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 1
 
 --S 2 of 47
@@ -9715,7 +10373,7 @@ complete 2
 --R        1       1   2
 --R   (2)  - (2) + - (1 )
 --R        2       2
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 2
 
 --S 3 of 47
@@ -9725,7 +10383,7 @@ complete 3
 --R        1       1         1   3
 --R   (3)  - (3) + - (2 1) + - (1 )
 --R        3       2         6
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 3
 
 --S 4 of 47
@@ -9744,7 +10402,7 @@ complete 7
 --R      1      5      1    7
 --R     --- (2 1 ) + ---- (1 )
 --R     240          5040
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 4
 
 --S 5 of 47
@@ -9763,7 +10421,7 @@ elementary 7
 --R        1      5      1    7
 --R     - --- (2 1 ) + ---- (1 )
 --R       240          5040
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 5
 
 --S 6 of 47
@@ -9778,7 +10436,7 @@ alternating 7
 --R       1    7
 --R     ---- (1 )
 --R     2520
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 6
 
 --S 7 of 47
@@ -9788,7 +10446,7 @@ cyclic 7
 --R        6       1   7
 --R   (7)  - (7) + - (1 )
 --R        7       7
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 7
 
 --S 8 of 47
@@ -9798,7 +10456,7 @@ dihedral 7
 --R        3       1   3      1   7
 --R   (8)  - (7) + - (2 1) + -- (1 )
 --R        7       2         14
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 8
 
 --S 9 of 47
@@ -9809,7 +10467,7 @@ graphs 5
 --R   1           1   2    1   2     1   3     1   4 2     1   3 4     1    10
 --R   - (6 3 1) + - (5 ) + - (4 2) + - (3 1) + - (2 1 ) + -- (2 1 ) + --- (1  )
 --R   6           5        4         6         8          12          120
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 9
 
 --S 10 of 47
@@ -9817,7 +10475,7 @@ cap(complete 2**2, complete 2*complete 1**2)
 --R 
 --R
 --R   (10)  4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 10
 
 --S 11 of 47
@@ -9825,7 +10483,7 @@ cap(elementary 2**2, complete 2*complete 1**2)
 --R 
 --R
 --R   (11)  2
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 47
@@ -9833,7 +10491,7 @@ cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2)
 --R 
 --R
 --R   (12)  24
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 12
 
 --S 13 of 47
@@ -9841,7 +10499,7 @@ cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2)
 --R 
 --R
 --R   (13)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 13
 
 --S 14 of 47
@@ -9849,15 +10507,16 @@ cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2)
 --R 
 --R
 --R   (14)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 14
 
 --S 15 of 47
-eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete 1**2,complete 2**3)))
+eval(cup(complete 3*complete 2*complete 1, _
+     cup(complete 2**2*complete 1**2,complete 2**3)))
 --R 
 --R
 --R   (15)  1500
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 15
 
 --S 16 of 47
@@ -9867,7 +10526,7 @@ square:=dihedral 4
 --R         1       3   2    1     2    1   4
 --R   (16)  - (4) + - (2 ) + - (2 1 ) + - (1 )
 --R         4       8        4          8
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 16
 
 --S 17 of 47
@@ -9875,7 +10534,7 @@ cap(complete 2**2,square)
 --R 
 --R
 --R   (17)  2
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 17
 
 --S 18 of 47
@@ -9883,7 +10542,7 @@ cap(complete 3*complete 2**2,dihedral 7)
 --R 
 --R
 --R   (18)  18
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 18
 
 --S 19 of 47
@@ -9891,7 +10550,7 @@ cap(graphs 5,complete 7*complete 3)
 --R 
 --R
 --R   (19)  4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 19
 
 --S 20 of 47
@@ -9904,12 +10563,12 @@ s(x) == powerSum(x)
 cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2)
 --R 
 --R   Compiling function s with type PositiveInteger -> 
---R      SymmetricPolynomial Fraction Integer 
+--R      SymmetricPolynomial(Fraction(Integer)) 
 --R
 --R         1   2    1   2 2    3   4     1   8
 --R   (21)  - (4 ) + - (3 1 ) + - (2 ) + -- (1 )
 --R         4        3          8        24
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 21
 
 --S 22 of 47
@@ -9917,7 +10576,7 @@ cap(complete 4**2,cube)
 --R 
 --R
 --R   (22)  7
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 22
 
 --S 23 of 47
@@ -9925,7 +10584,7 @@ cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2))
 --R 
 --R
 --R   (23)  7
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 23
 
 --S 24 of 47
@@ -9933,7 +10592,7 @@ cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2))
 --R 
 --R
 --R   (24)  17
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 24
 
 --S 25 of 47
@@ -9941,7 +10600,7 @@ cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2))
 --R 
 --R
 --R   (25)  10
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 25
 
 --S 26 of 47
@@ -9949,7 +10608,7 @@ cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2))
 --R 
 --R
 --R   (26)  23
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 26
 
 --S 27 of 47
@@ -9957,7 +10616,7 @@ x: ULS(FRAC INT,'x,0) := 'x
 --R 
 --R
 --R   (27)  x
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 27
 
 --S 28 of 47
@@ -9982,11 +10641,11 @@ ZeroOrOne n == 1+x**n
 ZeroOrOne 5 
 --R 
 --R   Compiling function ZeroOrOne with type Integer -> 
---R      UnivariateLaurentSeries(Fraction Integer,x,0) 
+--R      UnivariateLaurentSeries(Fraction(Integer),x,0) 
 --R
 --R              5
 --R   (31)  1 + x
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 31
 
 --S 32 of 47
@@ -9999,11 +10658,11 @@ Integers n == 1/(1-x**n)
 Integers 5 
 --R 
 --R   Compiling function Integers with type Integer -> 
---R      UnivariateLaurentSeries(Fraction Integer,x,0) 
+--R      UnivariateLaurentSeries(Fraction(Integer),x,0) 
 --R
 --R              5    10      11
 --R   (33)  1 + x  + x   + O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 33
 
 --S 34 of 47
@@ -10018,7 +10677,7 @@ eval(ZeroOrOne, graphs 5)
 --R
 --R                   2     3     4     5     6     7     8    9    10      11
 --R   (34)  1 + x + 2x  + 4x  + 6x  + 6x  + 6x  + 4x  + 2x  + x  + x   + O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 35
 
 --S 36 of 47
@@ -10027,7 +10686,7 @@ eval(ZeroOrOne,dihedral 8)
 --R
 --R                   2     3     4     5     6    7    8
 --R   (35)  1 + x + 4x  + 5x  + 8x  + 5x  + 4x  + x  + x
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 36
 
 --S 37 of 47
@@ -10037,7 +10696,7 @@ eval(Integers,complete 4)
 --R   (36)
 --R             2     3     4     5     6      7      8      9      10      11
 --R   1 + x + 2x  + 3x  + 5x  + 6x  + 9x  + 11x  + 15x  + 18x  + 23x   + O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 37
 
 --S 38 of 47
@@ -10050,7 +10709,7 @@ eval(Integers,elementary 4)
 --R   + 
 --R        17
 --R     O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 38
 
 --S 39 of 47
@@ -10059,7 +10718,7 @@ eval(ZeroOrOne,cube)
 --R
 --R                   2     3     4     5     6    7    8
 --R   (38)  1 + x + 3x  + 3x  + 7x  + 3x  + 3x  + x  + x
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 39
 
 --S 40 of 47
@@ -10072,7 +10731,7 @@ eval(Integers,cube)
 --R   + 
 --R        11
 --R     O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 40
 
 --S 41 of 47
@@ -10085,7 +10744,7 @@ eval(Integers,graphs 5)
 --R   + 
 --R        11
 --R     O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 41
 
 --S 42 of 47
@@ -10098,7 +10757,7 @@ eval(ZeroOrOne ,graphs 15)
 --R   + 
 --R        11
 --R     O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 42
 
 --S 43 of 47
@@ -10106,7 +10765,7 @@ cap(dihedral 30,complete 7*complete 8*complete 5*complete 10)
 --R 
 --R
 --R   (42)  49958972383320
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 43
 
 --S 44 of 47
@@ -10125,7 +10784,7 @@ sf3221:= SFunction [3,2,2,1]
 --R      1   2 4     1      6     1    8
 --R     -- (2 1 ) - --- (2 1 ) + --- (1 )
 --R     96          144          576
---R                                   Type: SymmetricPolynomial Fraction Integer
+--R                                 Type: SymmetricPolynomial(Fraction(Integer))
 --E 44
 
 --S 45 of 47
@@ -10133,7 +10792,7 @@ cap(sf3221,complete 2**4)
 --R 
 --R
 --R   (44)  3
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 45
 
 --S 46 of 47
@@ -10141,7 +10800,7 @@ cap(sf3221, powerSum 1**8)
 --R 
 --R
 --R   (45)  70
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 46
 
 --S 47 of 47
@@ -10154,7 +10813,7 @@ eval(Integers, sf3221)
 --R   + 
 --R         19      20
 --R     432x   + O(x  )
---R                          Type: UnivariateLaurentSeries(Fraction Integer,x,0)
+--R                         Type: UnivariateLaurentSeries(Fraction(Integer),x,0)
 --E 47
 )spool
 )lisp (bye)
@@ -11356,7 +12015,8 @@ DegreeReductionPackage(R1, R2): Cat == Capsule where
 
 --S 1 of 1
 )show DesingTreePackage
---R DesingTreePackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc,InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory InfClsPoint,BLMET: BlowUpMethodCategory)  is a package constructor
+--R 
+--R DesingTreePackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory(Plc),InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory(InfClsPoint),BLMET: BlowUpMethodCategory)  is a package constructor
 --R Abbreviation for DesingTreePackage is DTP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for DTP 
@@ -11365,17 +12025,17 @@ DegreeReductionPackage(R1, R2): Cat == Capsule where
 --R fullParamInit : DesTree -> Void       genusNeg : PolyRing -> Integer
 --R initParLocLeaves : DesTree -> Void   
 --R adjunctionDivisor : DesTree -> DIVISOR
---R blowUp : InfClsPoint -> List InfClsPoint
+--R blowUp : InfClsPoint -> List(InfClsPoint)
 --R blowUpWithExcpDiv : DesTree -> Void
---R desingTree : PolyRing -> List DesTree
+--R desingTree : PolyRing -> List(DesTree)
 --R desingTreeAtPoint : (ProjPt,PolyRing) -> DesTree
 --R divisorAtDesingTree : (PolyRing,DesTree) -> DIVISOR
 --R genus : PolyRing -> NonNegativeInteger
---R genusTree : (NonNegativeInteger,List DesTree) -> NonNegativeInteger
---R genusTreeNeg : (NonNegativeInteger,List DesTree) -> Integer
+--R genusTree : (NonNegativeInteger,List(DesTree)) -> NonNegativeInteger
+--R genusTreeNeg : (NonNegativeInteger,List(DesTree)) -> Integer
 --R inBetweenExcpDiv : DesTree -> DIVISOR
 --R initializeParamOfPlaces : DesTree -> Void
---R initializeParamOfPlaces : (DesTree,List PolyRing) -> Void
+--R initializeParamOfPlaces : (DesTree,List(PolyRing)) -> Void
 --R
 --E 1
 
@@ -12627,6 +13287,7 @@ generalized version.
 
 --S 1 of 5
 )show DoubleFloatSpecialFunctions
+--R 
 --R DoubleFloatSpecialFunctions  is a package constructor
 --R Abbreviation for DoubleFloatSpecialFunctions is DFSFUN 
 --R This constructor is exposed in this frame.
@@ -12636,37 +13297,37 @@ generalized version.
 --R Gamma : DoubleFloat -> DoubleFloat    fresnelC : Float -> Float
 --R fresnelS : Float -> Float            
 --R Beta : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R Beta : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
---R E1 : DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei1 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei2 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei3 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei4 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei5 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R Ei6 : OnePointCompletion DoubleFloat -> OnePointCompletion DoubleFloat
---R En : (Integer,DoubleFloat) -> OnePointCompletion DoubleFloat
---R Gamma : Complex DoubleFloat -> Complex DoubleFloat
---R airyAi : Complex DoubleFloat -> Complex DoubleFloat
+--R Beta : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
+--R E1 : DoubleFloat -> OnePointCompletion(DoubleFloat)
+--R Ei : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei1 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei2 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei3 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei4 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei5 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Ei6 : OnePointCompletion(DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R En : (Integer,DoubleFloat) -> OnePointCompletion(DoubleFloat)
+--R Gamma : Complex(DoubleFloat) -> Complex(DoubleFloat)
+--R airyAi : Complex(DoubleFloat) -> Complex(DoubleFloat)
 --R airyAi : DoubleFloat -> DoubleFloat
 --R airyBi : DoubleFloat -> DoubleFloat
---R airyBi : Complex DoubleFloat -> Complex DoubleFloat
+--R airyBi : Complex(DoubleFloat) -> Complex(DoubleFloat)
 --R besselI : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R besselI : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
+--R besselI : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R besselJ : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R besselJ : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
+--R besselJ : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R besselK : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R besselK : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
+--R besselK : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R besselY : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R besselY : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
+--R besselY : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R digamma : DoubleFloat -> DoubleFloat
---R digamma : Complex DoubleFloat -> Complex DoubleFloat
+--R digamma : Complex(DoubleFloat) -> Complex(DoubleFloat)
 --R hypergeometric0F1 : (DoubleFloat,DoubleFloat) -> DoubleFloat
---R hypergeometric0F1 : (Complex DoubleFloat,Complex DoubleFloat) -> Complex DoubleFloat
+--R hypergeometric0F1 : (Complex(DoubleFloat),Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R logGamma : DoubleFloat -> DoubleFloat
---R logGamma : Complex DoubleFloat -> Complex DoubleFloat
+--R logGamma : Complex(DoubleFloat) -> Complex(DoubleFloat)
 --R polygamma : (NonNegativeInteger,DoubleFloat) -> DoubleFloat
---R polygamma : (NonNegativeInteger,Complex DoubleFloat) -> Complex DoubleFloat
+--R polygamma : (NonNegativeInteger,Complex(DoubleFloat)) -> Complex(DoubleFloat)
 --R
 --E 1
 
@@ -12777,7 +13438,7 @@ pearceyC:=_
 --R    [48.0,0.45616], [48.25,0.448425], [48.5,0.44393], [48.75,0.442936],
 --R    [49.0,0.445486], [49.25,0.451406], [49.5,0.460311], [49.75,0.471633],
 --R    [50.0,0.484658]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 2
 
 --S 3 of 5
@@ -12986,7 +13647,7 @@ pearceyC:=_
 --R    [49.5,0.460311,0.3803109193 0779099871,- 0.0800000806 9220900129],
 --R    [49.75,0.471633,0.5230763977 8694224618,0.0514433977 8694224618],
 --R    [50.0,0.484658,0.4157389501 9459370449,- 0.0689190498 0540629551]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 3
 
 --S 4 of 4
@@ -13096,7 +13757,7 @@ pearceyS:=_
 --R    [48.0,0.537309], [48.25,0.525234], [48.5,0.511657], [48.75,0.497426],
 --R    [49.0,0.483428], [49.25,0.470529], [49.5,0.459523], [49.75,0.451084],
 --R    [50.0,0.445722]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 4
 
 --S 5 of 5
@@ -13305,7 +13966,7 @@ pearceyS:=_
 --R    [49.5,0.459523,0.4156435749 1719610661,- 0.0438794250 8280389339],
 --R    [49.75,0.451084,0.4230292350 336881258,- 0.0280547649 663118742],
 --R    [50.0,0.445722,0.3044252284 9276788618,- 0.1412967715 072321138]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 5
 
 )spool
@@ -17449,7 +18110,7 @@ D(cos(3*x+6*y),x)
 --I1>exit  ElementaryFunction.sin,63 : ((1 #<vector 0941eb60> (1 0 . 1)) 0 . 1)
 --R
 --R   (1)  - 3sin(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 2
 
 --S 3 of 32
@@ -17466,7 +18127,7 @@ D(sin(3*x+6*y),x)
 --R 
 --R
 --R   (2)  3cos(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 4
 
 --S 5 of 32
@@ -17474,7 +18135,7 @@ D(cos(3*x+6*y),x)
 --R 
 --R
 --R   (3)  - 3sin(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 5
 
 \end{chunk}
@@ -17489,7 +18150,7 @@ D(tan(3*x+6*y),x)
 --R
 --R                     2
 --R   (4)  3tan(6y + 3x)  + 3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 6
 
 --S 7 of 32
@@ -17497,7 +18158,7 @@ simplify ((3*tan(6*y+3*x)^2+3) - (3*sec(3*x+6*y)^2))
 --R 
 --R
 --R   (5)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 7
 
 \end{chunk}
@@ -17511,7 +18172,7 @@ D(cot(3*x+6*y),x)
 --R
 --R                       2
 --R   (6)  - 3cot(6y + 3x)  - 3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 8
 
 --S 9 of 32
@@ -17519,7 +18180,7 @@ simplify ((-3*cot(6*y+3*x)^2-3) -(-3*csc(3*x+6*y)^2))
 --R 
 --R
 --R   (7)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 9
 
 --S 10 of 32
@@ -17527,7 +18188,7 @@ D(sec(3*x+6*y),x)
 --R 
 --R
 --R   (8)  3sec(6y + 3x)tan(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 10
 
 --S 11 of 32
@@ -17535,7 +18196,7 @@ D(csc(3*x+6*y),x)
 --R 
 --R
 --R   (9)  - 3cot(6y + 3x)csc(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 11
 
 --S 12 of 32
@@ -17547,7 +18208,7 @@ D(asin(3*x+6*y),x)
 --R          +------------------------+
 --R          |     2             2
 --R         \|- 36y  - 36x y - 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 12
 
 --S 13 of 32
@@ -17559,7 +18220,7 @@ D(acos(3*x+6*y),x)
 --R            +------------------------+
 --R            |     2             2
 --R           \|- 36y  - 36x y - 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 13
 
 --S 14 of 32
@@ -17570,7 +18231,7 @@ D(atan(3*x+6*y),x)
 --R   (12)  ----------------------
 --R            2             2
 --R         36y  + 36x y + 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 14
 
 --S 15 of 32
@@ -17581,7 +18242,7 @@ D(acot(3*x+6*y),x)
 --R   (13)  - ----------------------
 --R              2             2
 --R           36y  + 36x y + 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 15
 
 \end{chunk}
@@ -17600,7 +18261,7 @@ D(asec(3*x+6*y),x)
 --R                  +----------------------+
 --R                  |   2             2
 --R         (2y + x)\|36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 16
 
 \end{chunk}
@@ -17617,7 +18278,7 @@ If we use the same formula for this example:
 --R                  +----------------------+
 --R                  |   2             2
 --R         (2y + x)\|36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 17
 
 \end{chunk}
@@ -17636,7 +18297,7 @@ D(acsc(3*x+6*y),x)
 --R                    +----------------------+
 --R                    |   2             2
 --R           (2y + x)\|36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 18
 
 --S 19 of 32
@@ -17644,7 +18305,7 @@ D(sinh(3*x+6*y),x)
 --R 
 --R
 --R   (17)  3cosh(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 19
 
 --S 20 of 32
@@ -17652,7 +18313,7 @@ D(cosh(3*x+6*y),x)
 --R 
 --R
 --R   (18)  3sinh(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 20
 
 \end{chunk}
@@ -17667,7 +18328,7 @@ D(tanh(3*x+6*y),x)
 --R
 --R                         2
 --R   (19)  - 3tanh(6y + 3x)  + 3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 21
 
 --S 22 of 32
@@ -17675,7 +18336,7 @@ simplify ((-3*tanh(6*y+3*x)^2+3)-(3*sech(3*x+6*y)^2))
 --R 
 --R
 --R   (20)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 22
 
 \end{chunk}
@@ -17690,7 +18351,7 @@ D(coth(3*x+6*y),x)
 --R
 --R                         2
 --R   (21)  - 3coth(6y + 3x)  + 3
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 23
 
 --S 24 of 32
@@ -17698,7 +18359,7 @@ simplify ((-3*coth(6*y+3*x)^2+3) - (-3*csch(3*x+6*y)^2))
 --R 
 --R
 --R   (22)  0
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 24
 
 --S 25 of 32
@@ -17706,7 +18367,7 @@ D(sech(3*x+6*y),x)
 --R 
 --R
 --R   (23)  - 3sech(6y + 3x)tanh(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 25
 
 --S 26 of 32
@@ -17714,7 +18375,7 @@ D(csch(3*x+6*y),x)
 --R 
 --R
 --R   (24)  - 3coth(6y + 3x)csch(6y + 3x)
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 26
 
 --S 27 of 32
@@ -17726,7 +18387,7 @@ D(asinh(3*x+6*y),x)
 --R          +----------------------+
 --R          |   2             2
 --R         \|36y  + 36x y + 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 27
 
 \end{chunk}
@@ -17744,7 +18405,7 @@ D(acosh(3*x+6*y),x)
 --R          +----------------------+
 --R          |   2             2
 --R         \|36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 28
 
 --S 29 of 32
@@ -17755,7 +18416,7 @@ D(atanh(3*x+6*y),x)
 --R   (27)  - ----------------------
 --R              2             2
 --R           36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 29
 
 --S 30 of 32
@@ -17766,7 +18427,7 @@ D(acoth(3*x+6*y),x)
 --R   (28)  - ----------------------
 --R              2             2
 --R           36y  + 36x y + 9x  - 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 30
 
 \end{chunk}
@@ -17790,7 +18451,7 @@ D(asech(3*x+6*y),x)
 --R                    +------------------------+
 --R                    |     2             2
 --R           (2y + x)\|- 36y  - 36x y - 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 31
 
 \end{chunk}
@@ -17810,7 +18471,7 @@ D(acsch(3*x+6*y),x)
 --R                    +----------------------+
 --R                    |   2             2
 --R           (2y + x)\|36y  + 36x y + 9x  + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 32
 
 )spool
@@ -22197,7 +22858,7 @@ an:=[a1,a2,a3]
 --R   [3y x  + 2y x + y + 9x  + 5x - 3, 2y x  - y x - y + 6x  - 2x  - 3x + 3,
 --R       3      2     3     2
 --R    y x  + y x  + 3x  + 2x ]
---R                  Type: List DistributedMultivariatePolynomial([y,x],Integer)
+--R                 Type: List(DistributedMultivariatePolynomial([y,x],Integer))
 --E 4
 
 --S 5 of 24
@@ -22205,7 +22866,7 @@ euclideanGroebner(an)
 --R
 --R                                2            3     2
 --R   (5)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---R                  Type: List DistributedMultivariatePolynomial([y,x],Integer)
+--R                 Type: List(DistributedMultivariatePolynomial([y,x],Integer))
 --E 5
 
 --S 6 of 24
@@ -22299,7 +22960,7 @@ euclideanGroebner(an,"redcrit")
 --R
 --R                                2            3     2
 --R   (6)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---R                  Type: List DistributedMultivariatePolynomial([y,x],Integer)
+--R                 Type: List(DistributedMultivariatePolynomial([y,x],Integer))
 --E 6
 
 --S 7 of 24
@@ -22372,7 +23033,7 @@ euclideanGroebner(an,"info")
 --R
 --R                                2            3     2
 --R   (7)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---R                  Type: List DistributedMultivariatePolynomial([y,x],Integer)
+--R                 Type: List(DistributedMultivariatePolynomial([y,x],Integer))
 --E 7
 
 --S 8 of 24
@@ -22530,7 +23191,7 @@ euclideanGroebner(an,"info","redcrit")
 --R
 --R                                2            3     2
 --R   (8)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---R                  Type: List DistributedMultivariatePolynomial([y,x],Integer)
+--R                 Type: List(DistributedMultivariatePolynomial([y,x],Integer))
 --E 8
 
 --S 9 of 24
@@ -22565,7 +23226,7 @@ bn:=[b1,b2,b3]
 --R   [3y x  + 2y x + 9x  + y + 5x - 3, 2y x  + 6x  - y x - 2x  - y - 3x + 3,
 --R       3      2     3     2
 --R    y x  + y x  + 3x  + 2x ]
---R       Type: List HomogeneousDistributedMultivariatePolynomial([y,x],Integer)
+--R      Type: List(HomogeneousDistributedMultivariatePolynomial([y,x],Integer))
 --E 12
 
 --S 13 of 24
@@ -22573,7 +23234,7 @@ euclideanGroebner(bn)
 --R
 --R            2                                 2
 --R   (13)  [2y  - 5y - 8x - 3,y x - y + x + 3,2x  + 2y - 3x - 6]
---R       Type: List HomogeneousDistributedMultivariatePolynomial([y,x],Integer)
+--R      Type: List(HomogeneousDistributedMultivariatePolynomial([y,x],Integer))
 --E 13
 
 --S 14 of 24
@@ -22650,7 +23311,7 @@ euclideanGroebner(bn,"redcrit")
 --R
 --R            2                                 2
 --R   (14)  [2y  - 5y - 8x - 3,y x - y + x + 3,2x  + 2y - 3x - 6]
---R       Type: List HomogeneousDistributedMultivariatePolynomial([y,x],Integer)
+--R      Type: List(HomogeneousDistributedMultivariatePolynomial([y,x],Integer))
 --E 14
 
 --S 15 of 24
@@ -22716,7 +23377,7 @@ euclideanGroebner(bn,"info")
 --R
 --R            2                                 2
 --R   (15)  [2y  - 5y - 8x - 3,y x - y + x + 3,2x  + 2y - 3x - 6]
---R       Type: List HomogeneousDistributedMultivariatePolynomial([y,x],Integer)
+--R      Type: List(HomogeneousDistributedMultivariatePolynomial([y,x],Integer))
 --E 15
 
 --S 16 of 24
@@ -22850,7 +23511,7 @@ euclideanGroebner(bn,"info","redcrit")
 --R
 --R            2                                 2
 --R   (16)  [2y  - 5y - 8x - 3,y x - y + x + 3,2x  + 2y - 3x - 6]
---R       Type: List HomogeneousDistributedMultivariatePolynomial([y,x],Integer)
+--R      Type: List(HomogeneousDistributedMultivariatePolynomial([y,x],Integer))
 --E 16
 
 --S 17 of 24
@@ -22858,7 +23519,7 @@ c1:GDMP([y,x],INT,DIRPROD(2,NNI)):= (9*x**2 + 5*x - 3)+ y*(3*x**2 + 2*x + 1)
 --R
 --R             2                2
 --R   (17)  3y x  + 2y x + y + 9x  + 5x - 3
---RType: GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 17
 
 --S 18 of 24
@@ -22866,7 +23527,7 @@ c2:GDMP([y,x],INT,DIRPROD(2,NNI)):= (6*x**3 - 2*x**2 - 3*x +3) + y*(2*x**3 - x -
 --R
 --R             3               3     2
 --R   (18)  2y x  - y x - y + 6x  - 2x  - 3x + 3
---RType: GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 18
 
 --S 19 of 24
@@ -22874,7 +23535,7 @@ c3:GDMP([y,x],INT,DIRPROD(2,NNI)):= (3*x**3 + 2*x**2) + y*(x**3 + x**2)
 --R
 --R            3      2     3     2
 --R   (19)  y x  + y x  + 3x  + 2x
---RType: GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 19
 
 --S 20 of 24
@@ -22885,7 +23546,7 @@ cn:=[c1,c2,c3]
 --R   [3y x  + 2y x + y + 9x  + 5x - 3, 2y x  - y x - y + 6x  - 2x  - 3x + 3,
 --R       3      2     3     2
 --R    y x  + y x  + 3x  + 2x ]
---RType: List GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: List(GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 20
 
 --S 21 of 24
@@ -22893,7 +23554,7 @@ euclideanGroebner(cn)
 --R
 --R                                 2            3     2
 --R   (21)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---RType: List GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: List(GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 21
 
 --S 22 of 24
@@ -22987,7 +23648,7 @@ euclideanGroebner(cn,"redcrit")
 --R
 --R                                 2            3     2
 --R   (22)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---RType: List GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: List(GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 22
 
 --S 23 of 24
@@ -23060,7 +23721,7 @@ euclideanGroebner(cn,"info")
 --R
 --R                                 2            3     2
 --R   (23)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---RType: List GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: List(GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 23
 
 --S 24 of 24
@@ -23218,7 +23879,7 @@ euclideanGroebner(cn,"info","redcrit")
 --R
 --R                                 2            3     2
 --R   (24)  [y x - y + x + 3,2y + 2x  - 3x - 6,2x  - 5x  - 5x]
---RType: List GeneralDistributedMultivariatePolynomial([y,x],Integer,DirectProduct(2,NonNegativeInteger))
+--IType: List(GeneralDistributedMultivariatePolynomial([y,x],Integer,...
 --E 24
 
 )spool
@@ -26540,7 +27201,7 @@ f := factor(720)
 --R
 --R         4 2
 --R   (2)  2 3 5
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 2
 
 --S 3 of 6
@@ -26550,7 +27211,7 @@ map(double,f)
 --R
 --R           4 2
 --R   (3)  2 4 6 10
---R                                                       Type: Factored Integer
+--R                                                      Type: Factored(Integer)
 --E 3
 
 --S 4 of 6
@@ -26562,11 +27223,11 @@ makePoly(b) == x + b
 --S 5 of 6
 g := map(makePoly,f) 
 --R 
---R   Compiling function makePoly with type Integer -> Polynomial Integer 
+--R   Compiling function makePoly with type Integer -> Polynomial(Integer)
 --R
 --R                      4       2
 --R   (5)  (x + 1)(x + 2) (x + 3) (x + 5)
---R                                            Type: Factored Polynomial Integer
+--R                                          Type: Factored(Polynomial(Integer))
 --E 5
 
 --S 6 of 6
@@ -26885,14 +27546,15 @@ FactoringUtilities(E,OV,R,P) : C == T where
 
 --S 1 of 1
 )show FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber
---R FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber K: PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory  is a package constructor
+--R 
+--R FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber(K: PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory)  is a package constructor
 --R Abbreviation for FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber is FACTEXT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for FACTEXT 
 --R
 --R------------------------------- Operations --------------------------------
---R factor : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K
---R factorSqFree : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K
+--R factor : (SparseUnivariatePolynomial(K),K) -> Factored(SparseUnivariatePolynomial(K))
+--R factorSqFree : (SparseUnivariatePolynomial(K),K) -> Factored(SparseUnivariatePolynomial(K))
 --R
 --E 1
 
@@ -27065,14 +27727,14 @@ FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber(K):Exports == Im
 --S 1 of 1
 )show FactorisationOverPseudoAlgebraicClosureOfRationalNumber
 --R 
---R FactorisationOverPseudoAlgebraicClosureOfRationalNumber K: PseudoAlgebraicClosureOfRationalNumberCategory  is a package constructor
+--R FactorisationOverPseudoAlgebraicClosureOfRationalNumber(K: PseudoAlgebraicClosureOfRationalNumberCategory)  is a package constructor
 --R Abbreviation for FactorisationOverPseudoAlgebraicClosureOfRationalNumber is FACTRN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for FACTRN 
 --R
 --R------------------------------- Operations --------------------------------
---R factor : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K
---R factorSqFree : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K
+--R factor : (SparseUnivariatePolynomial(K),K) -> Factored(SparseUnivariatePolynomial(K))
+--R factorSqFree : (SparseUnivariatePolynomial(K),K) -> Factored(SparseUnivariatePolynomial(K))
 --R
 --E 1
 
@@ -27478,17 +28140,18 @@ FiniteDivisorFunctions2(R1, UP1, UPUP1, F1, R2, UP2, UPUP2, F2):
 
 --S 1 of 1
 )show FiniteFieldFactorizationWithSizeParseBySideEffect
---R FiniteFieldFactorizationWithSizeParseBySideEffect(K: FiniteFieldCategory,PolK: UnivariatePolynomialCategory K)  is a package constructor
+--R 
+--R FiniteFieldFactorizationWithSizeParseBySideEffect(K: FiniteFieldCategory,PolK: UnivariatePolynomialCategory(K))  is a package constructor
 --R Abbreviation for FiniteFieldFactorizationWithSizeParseBySideEffect is FFFACTSE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for FFFACTSE 
 --R
 --R------------------------------- Operations --------------------------------
---R factor : PolK -> Factored PolK        irreducible? : PolK -> Boolean
---R factorCantorZassenhaus : (PolK,NonNegativeInteger) -> List PolK
---R factorSquareFree : PolK -> List PolK
---R factorUsingMusser : PolK -> Factored PolK
---R factorUsingYun : PolK -> Factored PolK
+--R factor : PolK -> Factored(PolK)       irreducible? : PolK -> Boolean
+--R factorCantorZassenhaus : (PolK,NonNegativeInteger) -> List(PolK)
+--R factorSquareFree : PolK -> List(PolK)
+--R factorUsingMusser : PolK -> Factored(PolK)
+--R factorUsingYun : PolK -> Factored(PolK)
 --R
 --E 1
 
@@ -29601,13 +30264,14 @@ FiniteFieldSolveLinearPolynomialEquation(F:FiniteFieldCategory,
 
 --S 1 of 1
 )show FiniteFieldSquareFreeDecomposition
---R FiniteFieldSquareFreeDecomposition(K: FiniteFieldCategory,PolK: UnivariatePolynomialCategory K)  is a package constructor
+--R 
+--R FiniteFieldSquareFreeDecomposition(K: FiniteFieldCategory,PolK: UnivariatePolynomialCategory(K))  is a package constructor
 --R Abbreviation for FiniteFieldSquareFreeDecomposition is FFSQFR 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for FFSQFR 
 --R
 --R------------------------------- Operations --------------------------------
---R Musser : PolK -> Factored PolK        Yun : PolK -> Factored PolK
+--R Musser : PolK -> Factored(PolK)       Yun : PolK -> Factored(PolK)
 --R
 --E 1
 
@@ -36034,43 +36698,45 @@ GeneralizedMultivariateFactorize(OV,E,S,R,P) : C == T
 
 --S 1 of 1
 )show GeneralPackageForAlgebraicFunctionField
---R GeneralPackageForAlgebraicFunctionField(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc,InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory InfClsPoint,BLMET: BlowUpMethodCategory)  is a package constructor
+--R 
+--R GeneralPackageForAlgebraicFunctionField(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory(Plc),InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory(InfClsPoint),BLMET: BlowUpMethodCategory)  is a package constructor
 --R Abbreviation for GeneralPackageForAlgebraicFunctionField is GPAFF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for GPAFF 
 --R
 --R------------------------------- Operations --------------------------------
---R adjunctionDivisor : () -> DIVISOR     desingTree : () -> List DesTree
+--R adjunctionDivisor : () -> DIVISOR     desingTree : () -> List(DesTree)
 --R eval : (PolyRing,Plc) -> K            genus : () -> NonNegativeInteger
---R genusNeg : () -> Integer              placesAbove : ProjPt -> List Plc
---R pointDominateBy : Plc -> ProjPt       printInfo : List Boolean -> Void
+--R genusNeg : () -> Integer              placesAbove : ProjPt -> List(Plc)
+--R pointDominateBy : Plc -> ProjPt       printInfo : List(Boolean) -> Void
 --R reset : () -> Void                    setCurve : PolyRing -> PolyRing
---R singularPoints : () -> List ProjPt    theCurve : () -> PolyRing
---R LPolynomial : () -> SparseUnivariatePolynomial Integer if K has FINITE
---R LPolynomial : PositiveInteger -> SparseUnivariatePolynomial Integer if K has FINITE
+--R theCurve : () -> PolyRing            
+--R LPolynomial : () -> SparseUnivariatePolynomial(Integer) if K has FINITE
+--R LPolynomial : PositiveInteger -> SparseUnivariatePolynomial(Integer) if K has FINITE
 --R ZetaFunction : () -> UnivariateTaylorSeriesCZero(Integer,t) if K has FINITE
 --R ZetaFunction : PositiveInteger -> UnivariateTaylorSeriesCZero(Integer,t) if K has FINITE
 --R classNumber : () -> Integer if K has FINITE
---R desingTreeWoFullParam : () -> List DesTree
+--R desingTreeWoFullParam : () -> List(DesTree)
 --R eval : (PolyRing,PolyRing,Plc) -> K
---R eval : (Fraction PolyRing,Plc) -> K
+--R eval : (Fraction(PolyRing),Plc) -> K
 --R evalIfCan : (PolyRing,Plc) -> Union(K,"failed")
 --R evalIfCan : (PolyRing,PolyRing,Plc) -> Union(K,"failed")
---R evalIfCan : (Fraction PolyRing,Plc) -> Union(K,"failed")
+--R evalIfCan : (Fraction(PolyRing),Plc) -> Union(K,"failed")
 --R findOrderOfDivisor : (DIVISOR,Integer,Integer) -> Record(ord: Integer,num: PolyRing,den: PolyRing,upTo: Integer)
 --R homogenize : (PolyRing,Integer) -> PolyRing
---R interpolateForms : (DIVISOR,NonNegativeInteger) -> List PolyRing
---R interpolateFormsForFact : (DIVISOR,List PolyRing) -> List PolyRing
+--R interpolateForms : (DIVISOR,NonNegativeInteger) -> List(PolyRing)
+--R interpolateFormsForFact : (DIVISOR,List(PolyRing)) -> List(PolyRing)
 --R intersectionDivisor : PolyRing -> DIVISOR
---R lBasis : DIVISOR -> Record(num: List PolyRing,den: PolyRing)
+--R lBasis : DIVISOR -> Record(num: List(PolyRing),den: PolyRing)
 --R numberOfPlacesOfDegree : PositiveInteger -> Integer if K has FINITE
 --R numberPlacesDegExtDeg : (PositiveInteger,PositiveInteger) -> Integer if K has FINITE
 --R numberRatPlacesExtDeg : PositiveInteger -> Integer if K has FINITE
 --R parametrize : (PolyRing,Plc) -> PCS
---R placesOfDegree : PositiveInteger -> List Plc if K has FINITE
---R rationalPlaces : () -> List Plc if K has FINITE
---R rationalPoints : () -> List ProjPt if K has FINITE
---R setSingularPoints : List ProjPt -> List ProjPt
+--R placesOfDegree : PositiveInteger -> List(Plc) if K has FINITE
+--R rationalPlaces : () -> List(Plc) if K has FINITE
+--R rationalPoints : () -> List(ProjPt) if K has FINITE
+--R setSingularPoints : List(ProjPt) -> List(ProjPt)
+--R singularPoints : () -> List(ProjPt)
 --R
 --E 1
 
@@ -38262,16 +38928,17 @@ GenusZeroIntegration(R, F, L): Exports == Implementation where
 )clear all
 --S 1 of 1
 )show GnuDraw
+--R 
 --R GnuDraw  is a package constructor
 --R Abbreviation for GnuDraw is GDRAW 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for GDRAW 
 --R
 --R------------------------------- Operations --------------------------------
---R gnuDraw : (Expression Float,SegmentBinding Float,String,List DrawOption) -> Void
---R gnuDraw : (Expression Float,SegmentBinding Float,String) -> Void
---R gnuDraw : (Expression Float,SegmentBinding Float,SegmentBinding Float,String,List DrawOption) -> Void
---R gnuDraw : (Expression Float,SegmentBinding Float,SegmentBinding Float,String) -> Void
+--R gnuDraw : (Expression(Float),SegmentBinding(Float),String,List(DrawOption)) -> Void
+--R gnuDraw : (Expression(Float),SegmentBinding(Float),String) -> Void
+--R gnuDraw : (Expression(Float),SegmentBinding(Float),SegmentBinding(Float),String,List(DrawOption)) -> Void
+--R gnuDraw : (Expression(Float),SegmentBinding(Float),SegmentBinding(Float),String) -> Void
 --R
 --E 1
 
@@ -39884,14 +40551,14 @@ GroebnerInternalPackage(Dom, Expon, VarSet, Dpol): T == C where
 s1:DMP([w,p,z,t,s,b],FRAC(INT)):= 45*p + 35*s - 165*b - 36
 --R
 --R   (1)  45p + 35s - 165b - 36
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 1
 
 --S 2 of 24
 s2:DMP([w,p,z,t,s,b],FRAC(INT)):= 35*p + 40*z + 25*t - 27*s
 --R
 --R   (2)  35p + 40z + 25t - 27s
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 2
 
 --S 3 of 24
@@ -39899,14 +40566,14 @@ s3:DMP([w,p,z,t,s,b],FRAC(INT)):= 15*w + 25*p*s + 30*z - 18*t - 165*b**2
 --R
 --R                                      2
 --R   (3)  15w + 25p s + 30z - 18t - 165b
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 3
 
 --S 4 of 24
 s4:DMP([w,p,z,t,s,b],FRAC(INT)):= -9*w + 15*p*t + 20*z*s
 --R
 --R   (4)  - 9w + 15p t + 20z s
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 4
 
 --S 5 of 24
@@ -39914,7 +40581,7 @@ s5:DMP([w,p,z,t,s,b],FRAC(INT)):= w*p + 2*z*t - 11*b**3
 --R
 --R                        3
 --R   (5)  w p + 2z t - 11b
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 5
 
 --S 6 of 24
@@ -39922,7 +40589,7 @@ s6:DMP([w,p,z,t,s,b],FRAC(INT)):= 99*w - 11*b*s + 3*b**2
 --R
 --R                        2
 --R   (6)  99w - 11s b + 3b
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 6
 
 --S 7 of 24
@@ -39931,7 +40598,7 @@ s7:DMP([w,p,z,t,s,b],FRAC(INT)):= b**2 + 33/50*b + 2673/10000
 --R         2   33      2673
 --R   (7)  b  + -- b + -----
 --R             50     10000
---R      Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--R     Type: DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 7
 
 --S 8 of 24
@@ -39944,7 +40611,7 @@ sn7:=[s1,s2,s3,s4,s5,s6,s7]
 --R                    2   2   33      2673
 --R    99w - 11s b + 3b , b  + -- b + -----]
 --R                            50     10000
---R Type: List DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 8
 
 --S 9 of 24
@@ -39957,7 +40624,7 @@ groebner(sn7)
 --R        5      9    2   33      2673
 --R    s - - b - ---, b  + -- b + -----]
 --R        2     200       50     10000
---R Type: List DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 9
 
 --S 10 of 24
@@ -40087,7 +40754,7 @@ groebner(sn7,"redcrit")
 --R        5      9    2   33      2673
 --R    s - - b - ---, b  + -- b + -----]
 --R        2     200       50     10000
---R Type: List DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 10
 
 --S 11 of 24
@@ -40166,7 +40833,7 @@ groebner(sn7,"info")
 --R        5      9    2   33      2673
 --R    s - - b - ---, b  + -- b + -----]
 --R        2     200       50     10000
---R Type: List DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 11
 
 --S 12 of 24
@@ -40361,35 +41028,35 @@ groebner(sn7,"redcrit","info")
 --R        5      9    2   33      2673
 --R    s - - b - ---, b  + -- b + -----]
 --R        2     200       50     10000
---R Type: List DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(DistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 12
 
 --S 13 of 24
 hs1:HDMP([w,p,z,t,s,b],FRAC(INT)):= 45*p + 35*s - 165*b - 36
 --R
 --R   (13)  45p + 35s - 165b - 36
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 13
 
 --S 14 of 24
 hs2:HDMP([w,p,z,t,s,b],FRAC(INT)):= 35*p + 40*z + 25*t - 27*s
 --R
 --R   (14)  35p + 40z + 25t - 27s
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 14
 
 --S 15 of 24
 hs3:HDMP([w,p,z,t,s,b],FRAC(INT)):= 15*w + 25*p*s + 30*z - 18*t - 165*b**2
 --R                     2
 --R   (15)  25p s - 165b  + 15w + 30z - 18t
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 15
 
 --S 16 of 24
 hs4:HDMP([w,p,z,t,s,b],FRAC(INT)):= -9*w + 15*p*t + 20*z*s
 --R
 --R   (16)  15p t + 20z s - 9w
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 16
 
 --S 17 of 24
@@ -40397,7 +41064,7 @@ hs5:HDMP([w,p,z,t,s,b],FRAC(INT)):= w*p + 2*z*t - 11*b**3
 --R
 --R              3
 --R   (17)  - 11b  + w p + 2z t
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 17
 
 --S 18 of 24
@@ -40405,7 +41072,7 @@ hs6:HDMP([w,p,z,t,s,b],FRAC(INT)):= 99*w - 11*b*s + 3*b**2
 --R
 --R                     2
 --R   (18)  - 11s b + 3b  + 99w
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 18
 
 --S 19 of 24
@@ -40414,7 +41081,7 @@ hs7:HDMP([w,p,z,t,s,b],FRAC(INT)):= b**2 + 33/50*b + 2673/10000
 --R          2   33      2673
 --R   (19)  b  + -- b + -----
 --R              50     10000
---RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer))
 --E 19
 
 --S 20 of 24
@@ -40427,7 +41094,7 @@ hsn7:=[hs1,hs2,hs3,hs4,hs5,hs6,hs7]
 --R                2         2   33      2673
 --R    - 11s b + 3b  + 99w, b  + -- b + -----]
 --R                              50     10000
---RType: List HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 20
 
 --S 21 of 24
@@ -40440,7 +41107,7 @@ groebner(hsn7)
 --R        37      27      5      9
 --R    t - -- b + ---, s - - b - ---]
 --R        15     250      2     200
---RType: List HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 21
 
 --S 22 of 24
@@ -40660,7 +41327,7 @@ groebner(hsn7,"redcrit")
 --R        37      27      5      9
 --R    t - -- b + ---, s - - b - ---]
 --R        15     250      2     200
---RType: List HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 22
 
 --S 23 of 24
@@ -40782,7 +41449,7 @@ groebner(hsn7,"info")
 --R        37      27      5      9
 --R    t - -- b + ---, s - - b - ---]
 --R        15     250      2     200
---RType: List HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 23
 
 --S 24 of 24
@@ -41110,7 +41777,7 @@ groebner(hsn7,"redcrit","info")
 --R        37      27      5      9
 --R    t - -- b + ---, s - - b - ---]
 --R        15     250      2     200
---RType: List HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction Integer)
+--RType: List(HomogeneousDistributedMultivariatePolynomial([w,p,z,t,s,b],Fraction(Integer)))
 --E 24
 
 )spool
@@ -47958,13 +48625,14 @@ InputFormFunctions1(R:Type):with
 )clear all
 --S 1 of 1
 )show InterfaceGroebnerPackage
---R InterfaceGroebnerPackage(K: Field,symb: List Symbol,E: OrderedAbelianMonoidSup,OV: OrderedSet,R: PolynomialCategory(K,E,OV))  is a package constructor
+--R 
+--R InterfaceGroebnerPackage(K: Field,symb: List(Symbol),E: OrderedAbelianMonoidSup,OV: OrderedSet,R: PolynomialCategory(K,E,OV))  is a package constructor
 --R Abbreviation for InterfaceGroebnerPackage is INTERGB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTERGB 
 --R
 --R------------------------------- Operations --------------------------------
---R groebner : List R -> List R          
+--R groebner : List(R) -> List(R)        
 --R
 --E 1
 
@@ -48137,8 +48805,8 @@ displayRow(n)==output center blankSeparate pascalRow(n)
 --S 4 of 4
 for i in 0..7 repeat displayRow i
 --R 
---R   Compiling function pascalRow with type NonNegativeInteger -> List 
---R      OutputForm 
+--R   Compiling function pascalRow with type NonNegativeInteger -> List(
+--R      OutputForm) 
 --R   Compiling function displayRow with type NonNegativeInteger -> Void 
 --R                                     1
 --R                                  1    1
@@ -48779,7 +49447,7 @@ c := linearDependenceOverZ vector [m1, m2, m3]
 --R 
 --R
 --R   (6)  [1,- 2,1]
---R                                              Type: Union(Vector Integer,...)
+--R                                             Type: Union(Vector(Integer),...)
 --E 6
 
 --S 7 of 8
@@ -48799,7 +49467,7 @@ solveLinearlyOverQ(vector [m1, m3], m2)
 --R         1 1
 --R   (8)  [-,-]
 --R         2 2
---R                                     Type: Union(Vector Fraction Integer,...)
+--R                                   Type: Union(Vector(Fraction(Integer)),...)
 --E 8
 )spool
 )lisp (bye)
@@ -48950,7 +49618,7 @@ div144 := divisors(144)
 --R 
 --R
 --R   (1)  [1,2,3,4,6,8,9,12,16,18,24,36,48,72,144]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 1
 
 --S 2 of 30
@@ -49046,7 +49714,7 @@ fibonacci(25)
 --R 
 --R
 --R   (13)  [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 13
 
 --S 14 of 30
@@ -49069,7 +49737,7 @@ fib(25)
 --R 
 --R
 --R   (16)  [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 16
 
 --S 17 of 30
@@ -51671,16 +52339,17 @@ InternalRationalUnivariateRepresentationPackage(R,E,V,P,TS): Exports == Implemen
 
 --S 1 of 1
 )show InterpolateFormsPackage
---R InterpolateFormsPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc)  is a package constructor
+--R 
+--R InterpolateFormsPackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory(Plc))  is a package constructor
 --R Abbreviation for InterpolateFormsPackage is INTFRSP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTFRSP 
 --R
 --R------------------------------- Operations --------------------------------
---R basisOfInterpolateForms : (DIVISOR,List PolyRing) -> List Vector K
---R basisOfInterpolateFormsForFact : (DIVISOR,List PolyRing) -> List Vector K
---R interpolateForms : (DIVISOR,NonNegativeInteger,PolyRing,List PolyRing) -> List PolyRing
---R interpolateFormsForFact : (DIVISOR,List PolyRing) -> List PolyRing
+--R basisOfInterpolateForms : (DIVISOR,List(PolyRing)) -> List(Vector(K))
+--R basisOfInterpolateFormsForFact : (DIVISOR,List(PolyRing)) -> List(Vector(K))
+--R interpolateForms : (DIVISOR,NonNegativeInteger,PolyRing,List(PolyRing)) -> List(PolyRing)
+--R interpolateFormsForFact : (DIVISOR,List(PolyRing)) -> List(PolyRing)
 --R
 --E 1
 
@@ -52026,14 +52695,15 @@ InterpolateFormsPackage(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR):_
 
 --S 1 of 1
 )show IntersectionDivisorPackage
---R IntersectionDivisorPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc,InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory InfClsPoint,BLMET: BlowUpMethodCategory)  is a package constructor
+--R 
+--R IntersectionDivisorPackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory(Plc),InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory(InfClsPoint),BLMET: BlowUpMethodCategory)  is a package constructor
 --R Abbreviation for IntersectionDivisorPackage is INTDIVP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTDIVP 
 --R
 --R------------------------------- Operations --------------------------------
---R intersectionDivisor : (PolyRing,PolyRing,List DesTree,List ProjPt) -> DIVISOR
---R placesOfDegree : (PositiveInteger,PolyRing,List ProjPt) -> Void
+--R intersectionDivisor : (PolyRing,PolyRing,List(DesTree),List(ProjPt)) -> DIVISOR
+--R placesOfDegree : (PositiveInteger,PolyRing,List(ProjPt)) -> Void
 --R
 --E 1
 
@@ -53077,6 +53747,7 @@ LaplaceTransform(R, F): Exports == Implementation where
 
 --S 1 of 36
 R := Integer
+--R 
 --R
 --R   (1)  Integer
 --R                                                                 Type: Domain
@@ -53084,165 +53755,187 @@ R := Integer
 
 --S 2 of 36
 ls : List Symbol := [b1,x,y,z,t,v,u,w] 
+--R 
 --R
 --R   (2)  [b1,x,y,z,t,v,u,w]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 36
 V := OVAR(ls)
+--R 
 --R
---R   (3)  OrderedVariableList [b1,x,y,z,t,v,u,w]
+--R   (3)  OrderedVariableList([b1,x,y,z,t,v,u,w])
 --R                                                                 Type: Domain
 --E 3
 
 --S 4 of 36
 E := IndexedExponents V
+--R 
 --R
---R   (4)  IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w]
+--R   (4)  IndexedExponents(OrderedVariableList([b1,x,y,z,t,v,u,w]))
 --R                                                                 Type: Domain
 --E 4
 
 --S 5 of 36
 P := NSMP(R, V)
+--R 
 --R
 --R   (5)
---R  NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w
---R  ])
+--R  NewSparseMultivariatePolynomial(Integer,OrderedVariableList([b1,x,y,z,t,v,u,w
+--R  ]))
 --R                                                                 Type: Domain
 --E 5
 
 --S 6 of 36
 b1: P := 'b1
+--R 
 --R
 --R   (6)  b1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 6
 
 --S 7 of 36
 x: P := 'x
+--R 
 --R
 --R   (7)  x
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 7
 
 --S 8 of 36
 y: P := 'y
+--R 
 --R
 --R   (8)  y
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 8
 
 --S 9 of 36
 z: P := 'z
+--R 
 --R
 --R   (9)  z
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 9
 
 --S 10 of 36
 t: P := 't
+--R 
 --R
 --R   (10)  t
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 10
 
 --S 11 of 36
 u: P := 'u
+--R 
 --R
 --R   (11)  u
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 11
 
 --S 12 of 36
 v: P := 'v
+--R 
 --R
 --R   (12)  v
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 12
 
 --S 13 of 36
 w: P := 'w
+--R 
 --R
 --R   (13)  w
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 13
 
 --S 14 of 36
 T := REGSET(R,E,V,P)
+--R 
 --R
 --R   (14)
---R  RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t
---R  ,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomia
---R  l(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--R  RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([b1,x,y,z,t
+--R  ,v,u,w])),OrderedVariableList([b1,x,y,z,t,v,u,w]),NewSparseMultivariatePolyno
+--R  mial(Integer,OrderedVariableList([b1,x,y,z,t,v,u,w])))
 --R                                                                 Type: Domain
 --E 14
 
 --S 15 of 36
 p0 := b1 + y + z - t - w
+--R 
 --R
 --R   (15)  b1 + y + z - t - w
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 15
 
 --S 16 of 36
 p1 := 2*z*u + 2*y*v + 2*t*w - 2*w**2 - w - 1
+--R 
 --R
 --R                                2
 --R   (16)  2v y + 2u z + 2w t - 2w  - w - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 16
 
 --S 17 of 36
 p2 := 3*z*u**2 + 3*y*v**2 - 3*t*w**2 + 3*w**3 + 3*w**2 - t + 4*w
+--R 
 --R
 --R           2      2         2           3     2
 --R   (17)  3v y + 3u z + (- 3w  - 1)t + 3w  + 3w  + 4w
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 17
 
 --S 18 of 36
 p3 := 6*x*z*v - 6*t*w**2 + 6*w**3 - 3*t*w + 6*w**2 - t + 4*w
+--R 
 --R
 --R                       2                3     2
 --R   (18)  6v z x + (- 6w  - 3w - 1)t + 6w  + 6w  + 4w
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 18
 
 --S 19 of 36
 p4 := 4*z*u**3+ 4*y*v**3+ 4*t*w**3- 4*w**4 - 6*w**3+ 4*t*w- 10*w**2- w- 1
+--R 
 --R
 --R           3      3       3            4     3      2
 --R   (19)  4v y + 4u z + (4w  + 4w)t - 4w  - 6w  - 10w  - w - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 19
 
 --S 20 of 36
 p5 := 8*x*z*u*v +8*t*w**3 -8*w**4 +4*t*w**2 -12*w**3 +4*t*w -14*w**2 -3*w -1
+--R 
 --R
 --R                       3     2            4      3      2
 --R   (20)  8u v z x + (8w  + 4w  + 4w)t - 8w  - 12w  - 14w  - 3w - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 20
 
 --S 21 of 36
 p6 := 12*x*z*v**2+12*t*w**3 -12*w**4 +12*t*w**2 -18*w**3 +8*t*w -14*w**2 -w -1
+--R 
 --R
 --R            2          3      2             4      3      2
 --R   (21)  12v z x + (12w  + 12w  + 8w)t - 12w  - 18w  - 14w  - w - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 21
 
 --S 22 of 36
 p7 := -24*t*w**3 + 24*w**4 - 24*t*w**2 + 36*w**3 - 8*t*w + 26*w**2 + 7*w + 1
+--R 
 --R
 --R               3      2             4      3      2
 --R   (22)  (- 24w  - 24w  - 8w)t + 24w  + 36w  + 26w  + 7w + 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 22
 
 --S 23 of 36
 lp := [p0, p1, p2, p3, p4, p5, p6, p7]
+--R 
 --R
 --R   (23)
 --R                                               2
@@ -53259,11 +53952,12 @@ lp := [p0, p1, p2, p3, p4, p5, p6, p7]
 --R    12v z x + (12w  + 12w  + 8w)t - 12w  - 18w  - 14w  - w - 1,
 --R          3      2             4      3      2
 --R    (- 24w  - 24w  - 8w)t + 24w  + 36w  + 26w  + 7w + 1]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: List(NewSparseMultivariatePolynomial(Integer,...
 --E 23
 
 --S 24 of 36
 lts := zeroSetSplit(lp,false)$T
+--R 
 --R
 --R   (24)
 --R   [{w + 1,u,v,t + 1,b1 + y + z + 2}, {w + 1,v,t + 1,z,b1 + y + 2},
@@ -53289,44 +53983,48 @@ lts := zeroSetSplit(lp,false)$T
 --R                    2                3     2
 --R      6v z x + (- 6w  - 3w - 1)t + 6w  + 6w  + 4w, b1 + y + z - t - w}
 --R     ]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--IType: List(RegularTriangularSet(Integer,...
 --E 24
 
 --S 25 of 36
 [coHeight(ts) for ts in lts]
+--R 
 --R
 --R   (25)  [3,3,3,2,2,0]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 25
 
 --S 26 of 36
 ST := SREGSET(R,E,V,P)
+--R 
 --R
 --R   (26)
---R  SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [
---R  b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariat
---R  ePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--R  SquareFreeRegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([
+--R  b1,x,y,z,t,v,u,w])),OrderedVariableList([b1,x,y,z,t,v,u,w]),NewSparseMultivar
+--R  iatePolynomial(Integer,OrderedVariableList([b1,x,y,z,t,v,u,w])))
 --R                                                                 Type: Domain
 --E 26
 
 --S 27 of 36
 pack := LAZM3PK(R,E,V,P,T,ST)
+--R 
 --R
 --R   (27)
---R  LazardSetSolvingPackage(Integer,IndexedExponents OrderedVariableList [b1,x,y,
---R  z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolyno
---R  mial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]),RegularTriangularSet(Int
---R  eger,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableL
---R  ist [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariabl
---R  eList [b1,x,y,z,t,v,u,w])),SquareFreeRegularTriangularSet(Integer,IndexedExpo
---R  nents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,
---R  v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,
---R  t,v,u,w])))
+--R  LazardSetSolvingPackage(Integer,IndexedExponents(OrderedVariableList([b1,x,y,
+--R  z,t,v,u,w])),OrderedVariableList([b1,x,y,z,t,v,u,w]),NewSparseMultivariatePol
+--R  ynomial(Integer,OrderedVariableList([b1,x,y,z,t,v,u,w])),RegularTriangularSet
+--R  (Integer,IndexedExponents(OrderedVariableList([b1,x,y,z,t,v,u,w])),OrderedVar
+--R  iableList([b1,x,y,z,t,v,u,w]),NewSparseMultivariatePolynomial(Integer,Ordered
+--R  VariableList([b1,x,y,z,t,v,u,w]))),SquareFreeRegularTriangularSet(Integer,Ind
+--R  exedExponents(OrderedVariableList([b1,x,y,z,t,v,u,w])),OrderedVariableList([b
+--R  1,x,y,z,t,v,u,w]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList
+--R  ([b1,x,y,z,t,v,u,w]))))
 --R                                                                 Type: Domain
 --E 27
 
 --S 28 of 36
 zeroSetSplit(lp,false)$pack
+--R 
 --R
 --R   (28)
 --R   [{w + 1,t + 1,z,y,b1 + 2}, {w + 1,v,t + 1,z,b1 + y + 2},
@@ -53346,54 +54044,60 @@ zeroSetSplit(lp,false)$pack
 --R                     4         3         2
 --R      2916b1 - 30600w  - 46692w  - 20274w  - 8076w + 593}
 --R     ]
---RType: List SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--IType: List(SquareFreeRegularTriangularSet(Integer,...
 --E 28
 
 --S 29 of 36
 f0 := (w - v) ** 2 + (u - t) ** 2 - 1
+--R 
 --R
 --R          2           2           2    2
 --R   (29)  t  - 2u t + v  - 2w v + u  + w  - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 29
 
 --S 30 of 36
 f1 := t ** 2 - v ** 3
+--R 
 --R
 --R          2    3
 --R   (30)  t  - v
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 30
 
 --S 31 of 36
 f2 := 2 * t * (w - v) + 3 * v ** 2 * (u - t)
+--R 
 --R
 --R              2                   2
 --R   (31)  (- 3v  - 2v + 2w)t + 3u v
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 31
 
 --S 32 of 36
 f3 := (3 * z * v ** 2 - 1) * (2 * z * t - 1)
+--R 
 --R
 --R           2   2             2
 --R   (32)  6v t z  + (- 2t - 3v )z + 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: NewSparseMultivariatePolynomial(Integer,...
 --E 32
 
 --S 33 of 36
 lf := [f0, f1, f2, f3]
+--R 
 --R
 --R   (33)
 --R     2           2           2    2       2    3       2                   2
 --R   [t  - 2u t + v  - 2w v + u  + w  - 1, t  - v , (- 3v  - 2v + 2w)t + 3u v ,
 --R      2   2             2
 --R    6v t z  + (- 2t - 3v )z + 1]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w])
+--IType: List(NewSparseMultivariatePolynomial(Integer,...
 --E 33
 
 --S 34 of 36
 zeroSetSplit(lf,true)$T
+--R 
 --R
 --R   (34)
 --R   [
@@ -53422,11 +54126,12 @@ zeroSetSplit(lf,true)$T
 --R         2                   2                    2  2           2
 --R      (3v  + 2v - 2w)t - 3u v , ((4v - 4w)t - 6u v )z  + (2t + 3v )z - 1}
 --R     ]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 34
 
 --S 35 of 36
 zeroSetSplit(lf,false)$T
+--R 
 --R
 --R   (35)
 --R   [
@@ -53491,11 +54196,12 @@ zeroSetSplit(lf,false)$T
 --R        2          2             2
 --R      6t  - 2v - 3w  + 2w + 3, 3v z - 1}
 --R     ]
---RType: List RegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--IType: List(RegularTriangularSet(Integer,IndexedExponents(...
 --E 35
 
 --S 36 of 36
 zeroSetSplit(lf,false)$pack
+--R 
 --R
 --R   (36)
 --R   [
@@ -53584,7 +54290,7 @@ zeroSetSplit(lf,false)$pack
 --R         (9713133306w  + 9678670317w  - 16726834476w + 28144233593)u
 --R       }
 --R     ]
---RType: List SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [b1,x,y,z,t,v,u,w],OrderedVariableList [b1,x,y,z,t,v,u,w],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [b1,x,y,z,t,v,u,w]))
+--IType: List(SquareFreeRegularTriangularSet(Integer,...
 --E 36
 
 )spool
@@ -54318,14 +55024,14 @@ ls : List Symbol := [a,b,c,d,e,f]
 --R 
 --R
 --R   (2)  [a,b,c,d,e,f]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 22
 V := OVAR(ls)
 --R 
 --R
---R   (3)  OrderedVariableList [a,b,c,d,e,f]
+--R   (3)  OrderedVariableList([a,b,c,d,e,f])
 --R                                                                 Type: Domain
 --E 3
 
@@ -54334,7 +55040,7 @@ P := NSMP(R, V)
 --R 
 --R
 --R   (4)
---R   NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--R   NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --R                                                                 Type: Domain
 --E 4
 
@@ -54343,7 +55049,7 @@ p1: P :=  a*b*c*d*e*f - 1
 --R 
 --R
 --R   (5)  f e d c b a - 1
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 5
 
 --S 6 of 22
@@ -54351,7 +55057,7 @@ p2: P := a*b*c*d*e +a*b*c*d*f +a*b*c*e*f +a*b*d*e*f +a*c*d*e*f +b*c*d*e*f
 --R 
 --R
 --R   (6)  ((((e + f)d + f e)c + f e d)b + f e d c)a + f e d c b
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 6
 
 --S 7 of 22
@@ -54359,7 +55065,7 @@ p3: P :=  a*b*c*d + a*b*c*f + a*b*e*f + a*d*e*f + b*c*d*e + c*d*e*f
 --R 
 --R
 --R   (7)  (((d + f)c + f e)b + f e d)a + e d c b + f e d c
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 7
 
 --S 8 of 22
@@ -54367,7 +55073,7 @@ p4: P := a*b*c + a*b*f + a*e*f + b*c*d + c*d*e + d*e*f
 --R 
 --R
 --R   (8)  ((c + f)b + f e)a + d c b + e d c + f e d
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 8
 
 --S 9 of 22
@@ -54375,7 +55081,7 @@ p5: P := a*b + a*f + b*c + c*d + d*e + e*f
 --R 
 --R
 --R   (9)  (b + f)a + c b + d c + e d + f e
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 9
 
 --S 10 of 22
@@ -54383,7 +55089,7 @@ p6: P := a + b + c + d + e + f
 --R 
 --R
 --R   (10)  a + b + c + d + e + f
---RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))
 --E 10
 
 --S 11 of 22
@@ -54395,7 +55101,7 @@ lp := [p1, p2, p3, p4, p5, p6]
 --R    (((d + f)c + f e)b + f e d)a + e d c b + f e d c,
 --R    ((c + f)b + f e)a + d c b + e d c + f e d,
 --R    (b + f)a + c b + d c + e d + f e, a + b + c + d + e + f]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f])))
 --E 11
 
 --S 12 of 22
@@ -54857,7 +55563,7 @@ lg := groebner(lp)$lextripack
 --R     ,
 --R     48        42          36          30          18          12        6
 --R    f   - 2554f   - 399710f   - 499722f   + 499722f   + 399710f   + 2554f  - 1]
---RType: List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f])))
 --E 13
 
 --S 14 of 22
@@ -54955,7 +55661,7 @@ lexTriangular(lg,false)$lextripack
 --R     ,
 --R      6      2           2                    2
 --R    {f  - 1,e  + 4f e + f ,(e - f)d - f e - 5f ,c - f,b - f,a + d + e + 3f}]
---R                               Type: List RegularChain(Integer,[a,b,c,d,e,f])
+--R                              Type: List(RegularChain(Integer,[a,b,c,d,e,f]))
 --E 14
 
 --S 15 of 22
@@ -55053,7 +55759,7 @@ lts := lexTriangular(lg,true)$lextripack
 --R     ,
 --R      6      2           2
 --R    {f  - 1,e  + 4f e + f ,d + e + 4f,c - f,b - f,a - f}]
---R                               Type: List RegularChain(Integer,[a,b,c,d,e,f])
+--R                              Type: List(RegularChain(Integer,[a,b,c,d,e,f]))
 --E 15
 
 --S 16 of 22
@@ -55064,7 +55770,7 @@ lts := lexTriangular(lg,true)$lextripack
 --R   [[1,3,1,3,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1],
 --R    [1387545279120,1387545279120,1387545279120,1387545279120,1387545279120,1],
 --R    [1,1,1,1,1,1]]
---RType: List List NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f])
+--RType: List(List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))))
 --E 16
 
 --S 17 of 22
@@ -55162,7 +55868,7 @@ squareFreeLexTriangular(lg,true)$lextripack
 --R     ,
 --R      6      2           2
 --R    {f  - 1,e  + 4f e + f ,d + e + 4f,c - f,b - f,a - f}]
---RType: List SquareFreeRegularTriangularSet(Integer,IndexedExponents OrderedVariableList [a,b,c,d,e,f],OrderedVariableList [a,b,c,d,e,f],NewSparseMultivariatePolynomial(Integer,OrderedVariableList [a,b,c,d,e,f]))
+--RType: List(SquareFreeRegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([a,b,c,d,e,f])),OrderedVariableList([a,b,c,d,e,f]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([a,b,c,d,e,f]))))
 --E 17
 
 --S 18 of 22
@@ -55178,7 +55884,7 @@ ls2 : List Symbol := concat(ls,new()$Symbol)
 --R 
 --R
 --R   (19)  [a,b,c,d,e,f,%A]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 19
 
 --S 20 of 22
@@ -55687,7 +56393,7 @@ concat [univariateSolve(ts)$zdpack for ts in lts]
 --R     [complexRoots= ?  - 6? + 6,
 --R      coordinates= [a - 1,b - 1,c - 1,d - %A + 5,e + %A - 1,f - 1]]
 --R     ]
---RType: List Record(complexRoots: SparseUnivariatePolynomial Integer,coordinates: List Polynomial Integer)
+--RType: List(Record(complexRoots: SparseUnivariatePolynomial(Integer),coordinates: List(Polynomial(Integer))))
 --E 21
 
 --S 22 of 22
@@ -56051,7 +56757,7 @@ concat [realSolve(ts)$zdpack for ts in lts]
 --R    [%B31,%B36,- %B36 - 4%B31,%B31,%B31,%B31],
 --R    [%B32,%B33,- %B33 - 4%B32,%B32,%B32,%B32],
 --R    [%B32,%B34,- %B34 - 4%B32,%B32,%B32,%B32]]
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 22
 )spool
 )lisp (bye)
@@ -58418,15 +59124,16 @@ LinearPolynomialEquationByFractions(R:PolynomialFactorizationExplicit): with
 
 --S 1 of 1
 )show LinearSystemFromPowerSeriesPackage
---R LinearSystemFromPowerSeriesPackage(K: Field,PCS: LocalPowerSeriesCategory K)  is a package constructor
+--R 
+--R LinearSystemFromPowerSeriesPackage(K: Field,PCS: LocalPowerSeriesCategory(K))  is a package constructor
 --R Abbreviation for LinearSystemFromPowerSeriesPackage is LISYSER 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for LISYSER 
 --R
 --R------------------------------- Operations --------------------------------
---R finiteSeries2LinSys : (List PCS,Integer) -> Matrix K
---R finiteSeries2LinSysWOVectorise : (List PCS,Integer) -> Matrix K
---R finiteSeries2Vector : (PCS,Integer) -> List K
+--R finiteSeries2LinSys : (List(PCS),Integer) -> Matrix(K)
+--R finiteSeries2LinSysWOVectorise : (List(PCS),Integer) -> Matrix(K)
+--R finiteSeries2Vector : (PCS,Integer) -> List(K)
 --R
 --E 1
 
@@ -59148,18 +59855,19 @@ LinGroebnerPackage(lv,F) : C == T
 
 --S 1 of 1
 )show LinesOpPack
---R LinesOpPack K: Field  is a package constructor
+--R 
+--R LinesOpPack(K: Field)  is a package constructor
 --R Abbreviation for LinesOpPack is LOP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for LOP 
 --R
 --R------------------------------- Operations --------------------------------
---R quotVecSpaceBasis : (List List K,List List K) -> List List K
---R reduceLineOverLine : (List K,List K,K) -> List K
---R reduceRow : List List K -> List List K
---R reduceRowOnList : (List K,List List K) -> List List K
---R rowEchWoZeroLines : Matrix K -> Matrix K
---R rowEchWoZeroLinesWOVectorise : Matrix K -> Matrix K
+--R quotVecSpaceBasis : (List(List(K)),List(List(K))) -> List(List(K))
+--R reduceLineOverLine : (List(K),List(K),K) -> List(K)
+--R reduceRow : List(List(K)) -> List(List(K))
+--R reduceRowOnList : (List(K),List(List(K))) -> List(List(K))
+--R rowEchWoZeroLines : Matrix(K) -> Matrix(K)
+--R rowEchWoZeroLinesWOVectorise : Matrix(K) -> Matrix(K)
 --R
 --E 1
 
@@ -59752,7 +60460,8 @@ ListToMap(A:SetCategory, B:Type): Exports == Implementation where
 
 --S 1 of 1
 )show LocalParametrizationOfSimplePointPackage
---R LocalParametrizationOfSimplePointPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS))  is a package constructor
+--R 
+--R LocalParametrizationOfSimplePointPackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS))  is a package constructor
 --R Abbreviation for LocalParametrizationOfSimplePointPackage is LPARSPT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for LPARSPT 
@@ -59760,8 +60469,8 @@ ListToMap(A:SetCategory, B:Type): Exports == Implementation where
 --R------------------------------- Operations --------------------------------
 --R pointDominateBy : Plc -> ProjPt       printInfo : Boolean -> Boolean
 --R printInfo : () -> Boolean            
---R localParamOfSimplePt : (ProjPt,PolyRing,Integer) -> List PCS
---R localize : (PolyRing,ProjPt,PolyRing,Integer) -> Record(fnc: PolyRing,crv: PolyRing,chart: List Integer)
+--R localParamOfSimplePt : (ProjPt,PolyRing,Integer) -> List(PCS)
+--R localize : (PolyRing,ProjPt,PolyRing,Integer) -> Record(fnc: PolyRing,crv: PolyRing,chart: List(Integer))
 --R pointToPlace : (ProjPt,PolyRing) -> Plc
 --R
 --E 1
@@ -60264,7 +60973,7 @@ expr := (x - exp x + 1)^2 * (sin(x^2) * x + 1)^3
 --R   + 
 --R                 x    2
 --R     (- 2x - 2)%e  + x  + 2x + 1
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 1
 
 --S 2 of 9
@@ -60291,7 +61000,7 @@ tbl := [f(0.1 * i - 1) for i in 0..20]
 --R    0.0313833725 8543810564 3, 0.0876991144 5154615297 9,
 --R    0.2313019789 3439968362, 0.5843743955 958098772, 1.4114930171 992819197,
 --R    3.2216948276 75164252]
---R                                                             Type: List Float
+--R                                                            Type: List(Float)
 --E 3
 
 --S 4 of 9
@@ -60304,7 +61013,7 @@ e := (x - y + 1)^2 * (x^2 * y + 1)^2
 --R   + 
 --R        4     3     2               2
 --R     (2x  + 4x  + 2x  - 2x - 2)y + x  + 2x + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 4
 
 --S 5 of 9
@@ -60720,27 +61429,27 @@ MappingPackageInternalHacks3(A: SetCategory, B: SetCategory, C: SetCategory):_
 --S 1 of 26
 power(q: FRAC INT, n: INT): FRAC INT == q**n
 --R 
---R   Function declaration power : (Fraction Integer,Integer) -> Fraction 
---R      Integer has been added to workspace.
+--R   Function declaration power : (Fraction(Integer),Integer) -> Fraction
+--R      (Integer) has been added to workspace.
 --R                                                                   Type: Void
 --E 1
 
 --S 2 of 26
 power(2,3)
 --R 
---R   Compiling function power with type (Fraction Integer,Integer) -> 
---R      Fraction Integer 
+--R   Compiling function power with type (Fraction(Integer),Integer) -> 
+--R      Fraction(Integer) 
 --R
 --R   (2)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 2
 
 --S 3 of 26
 rewop := twist power
 --R 
 --R
---I   (3)  theMap(MAPPKG3;twist;MM;5!0)
---R                       Type: ((Integer,Fraction Integer) -> Fraction Integer)
+--R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--R                     Type: ((Integer,Fraction(Integer)) -> Fraction(Integer))
 --E 3
 
 --S 4 of 26
@@ -60748,7 +61457,7 @@ rewop(3, 2)
 --R 
 --R
 --R   (4)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 4
 
 --S 5 of 26
@@ -60761,8 +61470,8 @@ square: FRAC INT -> FRAC INT
 square:= curryRight(power, 2)
 --R 
 --R
---I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 6
 
 --S 7 of 26
@@ -60770,15 +61479,15 @@ square 4
 --R 
 --R
 --R   (7)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 7
 
 --S 8 of 26
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
---R              Type: ((Fraction Integer,Fraction Integer) -> Fraction Integer)
+--R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--R           Type: ((Fraction(Integer),Fraction(Integer)) -> Fraction(Integer))
 --E 8
 
 --S 9 of 26
@@ -60788,15 +61497,15 @@ squirrel(1/2, 1/3)
 --R        1
 --R   (9)  -
 --R        4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 9
 
 --S 10 of 26
 sixteen := curry(square, 4/1)
 --R 
 --R
---I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
---R                                               Type: (() -> Fraction Integer)
+--R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R                                              Type: (() -> Fraction(Integer))
 --E 10
 
 --S 11 of 26
@@ -60804,15 +61513,15 @@ sixteen()
 --R 
 --R
 --R   (11)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 26
 square2:=square*square
 --R 
 --R
---I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 12
 
 --S 13 of 26
@@ -60820,13 +61529,13 @@ square2 3
 --R 
 --R
 --R   (13)  81
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 13
 
 --S 14 of 26
 sc(x: FRAC INT): FRAC INT == x + 1
 --R 
---R   Function declaration sc : Fraction Integer -> Fraction Integer has 
+--R   Function declaration sc : Fraction(Integer) -> Fraction(Integer) has
 --R      been added to workspace.
 --R                                                                   Type: Void
 --E 14
@@ -60834,17 +61543,17 @@ sc(x: FRAC INT): FRAC INT == x + 1
 --S 15 of 26
 incfns := [sc**i for i in 0..10]
 --R 
---R   Compiling function sc with type Fraction Integer -> Fraction Integer
---R      
+--R   Compiling function sc with type Fraction(Integer) -> Fraction(
+--R      Integer) 
 --R
 --R   (15)
---I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0)]
---R                            Type: List (Fraction Integer -> Fraction Integer)
+--R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--R                         Type: List((Fraction(Integer) -> Fraction(Integer)))
 --E 15
 
 --S 16 of 26
@@ -60852,7 +61561,7 @@ incfns := [sc**i for i in 0..10]
 --R 
 --R
 --R   (16)  [4,5,6,7,8,9,10,11,12,13,14]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 16
 
 --S 17 of 26
@@ -60869,7 +61578,7 @@ r := recur(times)
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> Integer)
 --E 18
 
@@ -60877,7 +61586,7 @@ r := recur(times)
 fact := curryRight(r, 1)
 --R 
 --R
---I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> Integer)
 --E 19
 
@@ -60901,10 +61610,10 @@ mto2ton(m, n) ==
 mto2ton(3, 3)
 --R 
 --R   Compiling function mto2ton with type (PositiveInteger,
---R      PositiveInteger) -> Fraction Integer 
+--R      PositiveInteger) -> Fraction(Integer) 
 --R
 --R   (22)  6561
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 22
 
 --S 23 of 26
@@ -60914,7 +61623,7 @@ shiftfib(r: List INT) : INT ==
   r.2 := r.2 + t
   t
 --R 
---R   Function declaration shiftfib : List Integer -> Integer has been 
+--R   Function declaration shiftfib : List(Integer) -> Integer has been 
 --R      added to workspace.
 --R                                                                   Type: Void
 --E 23
@@ -60924,15 +61633,15 @@ fibinit: List INT := [0, 1]
 --R 
 --R
 --R   (24)  [0,1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 24
 
 --S 25 of 26
 fibs := curry(shiftfib, fibinit)
 --R 
---R   Compiling function shiftfib with type List Integer -> Integer 
+--R   Compiling function shiftfib with type List(Integer) -> Integer 
 --R
---I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> Integer)
 --E 25
 
@@ -60944,7 +61653,7 @@ fibs := curry(shiftfib, fibinit)
 --R   [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,
 --R    2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418,
 --R    317811, 514229, 832040]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 26
  
 )spool 
@@ -61236,27 +61945,27 @@ MappingPackage1(A:SetCategory): MPcat == MPdef where
 --S 1 of 26
 power(q: FRAC INT, n: INT): FRAC INT == q**n
 --R 
---R   Function declaration power : (Fraction Integer,Integer) -> Fraction 
---R      Integer has been added to workspace.
+--R   Function declaration power : (Fraction(Integer),Integer) -> Fraction
+--R      (Integer) has been added to workspace.
 --R                                                                   Type: Void
 --E 1
 
 --S 2 of 26
 power(2,3)
 --R 
---R   Compiling function power with type (Fraction Integer,Integer) -> 
---R      Fraction Integer 
+--R   Compiling function power with type (Fraction(Integer),Integer) -> 
+--R      Fraction(Integer) 
 --R
 --R   (2)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 2
 
 --S 3 of 26
 rewop := twist power
 --R 
 --R
---I   (3)  theMap(MAPPKG3;twist;MM;5!0)
---R                       Type: ((Integer,Fraction Integer) -> Fraction Integer)
+--R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--R                     Type: ((Integer,Fraction(Integer)) -> Fraction(Integer))
 --E 3
 
 --S 4 of 26
@@ -61264,7 +61973,7 @@ rewop(3, 2)
 --R 
 --R
 --R   (4)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 4
 
 --S 5 of 26
@@ -61277,8 +61986,8 @@ square: FRAC INT -> FRAC INT
 square:= curryRight(power, 2)
 --R 
 --R
---I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 6
 
 --S 7 of 26
@@ -61286,15 +61995,15 @@ square 4
 --R 
 --R
 --R   (7)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 7
 
 --S 8 of 26
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
---R              Type: ((Fraction Integer,Fraction Integer) -> Fraction Integer)
+--R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--R           Type: ((Fraction(Integer),Fraction(Integer)) -> Fraction(Integer))
 --E 8
 
 --S 9 of 26
@@ -61304,15 +62013,15 @@ squirrel(1/2, 1/3)
 --R        1
 --R   (9)  -
 --R        4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 9
 
 --S 10 of 26
 sixteen := curry(square, 4/1)
 --R 
 --R
---I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
---R                                               Type: (() -> Fraction Integer)
+--R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R                                              Type: (() -> Fraction(Integer))
 --E 10
 
 --S 11 of 26
@@ -61320,15 +62029,15 @@ sixteen()
 --R 
 --R
 --R   (11)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 26
 square2:=square*square
 --R 
 --R
---I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 12
 
 --S 13 of 26
@@ -61336,13 +62045,13 @@ square2 3
 --R 
 --R
 --R   (13)  81
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 13
 
 --S 14 of 26
 sc(x: FRAC INT): FRAC INT == x + 1
 --R 
---R   Function declaration sc : Fraction Integer -> Fraction Integer has 
+--R   Function declaration sc : Fraction(Integer) -> Fraction(Integer) has
 --R      been added to workspace.
 --R                                                                   Type: Void
 --E 14
@@ -61350,17 +62059,17 @@ sc(x: FRAC INT): FRAC INT == x + 1
 --S 15 of 26
 incfns := [sc**i for i in 0..10]
 --R 
---R   Compiling function sc with type Fraction Integer -> Fraction Integer
---R      
+--R   Compiling function sc with type Fraction(Integer) -> Fraction(
+--R      Integer) 
 --R
 --R   (15)
---I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0)]
---R                            Type: List (Fraction Integer -> Fraction Integer)
+--R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--R                         Type: List((Fraction(Integer) -> Fraction(Integer)))
 --E 15
 
 --S 16 of 26
@@ -61368,7 +62077,7 @@ incfns := [sc**i for i in 0..10]
 --R 
 --R
 --R   (16)  [4,5,6,7,8,9,10,11,12,13,14]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 16
 
 --S 17 of 26
@@ -61385,7 +62094,7 @@ r := recur(times)
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> Integer)
 --E 18
 
@@ -61393,7 +62102,7 @@ r := recur(times)
 fact := curryRight(r, 1)
 --R 
 --R
---I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> Integer)
 --E 19
 
@@ -61417,10 +62126,10 @@ mto2ton(m, n) ==
 mto2ton(3, 3)
 --R 
 --R   Compiling function mto2ton with type (PositiveInteger,
---R      PositiveInteger) -> Fraction Integer 
+--R      PositiveInteger) -> Fraction(Integer) 
 --R
 --R   (22)  6561
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 22
 
 --S 23 of 26
@@ -61430,7 +62139,7 @@ shiftfib(r: List INT) : INT ==
   r.2 := r.2 + t
   t
 --R 
---R   Function declaration shiftfib : List Integer -> Integer has been 
+--R   Function declaration shiftfib : List(Integer) -> Integer has been 
 --R      added to workspace.
 --R                                                                   Type: Void
 --E 23
@@ -61440,15 +62149,15 @@ fibinit: List INT := [0, 1]
 --R 
 --R
 --R   (24)  [0,1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 24
 
 --S 25 of 26
 fibs := curry(shiftfib, fibinit)
 --R 
---R   Compiling function shiftfib with type List Integer -> Integer 
+--R   Compiling function shiftfib with type List(Integer) -> Integer 
 --R
---I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> Integer)
 --E 25
 
@@ -61460,7 +62169,7 @@ fibs := curry(shiftfib, fibinit)
 --R   [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,
 --R    2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418,
 --R    317811, 514229, 832040]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 26
 )spool
 )lisp (bye)
@@ -61714,27 +62423,27 @@ MappingPackage2(A:SetCategory, C:SetCategory): MPcat == MPdef where
 --S 1 of 26
 power(q: FRAC INT, n: INT): FRAC INT == q**n
 --R 
---R   Function declaration power : (Fraction Integer,Integer) -> Fraction 
---R      Integer has been added to workspace.
+--R   Function declaration power : (Fraction(Integer),Integer) -> Fraction
+--R      (Integer) has been added to workspace.
 --R                                                                   Type: Void
 --E 1
 
 --S 2 of 26
 power(2,3)
 --R 
---R   Compiling function power with type (Fraction Integer,Integer) -> 
---R      Fraction Integer 
+--R   Compiling function power with type (Fraction(Integer),Integer) -> 
+--R      Fraction(Integer) 
 --R
 --R   (2)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 2
 
 --S 3 of 26
 rewop := twist power
 --R 
 --R
---I   (3)  theMap(MAPPKG3;twist;MM;5!0)
---R                       Type: ((Integer,Fraction Integer) -> Fraction Integer)
+--R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--R                     Type: ((Integer,Fraction(Integer)) -> Fraction(Integer))
 --E 3
 
 --S 4 of 26
@@ -61742,7 +62451,7 @@ rewop(3, 2)
 --R 
 --R
 --R   (4)  8
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 4
 
 --S 5 of 26
@@ -61755,8 +62464,8 @@ square: FRAC INT -> FRAC INT
 square:= curryRight(power, 2)
 --R 
 --R
---I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 6
 
 --S 7 of 26
@@ -61764,15 +62473,15 @@ square 4
 --R 
 --R
 --R   (7)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 7
 
 --S 8 of 26
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
---R              Type: ((Fraction Integer,Fraction Integer) -> Fraction Integer)
+--R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--R           Type: ((Fraction(Integer),Fraction(Integer)) -> Fraction(Integer))
 --E 8
 
 --S 9 of 26
@@ -61782,15 +62491,15 @@ squirrel(1/2, 1/3)
 --R        1
 --R   (9)  -
 --R        4
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 9
 
 --S 10 of 26
 sixteen := curry(square, 4/1)
 --R 
 --R
---I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
---R                                               Type: (() -> Fraction Integer)
+--R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R                                              Type: (() -> Fraction(Integer))
 --E 10
 
 --S 11 of 26
@@ -61798,15 +62507,15 @@ sixteen()
 --R 
 --R
 --R   (11)  16
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 11
 
 --S 12 of 26
 square2:=square*square
 --R 
 --R
---I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
---R                                 Type: (Fraction Integer -> Fraction Integer)
+--R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--R                               Type: (Fraction(Integer) -> Fraction(Integer))
 --E 12
 
 --S 13 of 26
@@ -61814,13 +62523,13 @@ square2 3
 --R 
 --R
 --R   (13)  81
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 13
 
 --S 14 of 26
 sc(x: FRAC INT): FRAC INT == x + 1
 --R 
---R   Function declaration sc : Fraction Integer -> Fraction Integer has 
+--R   Function declaration sc : Fraction(Integer) -> Fraction(Integer) has
 --R      been added to workspace.
 --R                                                                   Type: Void
 --E 14
@@ -61828,17 +62537,17 @@ sc(x: FRAC INT): FRAC INT == x + 1
 --S 15 of 26
 incfns := [sc**i for i in 0..10]
 --R 
---R   Compiling function sc with type Fraction Integer -> Fraction Integer
---R      
+--R   Compiling function sc with type Fraction(Integer) -> Fraction(
+--R      Integer) 
 --R
 --R   (15)
---I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---I    theMap(MAPPKG1;**;MNniM;6!0,0)]
---R                            Type: List (Fraction Integer -> Fraction Integer)
+--R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--R                         Type: List((Fraction(Integer) -> Fraction(Integer)))
 --E 15
 
 --S 16 of 26
@@ -61846,7 +62555,7 @@ incfns := [sc**i for i in 0..10]
 --R 
 --R
 --R   (16)  [4,5,6,7,8,9,10,11,12,13,14]
---R                                                  Type: List Fraction Integer
+--R                                                Type: List(Fraction(Integer))
 --E 16
 
 --S 17 of 26
@@ -61863,7 +62572,7 @@ r := recur(times)
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> Integer)
 --E 18
 
@@ -61871,7 +62580,7 @@ r := recur(times)
 fact := curryRight(r, 1)
 --R 
 --R
---I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> Integer)
 --E 19
 
@@ -61895,10 +62604,10 @@ mto2ton(m, n) ==
 mto2ton(3, 3)
 --R 
 --R   Compiling function mto2ton with type (PositiveInteger,
---R      PositiveInteger) -> Fraction Integer 
+--R      PositiveInteger) -> Fraction(Integer) 
 --R
 --R   (22)  6561
---R                                                       Type: Fraction Integer
+--R                                                      Type: Fraction(Integer)
 --E 22
 
 --S 23 of 26
@@ -61908,7 +62617,7 @@ shiftfib(r: List INT) : INT ==
   r.2 := r.2 + t
   t
 --R 
---R   Function declaration shiftfib : List Integer -> Integer has been 
+--R   Function declaration shiftfib : List(Integer) -> Integer has been 
 --R      added to workspace.
 --R                                                                   Type: Void
 --E 23
@@ -61918,15 +62627,15 @@ fibinit: List INT := [0, 1]
 --R 
 --R
 --R   (24)  [0,1]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 24
 
 --S 25 of 26
 fibs := curry(shiftfib, fibinit)
 --R 
---R   Compiling function shiftfib with type List Integer -> Integer 
+--R   Compiling function shiftfib with type List(Integer) -> Integer 
 --R
---I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> Integer)
 --E 25
 
@@ -61938,7 +62647,7 @@ fibs := curry(shiftfib, fibinit)
 --R   [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,
 --R    2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418,
 --R    317811, 514229, 832040]
---R                                                           Type: List Integer
+--R                                                          Type: List(Integer)
 --E 26
 )spool
 )lisp (bye)
@@ -118449,17 +119158,18 @@ NewtonInterpolation F: Exports == Implementation where
 
 --S 1 of 1
 )show NewtonPolygon
+--R 
 --R NewtonPolygon(K: Ring,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger)  is a package constructor
 --R Abbreviation for NewtonPolygon is NPOLYGON 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for NPOLYGON 
 --R
 --R------------------------------- Operations --------------------------------
---R multiplicity : List List PolyRing -> NonNegativeInteger
---R negAndPosEdge : (PolyRing,List List PolyRing) -> List List PolyRing
---R newtonPolygon : (PolyRing,Integer,Integer,Union(left,center,right,vertical,horizontal)) -> List List PolyRing
+--R multiplicity : List(List(PolyRing)) -> NonNegativeInteger
+--R negAndPosEdge : (PolyRing,List(List(PolyRing))) -> List(List(PolyRing))
+--R newtonPolygon : (PolyRing,Integer,Integer,Union(left,center,right,vertical,horizontal)) -> List(List(PolyRing))
 --R slope : (PolyRing,PolyRing) -> Record(height: Integer,base: Integer,quotient: Integer,reste: Integer,type: Union(left,center,right,vertical,horizontal))
---R slope : List PolyRing -> Record(height: Integer,base: Integer,quotient: Integer,reste: Integer,type: Union(left,center,right,vertical,horizontal))
+--R slope : List(PolyRing) -> Record(height: Integer,base: Integer,quotient: Integer,reste: Integer,type: Union(left,center,right,vertical,horizontal))
 --R
 --E 1
 
@@ -123771,6 +124481,7 @@ PackageForAlgebraicFunctionFieldOverFiniteField(K,symb,BLMET):Exp == Impl where
 
 --S 1 of 1
 )show PackageForPoly
+--R 
 --R PackageForPoly(R: Ring,PolyRing: FiniteAbelianMonoidRing(R,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger)  is a package constructor
 --R Abbreviation for PackageForPoly is PFORP 
 --R This constructor is exposed in this frame.
@@ -123778,24 +124489,25 @@ PackageForAlgebraicFunctionFieldOverFiniteField(K,symb,BLMET):Exp == Impl where
 --R
 --R------------------------------- Operations --------------------------------
 --R constant : PolyRing -> R              firstExponent : PolyRing -> E
---R listAllMonoExp : Integer -> List E    listVariable : () -> List PolyRing
 --R minimalForm : PolyRing -> PolyRing   
 --R degOneCoef : (PolyRing,PositiveInteger) -> R
 --R degree : (PolyRing,Integer) -> NonNegativeInteger
 --R degreeOfMinimalForm : PolyRing -> NonNegativeInteger
 --R homogenize : (PolyRing,Integer) -> PolyRing
---R listAllMono : NonNegativeInteger -> List PolyRing
+--R listAllMono : NonNegativeInteger -> List(PolyRing)
+--R listAllMonoExp : Integer -> List(E)
+--R listVariable : () -> List(PolyRing)
 --R mapExponents : ((E -> E),PolyRing) -> PolyRing
---R monomials : PolyRing -> List PolyRing
+--R monomials : PolyRing -> List(PolyRing)
 --R replaceVarByOne : (PolyRing,Integer) -> PolyRing
 --R replaceVarByZero : (PolyRing,Integer) -> PolyRing
 --R subs1stVar : (PolyRing,PolyRing) -> PolyRing
 --R subs2ndVar : (PolyRing,PolyRing) -> PolyRing
 --R subsInVar : (PolyRing,PolyRing,Integer) -> PolyRing
 --R totalDegree : PolyRing -> NonNegativeInteger
---R translate : (PolyRing,List R,Integer) -> PolyRing
---R translate : (PolyRing,List R) -> PolyRing
---R univariate : PolyRing -> SparseUnivariatePolynomial R
+--R translate : (PolyRing,List(R),Integer) -> PolyRing
+--R translate : (PolyRing,List(R)) -> PolyRing
+--R univariate : PolyRing -> SparseUnivariatePolynomial(R)
 --R
 --E 1
 
@@ -124209,369 +124921,6 @@ PadeApproximantPackage(R: Field, x:Symbol, pt:R): Exports == Implementation wher
 \pagehead{PadeApproximants}{PADE}
 \pagepic{ps/v104padeapproximants.ps}{PADE}{1.00}
 
-From Jeffrey (pp413-415):
-
-An effective and concise form of approximation is provided by Pad\'e
-approximation in which a function $f(x)$ defined over an interval 
-$a \le x \le b$ is approximated by a function of the form $F(x) = N(x)/D(x)$, 
-where $N(x)$ and $D(x)$ are polynomials with no common zeros. 
-This type of approximation can be used with functions $f(x)$
-that are analytic over the interval $a \le x \le b$, and also with
-functions that have singularities in the interval at which the
-function becomes infinite. In the latter case the zeros of $D(x)$ are
-chosen to coincide with the singularities of $f(x)$ inside the
-interval.
-
-Unless there is a reason to do otherwise, the degrees of the
-polynomial $N(x)$ in the numerator and $D(x)$ in the denominator of a
-Pad\'e approximation are usually chosen to be the same. If, however, the
-function $f(x)$ to be approximated is an even function, $N(x)$ and
-$D(x)$ are both chosen to be even functions, while if $f(x)$ is odd,
-one of the functions $N(x)$ and $D(x)$ is chosen to be even and the
-other to be odd. As already stated, when the function to be
-approximated has singularities in the interval, the zeros of $D(x)$
-are taken to coincide with the singularities.
-
-The determination of a Pad\'e approximation $F(x)$ for $f(x)$ over the
-interval $a \le x \le b$ is determined as follows where, by way of
-example, $f(x)$ is supposed to be neither even nor odd so the degrees
-of $N(x)$ and $D(x)$ are both taken to be $n$. Setting
-\[ 
-F(x) = \frac{a_1(x-a)^n + a_2(x-a)^{n-1} + \cdots + a_n(x-a) + f(a)}
-{b_1(x-a)^n + b_2(x-a)^{n-1} + \cdots + b_n(x-a) + 1}
-\]
-
-the values of $f(x)$ are computed at $2n$ points $x_1$, $x_2$, 
-$\ldots$, $x_{2n}$ distributed over the interval\\
-$a \le x \le b$
-in such a way that the functional values at these points provide 
-a good representation of $f(x)$ away from any singularities that 
-might occur. Set $f_r = f(x_r)$ with $r=1,2,\ldots,2n$, where the
-initial point $x=a$ is excluded from this set of $2n$ points. Then,
-for each value $x$, set $F(x_r)=f_r$, so that after multiplication
-of $F(x)$ by 
-\[
-b_1(x_r-a)^n + \ldots + b_n(x_r-a) + 1,
-\]
-
-\[
-a_1(x_r-a)^n+\ldots+a_n(x_r-a)+f(a)=
-f_r[b_1(x_r-a)^n + \ldots + b_n(x_r-a) + 1]
-\]
-
-with $r=1,2,\ldots{},2n$. These $2n$ equations determine the $2n$
-coefficients $a_1$, $a_2$, $\ldots$, $a_n$, $b_1$, $b_2$, $\ldots$,
-$b_n$ to be used in the Pad\'e approximation.
-
-The approach is different if $f(x)$ is analytic in an interval of
-interest that contains no singularities of $f(x)$ and the function
-is known in the form of a power series. The method used in such a
-case is illustrated by finding a Pad\'e approximation for $sin(x)$
-based on the first four terms of its Maclaurin series
-\[
-sin(x) = x - \frac{1}{6}x^3 + \frac{1}{120}x^5 - \frac{1}{5040}x^5
-\]
-
-the sine function is an odd function, so a Pad\'e approximation
-is sought of the form
-\[
-x - \frac{1}{6}x^3 + \frac{1}{120}x^5 - \frac{1}{5040}x^5 =
-\frac{x+a_1 x^3}{1+b_1 x^2+b_2 x^4}
-\]
-
-where the numerator is an odd polynomial function of degree three
-and the denominator is an even polynomial of degree four.
-
-Multiplying this representation by $1+b_1 x^2 +b_2 x^4$ and
-equating corresponding powers of $x$ on each side of the equation gives:
-\[
-b_1-\frac{1}{6}=a_1,\quad
-b_2-\frac{1}{6}b_1+\frac{1}{120}=0,\quad
--\frac{1}{5040}+\frac{1}{120}b_1-\frac{1}{6}b_2=0
-\]
-so $a_1=-31/294$, $b_1=3/49$ and $b_2=11/5880$. Substituting for 
-$a_1$, $b_1$, and $b_2$ in the original expression and clearing
-fractions shows that the required Pad\'e approximation to be
-\[
-sin(x) \approx F(x) = \frac{5880x-620x^3}{5880+360x^2+11x^4}
-\]
-
-The positive zero of the numerator at 3.07959 provides a surprisingly
-good approximation to the zero of $sin(x)$ at $\pi = 3.14159\ldots$
-despite the very few terms used in the Maclaurin series for $sin(x)$.
-The Pad\'e approximations $F(1)=0.84147$, $F(2) = 0.90715$, and
-$F(3) = 0.08990$, should be compared with the true values 
-$sin(1)=0.84147\ldots$, $sin(2)=0.90929\ldots$ and
-$sin(3)=0.14112\ldots$.
-
-An example of a Pad\'e approximation to an analytic function that is
-neither even or odd is provided by an approximation to $exp(-x)$, 
-based on the first nine terms of its Maclaurin series expansion
-and a rational approximation in which the numerator and denominator
-are both of degree four, yields
-\[
-exp(-x) \approx F(x) = 
-\frac{1680 - 840x + 180x^2 - 20x^3 + x^4}
-{1680 + 840x + 180x^2 + 20x^3 + x^4}
-\]
-
-This approximation gives $F(-1)=2.718281$, that should be compared
-with the true value $exp(1)=e=2.718281\ldots$, similarly
-$F(-2)=7.388889$ should be compared with the true value
-$exp(2)=7.389056\ldots$ and $F(-3)=20.065421$ should be compared
-with the true value $exp(3)=20.085536\ldots$.
-
-A final example is provided by the Pad\'e approximation to the odd
-function $tan(x)$, based on the first five terms of its Maclaurin
-series expansion and a rational function approximation in which the
-numerator is an odd function of degree five and the denominator is
-an even function of degree four.
-
-In this case the Pad\'e approximation becomes
-\[
-tan(x) \approx F(x) = 
-\frac{945x - 105x^3 + x^5}{945 - 420x^2 + 15x^4}
-\]
-
-The smallest positive zero of the denominator
-$945 - 420x^2 + 15x^4$ gives for the approximation to 
-$\pi/2 = 1.57079\ldots$ the surprisingly accurate estimate 
-$\pi/2 \approx 1.57081$. The value $F(1.1)=1.96476$ should be
-compared with the true value 
-$tan(1.1)=1.964759\ldots$, the value $F(1.5)=14.10000$ should be
-compared to the true value $tan(1.5)=14.10141\ldots$ and the
-value $F(1.57)=1237.89816$ should be compared with the true value\\
-$tan(1.57)=1255.76559\ldots$.
-
-\begin{chunk}{PadeApproximants.input}
-)set break resume
-)sys rm -f PadeApproximants.output
-)spool PadeApproximants.output
-)set message test on
-)set message auto off
-)clear all
-
---S 1 of 30
-F(x:PI):DFLOAT == (5880*x-620*x^3)/(5880+360*x^2+11*x^4)
---R   Function declaration F : PositiveInteger -> DoubleFloat has been 
---R      added to workspace.
---R                                                                   Type: Void
---E 1
-
---S 2 of 30
-F(1)
---R   Compiling function F with type PositiveInteger -> DoubleFloat 
---R
---R   (2)  0.84146536554151341
---R                                                            Type: DoubleFloat
---E 2
-
---S 3 of 30
-sin(1)::EXPR(DFLOAT)
---R
---R   (3)  0.8414709848078965
---R                                                Type: Expression(DoubleFloat)
---E 3
-
---S 4 of 30
-F(1)-sin(1)
---R
---R   (4)  - 5.6192663830945122E-6
---R                                                Type: Expression(DoubleFloat)
---E 4
-
---S 5 of 30
-F(2)
---R
---R   (5)  0.90715048025613665
---R                                                            Type: DoubleFloat
---E 5
-
---S 6 of 30
-sin(2)::EXPR(DFLOAT)
---R
---R   (6)  0.90929742682568171
---R                                                Type: Expression(DoubleFloat)
---E 6
-
---S 7 of 30
-F(2)-sin(2)
---R
---R   (7)  - 2.1469465695450607E-3
---R                                                Type: Expression(DoubleFloat)
---E 7
-
---S 8 of 30
-F(3)
---R
---R   (8)  8.9901108780341618E-2
---R                                                            Type: DoubleFloat
---E 8
-
---S 9 of 30
-sin(3)::EXPR(DFLOAT)
---R
---R   (9)  0.14112000805986721
---R                                                Type: Expression(DoubleFloat)
---E 9
-
---S 10 of 30
-F(3)-sin(3)
---R
---R   (10)  - 5.1218899279525595E-2
---R                                                Type: Expression(DoubleFloat)
---E 10
-
-)clear all
-
---S 11 of 30
-F(x:INT):DFLOAT == _
-  (1680-840*x+180*x^2-20*x^3+x^4)/(1680+840*x+180*x^2+20*x^3+x^4)
---R 
---R   Function declaration F : Integer -> DoubleFloat has been added to 
---R      workspace.
---R                                                                   Type: Void
---E 11
-
---S 12 of 30
-F(-1)
---R   Compiling function F with type Integer -> DoubleFloat 
---R
---R   (2)  2.7182817182817183
---R                                                            Type: DoubleFloat
---E 12
-
---S 13 of 30
-exp(1)::EXPR(DFLOAT)
---R
---R   (3)  2.7182818284590451
---R                                                Type: Expression(DoubleFloat)
---E 13
-
---S 14 of 30
-F(-1)-exp(1)
---R
---R   (4)  - 1.1017732681750658E-7
---R                                                Type: Expression(DoubleFloat)
---E 14
-
---S 15 of 30
-F(-2)
---R
---R   (5)  7.3888888888888893
---R                                                            Type: DoubleFloat
---E 15
-
---S 16 of 30
-exp(2)::EXPR(DFLOAT)
---R
---R   (6)  7.3890560989306504
---R                                                Type: Expression(DoubleFloat)
---E 16
-
---S 17 of 30
-F(-2)-exp(2)
---R
---R   (7)  - 1.6721004176112331E-4
---R                                                Type: Expression(DoubleFloat)
---E 17
-
---S 18 of 30
-F(-3)
---R
---R   (8)  20.065420560747665
---R                                                            Type: DoubleFloat
---E 18
-
---S 19 of 30
-exp(3)::EXPR(DFLOAT)
---R
---R   (9)  20.085536923187668
---R                                                Type: Expression(DoubleFloat)
---E 19
-
---S 20 of 30
-F(-3)-exp(3)
---R
---R   (10)  - 2.0116362440003144E-2
---R                                                Type: Expression(DoubleFloat)
---E 20
-
-)clear all
-
---S 21 of 30
-F(x) == (945*x - 105*x^3+x^5)/(945-420*x^2+15*x^4)
---R                                                                   Type: Void
---E 21
-
---S 22 of 30
-F(1.1)
---R   Compiling function F with type Float -> Float 
---R
---R   (2)  1.9647583984 270694032
---R                                                                  Type: Float
---E 22
-
---S 23 of 30
-tan(1.1)
---R
---R   (3)  1.9647596572 486519509
---R                                                                  Type: Float
---E 23
-
---S 24 of 30
-F(1.1)-tan(1.1)
---R
---R   (4)  - 0.0000012588 215825478
---R                                                                  Type: Float
---E 24
-
---S 25 of 30
-F(1.5)
---R
---R   (5)  14.1
---R                                                                  Type: Float
---E 25
-
---S 26 of 30
-tan(1.5)
---R
---R   (6)  14.1014199471 71719388
---R                                                                  Type: Float
---E 26
-
---S 27 of 30
-F(1.5)-tan(1.5)
---R
---R   (7)  - 0.0014199471 71719388
---R                                                                  Type: Float
---E 27
-
---S 28 of 30
-F(1.57)
---R
---R   (8)  1237.8982990170 10806
---R                                                                  Type: Float
---E 28
-
---S 29 of 30
-tan(1.57)
---R
---R   (9)  1255.7655915006 916051
---R                                                                  Type: Float
---E 29
-
---S 30 of 30
-F(1.57)-tan(1.57)
---R
---R   (10)  - 17.8672924836 807991
---R                                                                  Type: Float
---E 30
-
-)spool
-)lisp (bye)
-\end{chunk}
-
 {\bf Exports:}\\
 \begin{tabular}{ll}
 \cross{PADE}{pade} &
@@ -124587,9 +124936,8 @@ F(1.57)-tan(1.57)
 ++ Examples:
 ++ References:
 ++   "Pade Approximants, Part I: Basic Theory", Baker & Graves-Morris.
-++   "Handbook of Mathematical Formulas and Integrals" Alan Jeffrey
 ++ Description:
-++ This package computes reliable Pade. approximants using
+++ This package computes reliable Pad&ea. approximants using
 ++ a generalized Viskovatov continued fraction algorithm.
 
 PadeApproximants(R,PS,UP): Exports == Implementation where
@@ -125812,13 +126160,14 @@ ParametricSurfaceFunctions2(CF1: Type, CF2:Type): with
 
 --S 1 of 1
 )show ParametrizationPackage
---R ParametrizationPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS))  is a package constructor
+--R 
+--R ParametrizationPackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K),PCS: LocalPowerSeriesCategory(K),Plc: PlacesCategory(K,PCS))  is a package constructor
 --R Abbreviation for ParametrizationPackage is PARAMP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for PARAMP 
 --R
 --R------------------------------- Operations --------------------------------
---R parametrize : (PolyRing,List PCS) -> PCS
+--R parametrize : (PolyRing,List(PCS)) -> PCS
 --R parametrize : (PolyRing,Plc) -> PCS
 --R parametrize : (PolyRing,PolyRing,Plc) -> PCS
 --R parametrize : (PolyRing,Plc,Integer) -> PCS
@@ -125943,7 +126292,7 @@ a:=x+1/(y+1)
 --R        x y + x + 1
 --R   (1)  -----------
 --R           y + 1
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 1
 
 --S 2 of 4
@@ -125952,7 +126301,7 @@ partialFraction(a,y)$PFRPAC(INT)
 --R              1
 --R   (2)  x + -----
 --R            y + 1
---R    Type: PartialFraction UnivariatePolynomial(y,Fraction Polynomial Integer)
+--R Type: PartialFraction(UnivariatePolynomial(y,Fraction(Polynomial(Integer))))
 --E 2
 
 --S 3 of 4
@@ -125961,7 +126310,7 @@ b:=y+1/(x+1)
 --R        (x + 1)y + 1
 --R   (3)  ------------
 --R            x + 1
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 3
 
 --S 4 of 4
@@ -125970,7 +126319,7 @@ partialFraction(b,x)$PFRPAC(INT)
 --R              1
 --R   (4)  y + -----
 --R            x + 1
---R    Type: PartialFraction UnivariatePolynomial(x,Fraction Polynomial Integer)
+--R Type: PartialFraction(UnivariatePolynomial(x,Fraction(Polynomial(Integer))))
 --E 4
 
 )spool 
@@ -127762,7 +128111,7 @@ kn n ==
 --S 2 of 3
 permanent(kn(5) :: SQMATRIX(5,INT))
 --R 
---R   Compiling function kn with type PositiveInteger -> Matrix Integer 
+--R   Compiling function kn with type PositiveInteger -> Matrix(Integer) 
 --R
 --R   (2)  44
 --R                                                        Type: PositiveInteger
@@ -127778,7 +128127,7 @@ permanent(kn(5) :: SQMATRIX(5,INT))
 --R
 --R   (3)
 --R   [0,1,2,9,44,265,1854,14833,133496,1334961,14684570,176214841,2290792932]
---R                                                Type: List NonNegativeInteger
+--R                                               Type: List(NonNegativeInteger)
 --E 3
 )spool
 )lisp (bye)
@@ -128620,16 +128969,17 @@ PRJALGPK ProjectiveAlgebraicSetPackage
 
 --S 1 of 1
 )show ProjectiveAlgebraicSetPackage
---R ProjectiveAlgebraicSetPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K)  is a package constructor
+--R 
+--R ProjectiveAlgebraicSetPackage(K: Field,symb: List(Symbol),PolyRing: PolynomialCategory(K,E,OrderedVariableList(symb)),E: DirectProductCategory(#(symb),NonNegativeInteger),ProjPt: ProjectiveSpaceCategory(K))  is a package constructor
 --R Abbreviation for ProjectiveAlgebraicSetPackage is PRJALGPK 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for PRJALGPK 
 --R
 --R------------------------------- Operations --------------------------------
---R algebraicSet : List PolyRing -> List ProjPt
---R rationalPoints : (PolyRing,PositiveInteger) -> List ProjPt
---R singularPoints : PolyRing -> List ProjPt
---R singularPointsWithRestriction : (PolyRing,List PolyRing) -> List ProjPt
+--R algebraicSet : List(PolyRing) -> List(ProjPt)
+--R rationalPoints : (PolyRing,PositiveInteger) -> List(ProjPt)
+--R singularPoints : PolyRing -> List(ProjPt)
+--R singularPointsWithRestriction : (PolyRing,List(PolyRing)) -> List(ProjPt)
 --R
 --E 1
 
@@ -129457,7 +129807,8 @@ PointsOfFiniteOrderTools(UP, UPUP): Exports == Implementation where
 
 --S 1 of 1
 )show PolynomialPackageForCurve
---R PolynomialPackageForCurve(K: Field,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger,ProjPt: ProjectiveSpaceCategory K)  is a package constructor
+--R 
+--R PolynomialPackageForCurve(K: Field,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger,ProjPt: ProjectiveSpaceCategory(K))  is a package constructor
 --R Abbreviation for PolynomialPackageForCurve is PLPKCRV 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for PLPKCRV 
@@ -129468,7 +129819,7 @@ PointsOfFiniteOrderTools(UP, UPUP): Exports == Implementation where
 --R minimalForm : (PolyRing,ProjPt,Integer) -> PolyRing
 --R multiplicity : (PolyRing,ProjPt) -> NonNegativeInteger
 --R multiplicity : (PolyRing,ProjPt,Integer) -> NonNegativeInteger
---R pointInIdeal? : (List PolyRing,ProjPt) -> Boolean
+--R pointInIdeal? : (List(PolyRing),ProjPt) -> Boolean
 --R translateToOrigin : (PolyRing,ProjPt,Integer) -> PolyRing
 --R translateToOrigin : (PolyRing,ProjPt) -> PolyRing
 --R
@@ -136628,7 +136979,6 @@ QuotientFieldCategoryFunctions2(A, B, R, S): Exports == Impl where
 )set message auto off
 )clear all
 
-(1) -> )read af
 --S 1 of 4
 q := quatern(2/11,-8,3/4,1)
 --R 
@@ -136636,33 +136986,33 @@ q := quatern(2/11,-8,3/4,1)
 --R         2        3
 --R   (1)  -- - 8i + - j + k
 --R        11        4
---R                                            Type: Quaternion Fraction Integer
+--R                                          Type: Quaternion(Fraction(Integer))
 --E 1
 
 --S 2 of 4
 f(a:Fraction Integer):Complex Fraction Integer == a::Complex Fraction Integer
 --R 
---R   Function declaration f : Fraction Integer -> Complex Fraction 
---R      Integer has been added to workspace.
+--R   Function declaration f : Fraction(Integer) -> Complex(Fraction(
+--R      Integer)) has been added to workspace.
 --R                                                                   Type: Void
 --E 3
 
 --S 3 of 4
 map(f,q)
 --R 
---R   Compiling function f with type Fraction Integer -> Complex Fraction 
---R      Integer 
+--R   Compiling function f with type Fraction(Integer) -> Complex(Fraction
+--R      (Integer)) 
 --R
 --R         2        3
 --R   (3)  -- - 8i + - j + k
 --R        11        4
---R                                    Type: Quaternion Complex Fraction Integer
+--R                                 Type: Quaternion(Complex(Fraction(Integer)))
 --E 3
 
 --S 4 of 4
 )show QuaternionCategoryFunctions2
 --R 
---R QuaternionCategoryFunctions2(QR: QuaternionCategory R,R: CommutativeRing,QS: QuaternionCategory S,S: CommutativeRing)  is a package constructor
+--R QuaternionCategoryFunctions2(QR: QuaternionCategory(R),R: CommutativeRing,QS: QuaternionCategory(S),S: CommutativeRing)  is a package constructor
 --R Abbreviation for QuaternionCategoryFunctions2 is QUATCT2 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for QUATCT2 
@@ -136981,7 +137331,7 @@ b:Fraction(Polynomial(Integer)):=(3*x^3+7)/(5*x^2-13)
 --R   (1)  --------
 --R          2
 --R        5x  - 13
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 1
 
 --S 2 of 14
@@ -136994,7 +137344,7 @@ radicalSolve(b,x)
 --R   [x= ------,x= -------------------------,x= ---------------------------]
 --R        3+-+                3+-+                          3+-+
 --R        \|3                2\|3                          2\|3
---R                                       Type: List Equation Expression Integer
+--R                                    Type: List(Equation(Expression(Integer)))
 --E 2
 
 --S 3 of 14
@@ -137007,7 +137357,7 @@ radicalSolve(b)
 --R   [x= ------,x= -------------------------,x= ---------------------------]
 --R        3+-+                3+-+                          3+-+
 --R        \|3                2\|3                          2\|3
---R                                       Type: List Equation Expression Integer
+--R                                    Type: List(Equation(Expression(Integer)))
 --E 3
 
 --S 4 of 14
@@ -137020,7 +137370,7 @@ radicalSolve(b=0,x)
 --R   [x= ------,x= -------------------------,x= ---------------------------]
 --R        3+-+                3+-+                          3+-+
 --R        \|3                2\|3                          2\|3
---R                                       Type: List Equation Expression Integer
+--R                                    Type: List(Equation(Expression(Integer)))
 --E 4
 
 --S 5 of 14
@@ -137033,7 +137383,7 @@ radicalSolve(b=0)
 --R   [x= ------,x= -------------------------,x= ---------------------------]
 --R        3+-+                3+-+                          3+-+
 --R        \|3                2\|3                          2\|3
---R                                       Type: List Equation Expression Integer
+--R                                    Type: List(Equation(Expression(Integer)))
 --E 5
 
 --S 6 of 14
@@ -137045,7 +137395,7 @@ radicalRoots(b,x)
 --R   (6)  [------,-------------------------,---------------------------]
 --R          3+-+             3+-+                       3+-+
 --R          \|3             2\|3                       2\|3
---R                                                Type: List Expression Integer
+--R                                              Type: List(Expression(Integer))
 --E 6
 
 --S 7 of 14
@@ -137056,7 +137406,7 @@ contractSolve(b=0,x)
 --R         3+--+ (\|- 1 \|3  - 1)\|%A  (- \|- 1 \|3  - 1)\|%A            7
 --R   (7)  [\|%A ,---------------------,-----------------------] | [%A= - -]
 --R                         2                      2                      3
---R     Type: SuchThat(List Expression Integer,List Equation Expression Integer)
+--RType: SuchThat(List(Expression(Integer)),List(Equation(Expression(Integer))))
 --E 7
 
 --S 8 of 14
@@ -137067,7 +137417,7 @@ contractSolve(b,x)
 --R         3+--+ (\|- 1 \|3  - 1)\|%B  (- \|- 1 \|3  - 1)\|%B            7
 --R   (8)  [\|%B ,---------------------,-----------------------] | [%B= - -]
 --R                         2                      2                      3
---R     Type: SuchThat(List Expression Integer,List Equation Expression Integer)
+--RType: SuchThat(List(Expression(Integer)),List(Equation(Expression(Integer))))
 --E 8
 
 --S 9 of 14
@@ -137078,7 +137428,7 @@ c:Fraction(Polynomial(Integer)):=(y^2+4)/(y+1)
 --R        y  + 4
 --R   (9)  ------
 --R         y + 1
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 9
 
 --S 10 of 14
@@ -137106,7 +137456,7 @@ radicalSolve([b,c],[x,y])
 --R    [x= -------------------------,y= 2\|- 1 ], [x= ------,y= 2\|- 1 ]]
 --R                   3+-+                             3+-+
 --R                  2\|3                              \|3
---R                                  Type: List List Equation Expression Integer
+--R                              Type: List(List(Equation(Expression(Integer))))
 --E 10
 
 --S 11 of 14
@@ -137134,7 +137484,7 @@ radicalSolve([b,c])
 --R    [x= -------------------------,y= 2\|- 1 ], [x= ------,y= 2\|- 1 ]]
 --R                   3+-+                             3+-+
 --R                  2\|3                              \|3
---R                                  Type: List List Equation Expression Integer
+--R                              Type: List(List(Equation(Expression(Integer))))
 --E 11
 
 --S 12 of 14
@@ -137162,7 +137512,7 @@ radicalSolve([b=0,c=0],[x,y])
 --R    [x= -------------------------,y= 2\|- 1 ], [x= ------,y= 2\|- 1 ]]
 --R                   3+-+                             3+-+
 --R                  2\|3                              \|3
---R                                  Type: List List Equation Expression Integer
+--R                              Type: List(List(Equation(Expression(Integer))))
 --E 12
 
 --S 13 of 14
@@ -137190,7 +137540,7 @@ radicalSolve([b=0,c=0])
 --R    [x= -------------------------,y= 2\|- 1 ], [x= ------,y= 2\|- 1 ]]
 --R                   3+-+                             3+-+
 --R                  2\|3                              \|3
---R                                  Type: List List Equation Expression Integer
+--R                              Type: List(List(Equation(Expression(Integer))))
 --E 13
 
 --S 14 of 14
@@ -137218,7 +137568,7 @@ radicalRoots([b,c],[x,y])
 --R    [------,2\|- 1 ]]
 --R      3+-+
 --R      \|3
---R                                           Type: List List Expression Integer
+--R                                        Type: List(List(Expression(Integer)))
 --E 14
 
 )spool
@@ -138887,7 +139237,7 @@ sum(i::Polynomial(Integer),variable(i=1..n))
 --R        6i  - 6i + 1
 --R   (1)  ------------
 --R             12
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 1
 
 --S 2 of 13
@@ -138898,7 +139248,7 @@ sum(i::Fraction(Polynomial(Integer)),i::Symbol)
 --R        6i  - 6i + 1
 --R   (2)  ------------
 --R             12
---R                                 Type: Union(Fraction Polynomial Integer,...)
+--R                               Type: Union(Fraction(Polynomial(Integer)),...)
 --E 2
 
 --S 3 of 13
@@ -138909,7 +139259,7 @@ sum(i,i=1..n)
 --R        n  + n
 --R   (3)  ------
 --R           2
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 3
 
 --S 4 of 13
@@ -138920,7 +139270,7 @@ sum(i::Fraction(Polynomial(Integer)),i=1..n)
 --R        n  + n
 --R   (4)  ------
 --R           2
---R                                 Type: Union(Fraction Polynomial Integer,...)
+--R                               Type: Union(Fraction(Polynomial(Integer)),...)
 --E 4
 
 --S 5 of 13
@@ -138928,7 +139278,7 @@ s:=i=1..n
 --R 
 --R
 --R   (5)  i= 1..n
---R                                      Type: SegmentBinding Polynomial Integer
+--R                                    Type: SegmentBinding(Polynomial(Integer))
 --E 5
 
 --S 6 of 13
@@ -138936,7 +139286,7 @@ hiseg:=high(segment(s))
 --R 
 --R
 --R   (6)  n
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 6
 
 --S 7 of 13
@@ -138944,7 +139294,7 @@ loseg:=low(segment(s))
 --R 
 --R
 --R   (7)  1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 7
 
 --S 8 of 13
@@ -138960,7 +139310,7 @@ p:=i::Polynomial(Integer)
 --R 
 --R
 --R   (9)  i
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 9
 
 --S 10 of 13
@@ -138971,7 +139321,7 @@ f:=sum(p,v)
 --R         6i  - 6i + 1
 --R   (10)  ------------
 --R              12
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 10
 
 --S 11 of 13
@@ -138982,7 +139332,7 @@ t1:=eval(f,v,(1+hiseg))
 --R         6n  + 6n + 1
 --R   (11)  ------------
 --R              12
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 11
 
 --S 12 of 13
@@ -138992,7 +139342,7 @@ t2:=eval(f,v,loseg)
 --R          1
 --R   (12)  --
 --R         12
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 12
 
 --S 13 of 13
@@ -139003,7 +139353,7 @@ t1-t2
 --R         n  + n
 --R   (13)  ------
 --R            2
---R                                            Type: Fraction Polynomial Integer
+--R                                          Type: Fraction(Polynomial(Integer))
 --E 13
 
 )spool
@@ -140362,7 +140712,7 @@ p := 4*x^3 - 3*x^2 + 2*x - 4
 --R
 --R          3     2
 --R   (1)  4x  - 3x  + 2x - 4
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 1
 
 --S 2 of 13
@@ -140370,7 +140720,7 @@ ans1 := solve(p,0.01)$REALSOLV
 --R 
 --R
 --R   (2)  [1.11328125]
---R                                                             Type: List Float
+--R                                                            Type: List(Float)
 --E 2
 
 --S 3 of 13
@@ -140378,7 +140728,7 @@ ans2 := solve(p::POLY(FRAC(INT)),0.01)$REALSOLV
 --R 
 --R
 --R   (3)  [1.11328125]
---R                                                             Type: List Float
+--R                                                            Type: List(Float)
 --E 3
 
 --S 4 of 13
@@ -140394,7 +140744,7 @@ ls : List Symbol := [x,y,z,t]
 --R 
 --R
 --R   (5)  [x,y,z,t]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 5
 
 --S 6 of 13
@@ -140402,7 +140752,7 @@ ls2 : List Symbol := [x,y,z,t,new()$Symbol]
 --R 
 --R
 --R   (6)  [x,y,z,t,%A]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 6
 
 --S 7 of 13
@@ -140419,7 +140769,7 @@ p1 := x**2*y*z + y*z
 --R
 --R          2
 --R   (8)  (x  + 1)y z
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 8
 
 --S 9 of 13
@@ -140428,7 +140778,7 @@ p2 := x**2*y**2*z + x + z
 --R
 --R          2 2
 --R   (9)  (x y  + 1)z + x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 9
 
 --S 10 of 13
@@ -140437,7 +140787,7 @@ p3 := x**2*y**2*z**2 +  z + 1
 --R
 --R          2 2 2
 --R   (10)  x y z  + z + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 10
 
 --S 11 of 13
@@ -140446,7 +140796,7 @@ lp := [p1, p2, p3]
 --R
 --R            2           2 2            2 2 2
 --R   (11)  [(x  + 1)y z,(x y  + 1)z + x,x y z  + z + 1]
---R                                                Type: List Polynomial Integer
+--R                                              Type: List(Polynomial(Integer))
 --E 11
 
 --S 12 of 13
@@ -140454,7 +140804,7 @@ lsv:List(Symbol):=[x,y,z]
 --R 
 --R
 --R   (12)  [x,y,z]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 12
 
 --S 13 of 13
@@ -140462,7 +140812,7 @@ ans3 := realSolve(lp,lsv,0.01)$REALSOLV
 --R 
 --R
 --R   (13)  [[1.0,0.0,- 1.0]]
---R                                                        Type: List List Float
+--R                                                      Type: List(List(Float))
 --E 13
 )spool
 
@@ -143854,15 +144204,17 @@ RetractSolvePackage(Q, R): Exports == Implementation where
 
 --S 1 of 1
 )show RootsFindingPackage
---R RootsFindingPackage K: Field  is a package constructor
+--R 
+--R RootsFindingPackage(K: Field)  is a package constructor
 --R Abbreviation for RootsFindingPackage is RFP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for RFP 
 --R
 --R------------------------------- Operations --------------------------------
---R foundZeroes : () -> List K            setFoundZeroes : List K -> List K
---R distinguishedCommonRootsOf : (List SparseUnivariatePolynomial K,K) -> Record(zeros: List K,extDegree: Integer)
---R distinguishedRootsOf : (SparseUnivariatePolynomial K,K) -> Record(zeros: List K,extDegree: Integer)
+--R foundZeroes : () -> List(K)          
+--R distinguishedCommonRootsOf : (List(SparseUnivariatePolynomial(K)),K) -> Record(zeros: List(K),extDegree: Integer)
+--R distinguishedRootsOf : (SparseUnivariatePolynomial(K),K) -> Record(zeros: List(K),extDegree: Integer)
+--R setFoundZeroes : List(K) -> List(K)
 --R
 --E 1
 
@@ -147064,13 +147416,14 @@ StreamTaylorSeriesOperations(A): Exports == Implementation where
 
 --S 1 of 1
 )show StreamTensor
---R StreamTensor R: Type  is a package constructor
+--R 
+--R StreamTensor(R: Type)  is a package constructor
 --R Abbreviation for StreamTensor is STNSR 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for STNSR 
 --R
 --R------------------------------- Operations --------------------------------
---R tensorMap : (Stream R,(R -> List R)) -> Stream R
+--R tensorMap : (Stream(R),(R -> List(R))) -> Stream(R)
 --R
 --E 1
 
@@ -153291,7 +153644,7 @@ solve(1/2*v*v*cos(theta+phi)*cos(theta+phi)+g*l*cos(phi)=g*l,phi)
 --R       + 
 --R         - theta
 --R     ]
---R                                       Type: List Equation Expression Integer
+--R                                    Type: List(Equation(Expression(Integer)))
 --E 1
 
 --S 2 of 4
@@ -153313,7 +153666,7 @@ definingPolynomial %phi0
 --R      2    theta 2    2
 --R     v tan(-----)  + v  - 4g l
 --R             2
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 2
 
 --S 3 of 4
@@ -153349,23 +153702,23 @@ definingPolynomial %phi1
 --R      2    theta 2    2
 --R     v tan(-----)  + v  - 4g l
 --R             2
---R                                                     Type: Expression Integer
+--R                                                    Type: Expression(Integer)
 --E 3
 
 --S 4 of 4
 )show TransSolvePackage
 --R 
---R TransSolvePackage R: Join(OrderedSet,EuclideanDomain,RetractableTo Integer,LinearlyExplicitRingOver Integer,CharacteristicZero)  is a package constructor
+--R TransSolvePackage(R: Join(OrderedSet,EuclideanDomain,RetractableTo(Integer),LinearlyExplicitRingOver(Integer),CharacteristicZero))  is a package constructor
 --R Abbreviation for TransSolvePackage is SOLVETRA 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.4.pamphlet to see algebra source code for SOLVETRA 
 --R
 --R------------------------------- Operations --------------------------------
---R solve : Expression R -> List Equation Expression R
---R solve : Equation Expression R -> List Equation Expression R
---R solve : (Equation Expression R,Symbol) -> List Equation Expression R
---R solve : (Expression R,Symbol) -> List Equation Expression R
---R solve : (List Equation Expression R,List Symbol) -> List List Equation Expression R
+--R solve : Expression(R) -> List(Equation(Expression(R)))
+--R solve : Equation(Expression(R)) -> List(Equation(Expression(R)))
+--R solve : (Equation(Expression(R)),Symbol) -> List(Equation(Expression(R)))
+--R solve : (Expression(R),Symbol) -> List(Equation(Expression(R)))
+--R solve : (List(Equation(Expression(R))),List(Symbol)) -> List(List(Equation(Expression(R))))
 --R
 --E 4
 
@@ -156899,11 +157252,11 @@ ViewDefaultsPackage():Exports == Implementation where
     viewPosDefault      :  () -> L NNI
       ++ viewPosDefault() returns the default x and y position of a
       ++ viewport window unless overriden explicityly, newly created
-      ++ viewports will have this x and y coordinate.
+      ++ viewports will have this X and Y coordinate.
     viewPosDefault      :  L NNI -> L NNI
       ++ viewPosDefault([x,y]) sets the default x and y position of a
       ++ viewport window unless overriden explicityly, newly created
-      ++ viewports will have this x and y coordinates x, y.
+      ++ viewports will have th X and Y coordinates x, y.
     viewSizeDefault : () -> L PI
       ++ viewSizeDefault() returns the default viewport width and height.
     viewSizeDefault : L PI -> L PI
@@ -157681,7 +158034,7 @@ ls : List Symbol := [x,y,z,t]
 --R 
 --R
 --R   (2)  [x,y,z,t]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 2
 
 --S 3 of 28
@@ -157689,7 +158042,7 @@ ls2 : List Symbol := [x,y,z,t,new()$Symbol]
 --R 
 --R
 --R   (3)  [x,y,z,t,%A]
---R                                                            Type: List Symbol
+--R                                                           Type: List(Symbol)
 --E 3
 
 --S 4 of 28
@@ -157706,7 +158059,7 @@ p1 := x**2*y*z + x*y**2*z + x*y*z**2 + x*y*z + x*y + x*z + y*z
 --R
 --R             2       2     2
 --R   (5)  x y z  + (x y  + (x  + x + 1)y + x)z + x y
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 5
 
 --S 6 of 28
@@ -157715,7 +158068,7 @@ p2 := x**2*y**2*z + x*y**2*z**2 + x**2*y*z + x*y*z + y*z + x + z
 --R
 --R           2 2     2 2     2
 --R   (6)  x y z  + (x y  + (x  + x + 1)y + 1)z + x
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 6
 
 --S 7 of 28
@@ -157724,7 +158077,7 @@ p3 := x**2*y**2*z**2 + x**2*y**2*z + x*y**2*z + x*y*z + x*z + z + 1
 --R
 --R         2 2 2      2      2
 --R   (7)  x y z  + ((x  + x)y  + x y + x + 1)z + 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 7
 
 --S 8 of 28
@@ -157738,7 +158091,7 @@ lp := [p1, p2, p3]
 --R    x y z  + (x y  + (x  + x + 1)y + 1)z + x,
 --R     2 2 2      2      2
 --R    x y z  + ((x  + x)y  + x y + x + 1)z + 1]
---R                                                Type: List Polynomial Integer
+--R                                              Type: List(Polynomial(Integer))
 --E 8
 
 --S 9 of 28
@@ -157790,7 +158143,7 @@ triangSolve(lp)$pack
 --R         3       2       3    2               2              2
 --R      ((z  - 2z)y  + (- z  - z  - 2z - 1)y - z  - z + 1)x + z  - 1}
 --R     ]
---R                                   Type: List RegularChain(Integer,[x,y,z,t])
+--R                                  Type: List(RegularChain(Integer,[x,y,z,t]))
 --E 9
 
 --S 10 of 28
@@ -157834,7 +158187,7 @@ univariateSolve(lp)$pack
 --R     ,
 --R                    2
 --R    [complexRoots= ?  + 5? + 1,coordinates= [x - 1,y - 1,z - %A]]]
---RType: List Record(complexRoots: SparseUnivariatePolynomial Integer,coordinates: List Polynomial Integer)
+--RType: List(Record(complexRoots: SparseUnivariatePolynomial(Integer),coordinates: List(Polynomial(Integer))))
 --E 10
 
 --S 11 of 28
@@ -158202,7 +158555,7 @@ lr := realSolve(lp)$pack
 --R            26117         705159          705159       705159
 --R       ]
 --R     ]
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 11
 
 --S 12 of 28
@@ -158444,7 +158797,7 @@ lr := realSolve(lp)$pack
 --R            65749979827872616963053217673201717237252096
 --R       ]
 --R     ]
---R                                             Type: List List Fraction Integer
+--R                                          Type: List(List(Fraction(Integer)))
 --E 13
 
 --S 14 of 28
@@ -158452,7 +158805,7 @@ lpr := positiveSolve(lp)$pack
 --R 
 --R
 --R   (14)  []
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 14
 
 --S 15 of 28
@@ -158461,7 +158814,7 @@ f0 := x**3 + y + z + t- 1
 --R
 --R                  3
 --R   (15)  z + y + x  + t - 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 15
 
 --S 16 of 28
@@ -158470,7 +158823,7 @@ f1 := x + y**3 + z + t -1
 --R
 --R              3
 --R   (16)  z + y  + x + t - 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 16
 
 --S 17 of 28
@@ -158479,7 +158832,7 @@ f2 := x + y + z**3 + t-1
 --R
 --R          3
 --R   (17)  z  + y + x + t - 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 17
 
 --S 18 of 28
@@ -158488,7 +158841,7 @@ f3 := x + y + z + t**3 -1
 --R
 --R                      3
 --R   (18)  z + y + x + t  - 1
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 18
 
 --S 19 of 28
@@ -158498,7 +158851,7 @@ lf := [f0, f1, f2, f3]
 --R   (19)
 --R             3              3              3                              3
 --R   [z + y + x  + t - 1,z + y  + x + t - 1,z  + y + x + t - 1,z + y + x + t  - 1]
---R                                                Type: List Polynomial Integer
+--R                                              Type: List(Polynomial(Integer))
 --E 19
 
 --S 20 of 28
@@ -158699,12 +159052,12 @@ lts := triangSolve(lf)$pack
 --R            3
 --R    {t,z - t  + 1,y - 1,x - 1}, {t - 1,z,y,x}, {t,z - 1,y,x}, {t,z,y - 1,x},
 --R    {t,z,y,x - 1}]
---R                                   Type: List RegularChain(Integer,[x,y,z,t])
+--R                                  Type: List(RegularChain(Integer,[x,y,z,t]))
 --E 20
 
 --S 21 of 28
 univariateSolve(lf)$pack
---R 
+--R
 --R
 --R   (21)
 --R   [[complexRoots= ?,coordinates= [x - 1,y - 1,z + 1,t - %A]],
@@ -158833,12 +159186,12 @@ univariateSolve(lf)$pack
 --R     ,
 --R                    3
 --R    [complexRoots= ?  + 3? - 1,coordinates= [x - %A,y - %A,z - %A,t - %A]]]
---RType: List Record(complexRoots: SparseUnivariatePolynomial Integer,coordinates: List Polynomial Integer)
+--RType: List(Record(complexRoots: SparseUnivariatePolynomial(Integer),coordinates: List(Polynomial(Integer))))
 --E 21
 
 --S 22 of 28
 ts := lts.1
---R 
+--R
 --R
 --R   (22)
 --R     2           3        3
@@ -158854,8 +159207,8 @@ ts := lts.1
 --R                                        Type: RegularChain(Integer,[x,y,z,t])
 --E 22
 
-univariateSolve(ts)$pack
 --S 23 of 28
+univariateSolve(ts)$pack
 --R 
 --R
 --R   (23)
@@ -158885,7 +159238,7 @@ univariateSolve(ts)$pack
 --R         [8x - %A  + 4%A - 8,2y + %A,8z + %A  - 8%A + 8,8t - %A  + 4%A - 8]
 --R       ]
 --R     ]
---RType: List Record(complexRoots: SparseUnivariatePolynomial Integer,coordinates: List Polynomial Integer)
+--RType: List(Record(complexRoots: SparseUnivariatePolynomial(Integer),coordinates: List(Polynomial(Integer))))
 --E 23
 
 --S 24 of 28
@@ -158893,7 +159246,7 @@ realSolve(ts)$pack
 --R 
 --R
 --R   (24)  []
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 24
 
 --S 25 of 28
@@ -159217,7 +159570,7 @@ lr2 := realSolve(lf)$pack
 --R            1     3   1   1     3   1   1     3   1
 --R    [%B18,- - %B18  + -,- - %B18  + -,- - %B18  + -]]
 --R            3         3   3         3   3         3
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 25
 
 --S 26 of 28
@@ -159235,7 +159588,7 @@ lpr2 := positiveSolve(lf)$pack
 --R                  1     3   1   1     3   1   1     3   1
 --R   (27)  [[%B40,- - %B40  + -,- - %B40  + -,- - %B40  + -]]
 --R                  3         3   3         3   3         3
---R                                 Type: List List RealClosure Fraction Integer
+--R                             Type: List(List(RealClosure(Fraction(Integer))))
 --E 27
 
 --S 28 of 28
@@ -159245,7 +159598,7 @@ lpr2 := positiveSolve(lf)$pack
 --R   (28)
 --R   [0.3221853546 2608559291, 0.3221853546 2608559291, 0.3221853546 2608559291,
 --R    0.3221853546 2608559291]
---R                                                             Type: List Float
+--R                                                            Type: List(Float)
 --E 28
 )spool
 )lisp (bye)
diff --git a/changelog b/changelog
index 700f1e1..f42a0e0 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20120312 tpd src/axiom-website/patches.html 20120312.01.tpd.patch
+20120312 tpd books/bookvol10.4 fix bug 7217
+20120312 tpd books/bookvol10.3 fix bug 7217
 20120303 tpd src/axiom-website/patches.html 20120303.01.tpd.patch
 20120303 tpd books/bookvol10.2 fix bug 7217
 20120302 tpd src/axiom-website/patches.html 20120302.03.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index e4a2765..f2213ff 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3840,5 +3840,7 @@ buglist add bugs found during regression test review<br/>
 src/input/* fix bug 7217<br/>
 <a href="patches/20120303.01.tpd.patch">20120303.01.tpd.patch</a>
 books/bookvol10.2 fix bug 7217<br/>
+<a href="patches/20120312.01.tpd.patch">20120312.01.tpd.patch</a>
+books/bookvol10.4, books/bookvol10.3 fix bug 7217<br/>
  </body>
 </html>
