diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index 0628cec..6cd581b 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -836,7 +836,8 @@ digraph pic {
 
 --S 1 of 1
 )show CoercibleTo
---R CoercibleTo S: Type  is a category constructor
+--R 
+--R CoercibleTo(S: Type)  is a category constructor
 --R Abbreviation for CoercibleTo is KOERCE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for KOERCE 
@@ -1051,7 +1052,8 @@ digraph pic {
 
 --S 1 of 1
 )show ConvertibleTo
---R ConvertibleTo S: Type  is a category constructor
+--R 
+--R ConvertibleTo(S: Type)  is a category constructor
 --R Abbreviation for ConvertibleTo is KONVERT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for KONVERT 
@@ -1557,13 +1559,14 @@ digraph pic {
 
 --S 1 of 1
 )show InnerEvalable
+--R 
 --R InnerEvalable(A: SetCategory,B: Type)  is a category constructor
 --R Abbreviation for InnerEvalable is IEVALAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for IEVALAB 
 --R
 --R------------------------------- Operations --------------------------------
---R eval : (%,A,B) -> %                   eval : (%,List A,List B) -> %
+--R eval : (%,A,B) -> %                   eval : (%,List(A),List(B)) -> %
 --R
 --E 1
 
@@ -1810,7 +1813,8 @@ digraph pic {
 
 --S 1 of 1
 )show PartialTranscendentalFunctions
---R PartialTranscendentalFunctions K: TranscendentalFunctionCategory  is a category constructor
+--R 
+--R PartialTranscendentalFunctions(K: TranscendentalFunctionCategory)  is a category constructor
 --R Abbreviation for PartialTranscendentalFunctions is PTRANFN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PTRANFN 
@@ -2049,14 +2053,15 @@ digraph pic {
 
 --S 1 of 1
 )show Patternable
---R Patternable R: Type  is a category constructor
+--R 
+--R Patternable(R: Type)  is a category constructor
 --R Abbreviation for Patternable is PATAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PATAB 
 --R
 --R------------------------------- Operations --------------------------------
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT))
 --R
 --E 1
 
@@ -2166,6 +2171,7 @@ digraph pic {
 
 --S 1 of 1
 )show PrimitiveFunctionCategory
+--R 
 --R PrimitiveFunctionCategory  is a category constructor
 --R Abbreviation for PrimitiveFunctionCategory is PRIMCAT 
 --R This constructor is exposed in this frame.
@@ -2173,7 +2179,7 @@ digraph pic {
 --R
 --R------------------------------- Operations --------------------------------
 --R integral : (%,Symbol) -> %           
---R integral : (%,SegmentBinding %) -> %
+--R integral : (%,SegmentBinding(%)) -> %
 --R
 --E 1
 
@@ -2262,14 +2268,15 @@ digraph pic {
 
 --S 1 of 1
 )show RadicalCategory
+--R 
 --R RadicalCategory  is a category constructor
 --R Abbreviation for RadicalCategory is RADCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RADCAT 
 --R
 --R------------------------------- Operations --------------------------------
---R ?**? : (%,Fraction Integer) -> %      nthRoot : (%,Integer) -> %
---R sqrt : % -> %                        
+--R nthRoot : (%,Integer) -> %            sqrt : % -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R
 --E 1
 
@@ -2377,7 +2384,8 @@ digraph pic {
 
 --S 1 of 1
 )show RetractableTo
---R RetractableTo S: Type  is a category constructor
+--R 
+--R RetractableTo(S: Type)  is a category constructor
 --R Abbreviation for RetractableTo is RETRACT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RETRACT 
@@ -3037,6 +3045,7 @@ digraph pic {
 
 --S 1 of 1
 )show CombinatorialOpsCategory
+--R 
 --R CombinatorialOpsCategory  is a category constructor
 --R Abbreviation for CombinatorialOpsCategory is COMBOPC 
 --R This constructor is exposed in this frame.
@@ -3047,8 +3056,8 @@ digraph pic {
 --R factorials : (%,Symbol) -> %          factorials : % -> %
 --R permutation : (%,%) -> %              product : (%,Symbol) -> %
 --R summation : (%,Symbol) -> %          
---R product : (%,SegmentBinding %) -> %
---R summation : (%,SegmentBinding %) -> %
+--R product : (%,SegmentBinding(%)) -> %
+--R summation : (%,SegmentBinding(%)) -> %
 --R
 --E 1
 
@@ -3328,14 +3337,16 @@ digraph pic {
 
 --S 1 of 1
 )show Evalable
---R Evalable R: SetCategory  is a category constructor
+--R 
+--R Evalable(R: SetCategory)  is a category constructor
 --R Abbreviation for Evalable is EVALAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for EVALAB 
 --R
 --R------------------------------- Operations --------------------------------
---R eval : (%,List Equation R) -> %       eval : (%,Equation R) -> %
---R eval : (%,R,R) -> %                   eval : (%,List R,List R) -> %
+--R eval : (%,Equation(R)) -> %           eval : (%,R,R) -> %
+--R eval : (%,List(R),List(R)) -> %      
+--R eval : (%,List(Equation(R))) -> %
 --R
 --E 1
 
@@ -3593,19 +3604,20 @@ digraph pic {
 
 --S 1 of 1
 )show FullyRetractableTo
---R FullyRetractableTo S: Type  is a category constructor
+--R 
+--R FullyRetractableTo(S: Type)  is a category constructor
 --R Abbreviation for FullyRetractableTo is FRETRCT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FRETRCT 
 --R
 --R------------------------------- Operations --------------------------------
 --R coerce : S -> %                       retract : % -> S
---R coerce : Integer -> % if S has RETRACT INT
---R coerce : Fraction Integer -> % if S has RETRACT FRAC INT
---R retract : % -> Integer if S has RETRACT INT
---R retract : % -> Fraction Integer if S has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT FRAC INT
+--R coerce : Integer -> % if S has RETRACT(INT)
+--R coerce : Fraction(Integer) -> % if S has RETRACT(FRAC(INT))
+--R retract : % -> Integer if S has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if S has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(FRAC(INT))
 --R retractIfCan : % -> Union(S,"failed")
 --R
 --E 1
@@ -3760,19 +3772,20 @@ digraph pic {
 
 --S 1 of 1
 )show FullyPatternMatchable
---R FullyPatternMatchable R: Type  is a category constructor
+--R 
+--R FullyPatternMatchable(R: Type)  is a category constructor
 --R Abbreviation for FullyPatternMatchable is FPATMAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FPATMAB 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean if R has PATMAB INT or R has PATMAB FLOAT
---R coerce : % -> OutputForm if R has PATMAB INT or R has PATMAB FLOAT
---R hash : % -> SingleInteger if R has PATMAB INT or R has PATMAB FLOAT
---R latex : % -> String if R has PATMAB INT or R has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT
---R ?~=? : (%,%) -> Boolean if R has PATMAB INT or R has PATMAB FLOAT
+--R ?=? : (%,%) -> Boolean if R has PATMAB(INT) or R has PATMAB(FLOAT)
+--R coerce : % -> OutputForm if R has PATMAB(INT) or R has PATMAB(FLOAT)
+--R hash : % -> SingleInteger if R has PATMAB(INT) or R has PATMAB(FLOAT)
+--R latex : % -> String if R has PATMAB(INT) or R has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT)
+--R ?~=? : (%,%) -> Boolean if R has PATMAB(INT) or R has PATMAB(FLOAT)
 --R
 --E 1
 
@@ -4038,15 +4051,17 @@ digraph pic {
 
 --S 1 of 1
 )show PlottablePlaneCurveCategory
+--R 
 --R PlottablePlaneCurveCategory  is a category constructor
 --R Abbreviation for PlottablePlaneCurveCategory is PPCURVE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PPCURVE 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : % -> OutputForm              xRange : % -> Segment DoubleFloat
---R yRange : % -> Segment DoubleFloat    
---R listBranches : % -> List List Point DoubleFloat
+--R coerce : % -> OutputForm             
+--R listBranches : % -> List(List(Point(DoubleFloat)))
+--R xRange : % -> Segment(DoubleFloat)
+--R yRange : % -> Segment(DoubleFloat)
 --R
 --E 1
 
@@ -4169,15 +4184,18 @@ digraph pic {
 
 --S 1 of 1
 )show PlottableSpaceCurveCategory
+--R 
 --R PlottableSpaceCurveCategory  is a category constructor
 --R Abbreviation for PlottableSpaceCurveCategory is PSCURVE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PSCURVE 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : % -> OutputForm              xRange : % -> Segment DoubleFloat
---R yRange : % -> Segment DoubleFloat     zRange : % -> Segment DoubleFloat
---R listBranches : % -> List List Point DoubleFloat
+--R coerce : % -> OutputForm             
+--R listBranches : % -> List(List(Point(DoubleFloat)))
+--R xRange : % -> Segment(DoubleFloat)
+--R yRange : % -> Segment(DoubleFloat)
+--R zRange : % -> Segment(DoubleFloat)
 --R
 --E 1
 
@@ -4418,7 +4436,8 @@ digraph pic {
 
 --S 1 of 1
 )show SegmentCategory
---R SegmentCategory S: Type  is a category constructor
+--R 
+--R SegmentCategory(S: Type)  is a category constructor
 --R Abbreviation for SegmentCategory is SEGCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SEGCAT 
@@ -5136,6 +5155,7 @@ digraph pic {
 
 --S 1 of 1
 )show BlowUpMethodCategory
+--R 
 --R BlowUpMethodCategory  is a category constructor
 --R Abbreviation for BlowUpMethodCategory is BLMETCT 
 --R This constructor is exposed in this frame.
@@ -5143,7 +5163,7 @@ digraph pic {
 --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
@@ -5288,20 +5308,21 @@ digraph pic {
 
 --S 1 of 1
 )show DesingTreeCategory
---R DesingTreeCategory S: SetCategory  is a category constructor
+--R 
+--R DesingTreeCategory(S: SetCategory)  is a category constructor
 --R Abbreviation for DesingTreeCategory is DSTRCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DSTRCAT 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                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 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
@@ -5310,21 +5331,21 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -5526,25 +5547,27 @@ digraph pic {
 
 --S 1 of 1
 )show FortranFunctionCategory
+--R 
 --R FortranFunctionCategory  is a category constructor
 --R Abbreviation for FortranFunctionCategory is FORTFN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FORTFN 
 --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 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 retract : Polynomial(Float) -> %      retract : Expression(Float) -> %
+--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
 
@@ -5717,16 +5740,17 @@ digraph pic {
 
 --S 1 of 1
 )show FortranMatrixCategory
+--R 
 --R FortranMatrixCategory  is a category constructor
 --R Abbreviation for FortranMatrixCategory is FMC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FMC 
 --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
 
@@ -5851,27 +5875,28 @@ digraph pic {
 
 --S 1 of 1
 )show FortranMatrixFunctionCategory
+--R 
 --R FortranMatrixFunctionCategory  is a category constructor
 --R Abbreviation for FortranMatrixFunctionCategory is FMFUN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FMFUN 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---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 : 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
 
@@ -6045,16 +6070,17 @@ digraph pic {
 
 --S 1 of 1
 )show FortranVectorCategory
+--R 
 --R FortranVectorCategory  is a category constructor
 --R Abbreviation for FortranVectorCategory is FVC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FVC 
 --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
 
@@ -6177,27 +6203,28 @@ digraph pic {
 
 --S 1 of 1
 )show FortranVectorFunctionCategory
+--R 
 --R FortranVectorFunctionCategory  is a category constructor
 --R Abbreviation for FortranVectorFunctionCategory is FVFUN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FVFUN 
 --R
 --R------------------------------- Operations --------------------------------
---R coerce : FortranCode -> %             coerce : List FortranCode -> %
+--R coerce : FortranCode -> %             coerce : List(FortranCode) -> %
 --R coerce : % -> OutputForm              outputAsFortran : % -> Void
---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 : 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
 
@@ -6370,7 +6397,8 @@ digraph pic {
 
 --S 1 of 1
 )show FullyEvalableOver
---R FullyEvalableOver R: SetCategory  is a category constructor
+--R 
+--R FullyEvalableOver(R: SetCategory)  is a category constructor
 --R Abbreviation for FullyEvalableOver is FEVALAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FEVALAB 
@@ -6378,11 +6406,11 @@ digraph pic {
 --R------------------------------- Operations --------------------------------
 --R map : ((R -> R),%) -> %              
 --R ?.? : (%,R) -> % if R has ELTAB(R,R)
---R eval : (%,List R,List R) -> % if R has EVALAB R
---R eval : (%,R,R) -> % if R has EVALAB R
---R eval : (%,Equation R) -> % if R has EVALAB R
---R eval : (%,List Equation R) -> % if R has EVALAB R
---R eval : (%,List Symbol,List R) -> % if R has IEVALAB(SYMBOL,R)
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R)
+--R eval : (%,R,R) -> % if R has EVALAB(R)
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R)
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R)
+--R eval : (%,List(Symbol),List(R)) -> % if R has IEVALAB(SYMBOL,R)
 --R eval : (%,Symbol,R) -> % if R has IEVALAB(SYMBOL,R)
 --R
 --E 1
@@ -7237,7 +7265,8 @@ digraph pic {
 
 --S 1 of 1
 )show HomogeneousAggregate
---R HomogeneousAggregate S: Type  is a category constructor
+--R 
+--R HomogeneousAggregate(S: Type)  is a category constructor
 --R Abbreviation for HomogeneousAggregate is HOAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for HOAGG 
@@ -7252,19 +7281,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -7693,6 +7722,7 @@ digraph pic {
 
 --S 1 of 1
 )show LiouvillianFunctionCategory
+--R 
 --R LiouvillianFunctionCategory  is a category constructor
 --R Abbreviation for LiouvillianFunctionCategory is LFCAT 
 --R This constructor is exposed in this frame.
@@ -7718,7 +7748,7 @@ digraph pic {
 --R sech : % -> %                         sin : % -> %
 --R sinh : % -> %                         tan : % -> %
 --R tanh : % -> %                        
---R integral : (%,SegmentBinding %) -> %
+--R integral : (%,SegmentBinding(%)) -> %
 --R
 --E 1
 
@@ -8119,6 +8149,7 @@ digraph pic {
 
 --S 1 of 1
 )show NumericalIntegrationCategory
+--R 
 --R NumericalIntegrationCategory  is a category constructor
 --R Abbreviation for NumericalIntegrationCategory is NUMINT 
 --R This constructor is exposed in this frame.
@@ -8128,10 +8159,10 @@ digraph pic {
 --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
 
@@ -8315,6 +8346,7 @@ digraph pic {
 
 --S 1 of 1
 )show NumericalOptimizationCategory
+--R 
 --R NumericalOptimizationCategory  is a category constructor
 --R Abbreviation for NumericalOptimizationCategory is OPTCAT 
 --R This constructor is exposed in this frame.
@@ -8324,10 +8356,10 @@ digraph pic {
 --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
 
@@ -8505,6 +8537,7 @@ digraph pic {
 
 --S 1 of 1
 )show OrdinaryDifferentialEquationsSolverCategory
+--R 
 --R OrdinaryDifferentialEquationsSolverCategory  is a category constructor
 --R Abbreviation for OrdinaryDifferentialEquationsSolverCategory is ODECAT 
 --R This constructor is exposed in this frame.
@@ -8514,8 +8547,8 @@ digraph pic {
 --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
 
@@ -8851,6 +8884,7 @@ digraph pic {
 
 --S 1 of 1
 )show PartialDifferentialEquationsSolverCategory
+--R 
 --R PartialDifferentialEquationsSolverCategory  is a category constructor
 --R Abbreviation for PartialDifferentialEquationsSolverCategory is PDECAT 
 --R This constructor is exposed in this frame.
@@ -8860,8 +8894,8 @@ digraph pic {
 --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
 
@@ -9049,7 +9083,8 @@ digraph pic {
 
 --S 1 of 1
 )show PatternMatchable
---R PatternMatchable S: SetCategory  is a category constructor
+--R 
+--R PatternMatchable(S: SetCategory)  is a category constructor
 --R Abbreviation for PatternMatchable is PATMAB 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PATMAB 
@@ -9058,7 +9093,7 @@ digraph pic {
 --R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R ?~=? : (%,%) -> Boolean              
---R patternMatch : (%,Pattern S,PatternMatchResult(S,%)) -> PatternMatchResult(S,%)
+--R patternMatch : (%,Pattern(S),PatternMatchResult(S,%)) -> PatternMatchResult(S,%)
 --R
 --E 1
 
@@ -9189,13 +9224,14 @@ digraph pic {
 
 --S 1 of 1
 )show RealRootCharacterizationCategory
---R RealRootCharacterizationCategory(TheField: Join(OrderedRing,Field),ThePols: UnivariatePolynomialCategory t#1)  is a category constructor
+--R 
+--R RealRootCharacterizationCategory(TheField: Join(OrderedRing,Field),ThePols: UnivariatePolynomialCategory(t#1))  is a category constructor
 --R Abbreviation for RealRootCharacterizationCategory is RRCC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RRCC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?=? : (%,%) -> Boolean                allRootsOf : ThePols -> List %
+--R ?=? : (%,%) -> Boolean                allRootsOf : ThePols -> List(%)
 --R coerce : % -> OutputForm              definingPolynomial : % -> ThePols
 --R hash : % -> SingleInteger             latex : % -> String
 --R sign : (ThePols,%) -> Integer         zero? : (ThePols,%) -> Boolean
@@ -9417,7 +9453,8 @@ digraph pic {
 
 --S 1 of 1
 )show SegmentExpansionCategory
---R SegmentExpansionCategory(S: OrderedRing,L: StreamAggregate t#1)  is a category constructor
+--R 
+--R SegmentExpansionCategory(S: OrderedRing,L: StreamAggregate(t#1))  is a category constructor
 --R Abbreviation for SegmentExpansionCategory is SEGXCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SEGXCAT 
@@ -9425,7 +9462,7 @@ digraph pic {
 --R------------------------------- Operations --------------------------------
 --R BY : (%,Integer) -> %                 ?..? : (S,S) -> %
 --R convert : S -> %                      expand : % -> L
---R expand : List % -> L                  hi : % -> S
+--R expand : List(%) -> L                 hi : % -> S
 --R high : % -> S                         incr : % -> Integer
 --R lo : % -> S                           low : % -> S
 --R map : ((S -> S),%) -> L               segment : (S,S) -> %
@@ -9868,6 +9905,7 @@ digraph pic {
 
 --S 1 of 1
 )show SExpressionCategory
+--R 
 --R SExpressionCategory(Str: SetCategory,Sym: SetCategory,Int: SetCategory,Flt: SetCategory,Expr: SetCategory)  is a category constructor
 --R Abbreviation for SExpressionCategory is SEXCAT 
 --R This constructor is exposed in this frame.
@@ -9879,8 +9917,8 @@ digraph pic {
 --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
@@ -10256,48 +10294,49 @@ digraph pic {
 
 --S 1 of 1
 )show ThreeSpaceCategory
---R ThreeSpaceCategory R: Ring  is a category constructor
+--R 
+--R ThreeSpaceCategory(R: Ring)  is a category constructor
 --R Abbreviation for ThreeSpaceCategory is SPACEC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SPACEC 
 --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
 
@@ -10954,26 +10993,27 @@ digraph pic {
 
 --S 1 of 1
 )show AffineSpaceCategory
---R AffineSpaceCategory K: Field  is a category constructor
+--R 
+--R AffineSpaceCategory(K: Field)  is a category constructor
 --R Abbreviation for AffineSpaceCategory is AFSPCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for AFSPCAT 
 --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
 
@@ -11182,13 +11222,14 @@ digraph pic {
 
 --S 1 of 1
 )show BagAggregate
---R BagAggregate S: Type  is a category constructor
+--R 
+--R BagAggregate(S: Type)  is a category constructor
 --R Abbreviation for BagAggregate is BGAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for BGAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R bag : List S -> %                     copy : % -> %
+--R bag : List(S) -> %                    copy : % -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
 --R insert! : (S,%) -> %                  inspect : % -> S
@@ -11199,19 +11240,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -11560,13 +11601,14 @@ digraph pic {
 
 --S 1 of 1
 )show Collection
---R Collection S: Type  is a category constructor
+--R 
+--R Collection(S: Type)  is a category constructor
 --R Abbreviation for Collection is CLAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for CLAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R construct : List S -> %               copy : % -> %
+--R construct : List(S) -> %              copy : % -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                map : ((S -> S),%) -> %
 --R sample : () -> %                     
@@ -11574,13 +11616,13 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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 find : ((S -> Boolean),%) -> Union(S,"failed")
 --R hash : % -> SingleInteger if S has SETCAT
@@ -11588,9 +11630,9 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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,S) -> S if S has SETCAT and $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate
@@ -11888,7 +11930,8 @@ digraph pic {
 
 --S 1 of 1
 )show DifferentialVariableCategory
---R DifferentialVariableCategory S: OrderedSet  is a category constructor
+--R 
+--R DifferentialVariableCategory(S: OrderedSet)  is a category constructor
 --R Abbreviation for DifferentialVariableCategory is DVARCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DVARCAT 
@@ -12168,6 +12211,7 @@ digraph pic {
 
 --S 1 of 1
 )show ExpressionSpace
+--R 
 --R ExpressionSpace  is a category constructor
 --R Abbreviation for ExpressionSpace is ES 
 --R This constructor is exposed in this frame.
@@ -12177,45 +12221,47 @@ digraph pic {
 --R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
 --R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
 --R ?>=? : (%,%) -> Boolean               belong? : BasicOperator -> Boolean
---R box : List % -> %                     box : % -> %
---R coerce : Kernel % -> %                coerce : % -> OutputForm
+--R box : List(%) -> %                    box : % -> %
+--R coerce : Kernel(%) -> %               coerce : % -> OutputForm
 --R distribute : (%,%) -> %               distribute : % -> %
 --R elt : (BasicOperator,%,%) -> %        elt : (BasicOperator,%) -> %
---R eval : (%,List %,List %) -> %         eval : (%,%,%) -> %
---R eval : (%,Equation %) -> %            eval : (%,List Equation %) -> %
---R eval : (%,Kernel %,%) -> %            freeOf? : (%,Symbol) -> Boolean
+--R eval : (%,%,%) -> %                   eval : (%,Equation(%)) -> %
+--R eval : (%,Kernel(%),%) -> %           freeOf? : (%,Symbol) -> Boolean
 --R freeOf? : (%,%) -> Boolean            hash : % -> SingleInteger
 --R height : % -> NonNegativeInteger      is? : (%,Symbol) -> Boolean
---R kernel : (BasicOperator,%) -> %       kernels : % -> List Kernel %
---R latex : % -> String                   map : ((% -> %),Kernel %) -> %
---R max : (%,%) -> %                      min : (%,%) -> %
---R paren : List % -> %                   paren : % -> %
---R retract : % -> Kernel %               subst : (%,Equation %) -> %
---R tower : % -> List Kernel %            ?~=? : (%,%) -> Boolean
+--R kernel : (BasicOperator,%) -> %       kernels : % -> List(Kernel(%))
+--R latex : % -> String                   max : (%,%) -> %
+--R min : (%,%) -> %                      paren : List(%) -> %
+--R paren : % -> %                        retract : % -> Kernel(%)
+--R subst : (%,Equation(%)) -> %          tower : % -> List(Kernel(%))
+--R ?~=? : (%,%) -> Boolean              
 --R definingPolynomial : % -> % if $ has RING
---R elt : (BasicOperator,List %) -> %
+--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 retractIfCan : % -> Union(Kernel %,"failed")
---R subst : (%,List Kernel %,List %) -> %
---R subst : (%,List Equation %) -> %
+--R operators : % -> List(BasicOperator)
+--R retractIfCan : % -> Union(Kernel(%),"failed")
+--R subst : (%,List(Kernel(%)),List(%)) -> %
+--R subst : (%,List(Equation(%))) -> %
 --R
 --E 1
 
@@ -12967,6 +13013,7 @@ digraph pic {
 
 --S 1 of 1
 )show IndexedAggregate
+--R 
 --R IndexedAggregate(Index: SetCategory,Entry: Type)  is a category constructor
 --R Abbreviation for IndexedAggregate is IXAGG 
 --R This constructor is exposed in this frame.
@@ -12975,9 +13022,9 @@ digraph pic {
 --R------------------------------- Operations --------------------------------
 --R copy : % -> %                         ?.? : (%,Index) -> Entry
 --R elt : (%,Index,Entry) -> Entry        empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List Entry
+--R empty? : % -> Boolean                 entries : % -> List(Entry)
 --R eq? : (%,%) -> Boolean                index? : (Index,%) -> Boolean
---R indices : % -> List Index             map : ((Entry -> Entry),%) -> %
+--R indices : % -> List(Index)            map : ((Entry -> Entry),%) -> %
 --R qelt : (%,Index) -> Entry             sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if Entry has SETCAT
@@ -12986,10 +13033,10 @@ digraph pic {
 --R count : (Entry,%) -> NonNegativeInteger if Entry has SETCAT and $ has finiteAggregate
 --R count : ((Entry -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R entry? : (Entry,%) -> Boolean if $ has finiteAggregate and Entry has SETCAT
---R eval : (%,List Entry,List 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 : (%,Equation Entry) -> % if Entry has EVALAB Entry and Entry has SETCAT
---R eval : (%,List Equation 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 : (%,Entry,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 : (%,List(Equation(Entry))) -> % if Entry has EVALAB(Entry) and Entry has SETCAT
 --R every? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R fill! : (%,Entry) -> % if $ has shallowlyMutable
 --R first : % -> Entry if Index has ORDSET
@@ -12999,10 +13046,10 @@ digraph pic {
 --R map! : ((Entry -> Entry),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Index if Index has ORDSET
 --R member? : (Entry,%) -> Boolean if Entry has SETCAT and $ has finiteAggregate
---R members : % -> List Entry if $ has finiteAggregate
+--R members : % -> List(Entry) if $ has finiteAggregate
 --R minIndex : % -> Index if Index has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Entry if $ has finiteAggregate
+--R parts : % -> List(Entry) if $ has finiteAggregate
 --R qsetelt! : (%,Index,Entry) -> Entry if $ has shallowlyMutable
 --R setelt : (%,Index,Entry) -> Entry if $ has shallowlyMutable
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -13890,28 +13937,29 @@ digraph pic {
 
 --S 1 of 1
 )show PlacesCategory
---R PlacesCategory(K: Field,PCS: LocalPowerSeriesCategory t#1)  is a category constructor
+--R 
+--R PlacesCategory(K: Field,PCS: LocalPowerSeriesCategory(t#1))  is a category constructor
 --R Abbreviation for PlacesCategory is PLACESC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PLACESC 
 --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
 
@@ -14109,28 +14157,29 @@ digraph pic {
 
 --S 1 of 1
 )show ProjectiveSpaceCategory
---R ProjectiveSpaceCategory K: Field  is a category constructor
+--R 
+--R ProjectiveSpaceCategory(K: Field)  is a category constructor
 --R Abbreviation for ProjectiveSpaceCategory is PRSPCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PRSPCAT 
 --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
 
@@ -14357,18 +14406,19 @@ digraph pic {
 
 --S 1 of 1
 )show RecursiveAggregate
---R RecursiveAggregate S: Type  is a category constructor
+--R 
+--R RecursiveAggregate(S: Type)  is a category constructor
 --R Abbreviation for RecursiveAggregate is RCAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RCAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                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 : () -> %                      value : % -> S
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -14377,21 +14427,21 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -14654,7 +14704,8 @@ first column in an array and vice versa.
 
 --S 1 of 1
 )show TwoDimensionalArrayCategory
---R TwoDimensionalArrayCategory(R: Type,Row: FiniteLinearAggregate t#1,Col: FiniteLinearAggregate t#1)  is a category constructor
+--R 
+--R TwoDimensionalArrayCategory(R: Type,Row: FiniteLinearAggregate(t#1),Col: FiniteLinearAggregate(t#1))  is a category constructor
 --R Abbreviation for TwoDimensionalArrayCategory is ARR2CAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ARR2CAT 
@@ -14669,7 +14720,7 @@ first column in an array and vice versa.
 --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
@@ -14678,16 +14729,16 @@ first column in an array and vice versa.
 --R coerce : % -> OutputForm if R has SETCAT
 --R count : (R,%) -> NonNegativeInteger if R has SETCAT and $ has finiteAggregate
 --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 R has SETCAT and $ has finiteAggregate
---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
@@ -15264,20 +15315,21 @@ digraph pic {
 
 --S 1 of 1
 )show BinaryRecursiveAggregate
---R BinaryRecursiveAggregate S: Type  is a category constructor
+--R 
+--R BinaryRecursiveAggregate(S: Type)  is a category constructor
 --R Abbreviation for BinaryRecursiveAggregate is BRAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for BRAGG 
 --R
 --R------------------------------- Operations --------------------------------
---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 nodes : % -> List %                   right : % -> %
+--R nodes : % -> List(%)                  right : % -> %
 --R sample : () -> %                      value : % -> S
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if S has SETCAT
@@ -15286,21 +15338,21 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -15792,14 +15844,15 @@ digraph pic {
 
 --S 1 of 1
 )show DictionaryOperations
---R DictionaryOperations S: SetCategory  is a category constructor
+--R 
+--R DictionaryOperations(S: SetCategory)  is a category constructor
 --R Abbreviation for DictionaryOperations is DIOPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DIOPS 
 --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 : () -> %                  empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R extract! : % -> S                     insert! : (S,%) -> %
@@ -15809,13 +15862,13 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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 find : ((S -> Boolean),%) -> Union(S,"failed")
 --R hash : % -> SingleInteger if S has SETCAT
@@ -15823,9 +15876,9 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -16101,20 +16154,21 @@ digraph pic {
 
 --S 1 of 1
 )show DoublyLinkedAggregate
---R DoublyLinkedAggregate S: Type  is a category constructor
+--R 
+--R DoublyLinkedAggregate(S: Type)  is a category constructor
 --R Abbreviation for DoublyLinkedAggregate is DLAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DLAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                copy : % -> %
+--R children : % -> List(%)               copy : % -> %
 --R cyclic? : % -> Boolean                distance : (%,%) -> Integer
 --R ?.value : (%,value) -> S              empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R head : % -> %                         last : % -> S
---R leaf? : % -> Boolean                  leaves : % -> List S
+--R leaf? : % -> Boolean                  leaves : % -> List(S)
 --R map : ((S -> S),%) -> %               next : % -> %
---R nodes : % -> List %                   previous : % -> %
+--R nodes : % -> List(%)                  previous : % -> %
 --R sample : () -> %                      tail : % -> %
 --R value : % -> S                       
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
@@ -16125,21 +16179,21 @@ digraph pic {
 --R concat! : (%,%) -> % if $ has shallowlyMutable
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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 setnext! : (%,%) -> % if $ has shallowlyMutable
 --R setprevious! : (%,%) -> % if $ has shallowlyMutable
@@ -16610,20 +16664,21 @@ digraph pic {
 
 --S 1 of 1
 )show LinearAggregate
---R LinearAggregate S: Type  is a category constructor
+--R 
+--R LinearAggregate(S: Type)  is a category constructor
 --R Abbreviation for LinearAggregate is LNAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LNAGG 
 --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               sample : () -> %
@@ -16631,16 +16686,16 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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")
@@ -16651,10 +16706,10 @@ digraph pic {
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --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 qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
@@ -16663,7 +16718,7 @@ digraph pic {
 --R remove : (S,%) -> % if S has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate
 --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 swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
@@ -17039,7 +17094,7 @@ z:Matrix(INT):=zero(3,3)
 --R   (5)  |0  0  0|
 --R        |       |
 --R        +0  0  0+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 5
 
 --S 6 of 59
@@ -17053,7 +17108,7 @@ matrix [[1,2,3],[4,5,6],[7,8,9],[1,1,1]]
 --R        |7  8  9|
 --R        |       |
 --R        +1  1  1+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 6
 
 --S 7 of 59
@@ -17065,7 +17120,7 @@ z:Matrix(INT):=scalarMatrix(3,5)
 --R   (7)  |0  5  0|
 --R        |       |
 --R        +0  0  5+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 7
 
 --S 8 of 59
@@ -17077,7 +17132,7 @@ diagonalMatrix [1,2,3]
 --R   (8)  |0  2  0|
 --R        |       |
 --R        +0  0  3+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 8
 
 --S 9 of 59
@@ -17091,7 +17146,7 @@ diagonalMatrix [matrix [[1,2],[3,4]], matrix [[4,5],[6,7]]]
 --R        |0  0  4  5|
 --R        |          |
 --R        +0  0  6  7+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 9
 
 --S 10 of 59
@@ -17103,7 +17158,7 @@ coerce([1,2,3])@Matrix(INT)
 --R   (10)  |2|
 --R         | |
 --R         +3+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 10
 
 --S 11 of 59
@@ -17111,7 +17166,7 @@ transpose([1,2,3])@Matrix(INT)
 --R 
 --R
 --R   (11)  [1  2  3]
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 11
 
 --S 12 of 59
@@ -17127,7 +17182,7 @@ transpose matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  8   27  64   125|
 --R         |                   |
 --R         +1  16  81  256  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 12
 
 --S 13 of 59
@@ -17139,7 +17194,7 @@ squareTop matrix [[j**i for i in 0..2] for j in 1..5]
 --R   (13)  |1  2  4|
 --R         |       |
 --R         +1  3  9+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 13
 
 --S 14 of 59
@@ -17155,7 +17210,7 @@ t1:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 14
 
 --S 15 of 59
@@ -17171,7 +17226,7 @@ horizConcat(t1,t1)
 --R         |1  4  16  64   256  1  4  16  64   256|
 --R         |                                      |
 --R         +1  5  25  125  625  1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 15
 
 --S 16 of 59
@@ -17187,7 +17242,7 @@ t2:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 16
 
 --S 17 of 59
@@ -17213,7 +17268,7 @@ vertConcat(t2,t2)
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 17
 
 --S 18 of 59
@@ -17229,7 +17284,7 @@ t3:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 18
 
 --S 19 of 59
@@ -17238,7 +17293,7 @@ listOfLists t3
 --R
 --R   (19)
 --R   [[1,1,1,1,1],[1,2,4,8,16],[1,3,9,27,81],[1,4,16,64,256],[1,5,25,125,625]]
---R                                                      Type: List List Integer
+--R                                                    Type: List(List(Integer))
 --E 19
 
 --S 20 of 59
@@ -17254,7 +17309,7 @@ t4:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 20
 
 --S 21 of 59
@@ -17278,7 +17333,7 @@ t5:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 22
 
 --S 23 of 59
@@ -17302,7 +17357,7 @@ t6:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 24
 
 --S 25 of 59
@@ -17318,7 +17373,7 @@ swapRows!(t6,2,4)
 --R         |1  2  4    8   16 |
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 25
 
 --S 26 of 59
@@ -17334,7 +17389,7 @@ t7:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 26
 
 --S 27 of 59
@@ -17350,7 +17405,7 @@ swapColumns!(t7,2,4)
 --R         |1  64   16  4  256|
 --R         |                  |
 --R         +1  125  25  5  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 27
 
 --S 28 of 59
@@ -17366,7 +17421,7 @@ t8:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 28
 
 --S 29 of 59
@@ -17378,7 +17433,7 @@ subMatrix(t8,1,3,2,4)
 --R   (29)  |2  4  8 |
 --R         |        |
 --R         +3  9  27+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 29
 
 --S 30 of 59
@@ -17394,7 +17449,7 @@ t9:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 30
 
 --S 31 of 59
@@ -17410,7 +17465,7 @@ setsubMatrix!(t9,2,2,matrix [[3,3],[3,3]])
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 31
 
 --S 32 of 59
@@ -17426,7 +17481,7 @@ t0:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 32
 
 --S 33 of 59
@@ -17442,7 +17497,7 @@ t0+t0
 --R         |2  8   32  128  512 |
 --R         |                    |
 --R         +2  10  50  250  1250+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 33
 
 --S 34 of 59
@@ -17458,7 +17513,7 @@ t0-t0
 --R         |0  0  0  0  0|
 --R         |             |
 --R         +0  0  0  0  0+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 34
 
 --S 35 of 59
@@ -17474,7 +17529,7 @@ t0-t0
 --R         |- 1  - 4  - 16  - 64   - 256|
 --R         |                            |
 --R         +- 1  - 5  - 25  - 125  - 625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 35
 
 --S 36 of 59
@@ -17490,7 +17545,7 @@ t0*t0
 --R         |341  1593  7585   36561  177745|
 --R         |                               |
 --R         +781  3711  17871  86841  424731+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 36
 
 --S 37 of 59
@@ -17516,7 +17571,7 @@ t0*t0
 --R         |1  5  25  125  625|
 --R         |-  -  --  ---  ---|
 --R         +3  3   3   3    3 +
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 37
 
 --S 38 of 59
@@ -17532,7 +17587,7 @@ m:=matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |1  4  16  64   256|
 --R         |                  |
 --R         +1  5  25  125  625+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 38
 
 --S 39 of 59
@@ -17558,7 +17613,7 @@ t0*1/3
 --R         |1  5  25  125  625|
 --R         |-  -  --  ---  ---|
 --R         +3  3   3   3    3 +
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 39
 
 --S 40 of 59
@@ -17574,7 +17629,7 @@ t0*1/3
 --R         |3  12  48  192  768 |
 --R         |                    |
 --R         +3  15  75  375  1875+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 40
 
 --S 41 of 59
@@ -17590,7 +17645,7 @@ c:=coerce([1,2,3,4,5])@Matrix(INT)
 --R         |4|
 --R         | |
 --R         +5+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 41
 
 --S 42 of 59
@@ -17606,7 +17661,7 @@ t0*c
 --R         |1593|
 --R         |    |
 --R         +3711+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 42
 
 --S 43 of 59
@@ -17614,7 +17669,7 @@ r:=transpose([1,2,3,4,5])@Matrix(INT)
 --R 
 --R
 --R   (43)  [1  2  3  4  5]
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 43
 
 --S 44 of 59
@@ -17622,7 +17677,7 @@ r*t0
 --R 
 --R
 --R   (44)  [15  55  225  979  4425]
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 44
 
 --S 45 of 59
@@ -17638,7 +17693,7 @@ t0**3
 --R         |223825  1061251  5103579   24775909  121090455|
 --R         |                                              |
 --R         +533935  2532835  12184195  59162185  289195879+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 45
 
 --S 46 of 59
@@ -17654,7 +17709,7 @@ t10:=matrix [[2**i for i in 2..4] for j in 1..5]
 --R         |4  8  16|
 --R         |        |
 --R         +4  8  16+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 46
 
 --S 47 of 59
@@ -17670,7 +17725,7 @@ exquo(t10,2)
 --R         |2  4  8|
 --R         |       |
 --R         +2  4  8+
---R                                              Type: Union(Matrix Integer,...)
+--R                                             Type: Union(Matrix(Integer),...)
 --E 47
 
 --S 48 of 59
@@ -17686,7 +17741,7 @@ t10/4
 --R         |1  2  4|
 --R         |       |
 --R         +1  2  4+
---R                                                Type: Matrix Fraction Integer
+--R                                              Type: Matrix(Fraction(Integer))
 --E 48
 
 --S 49 of 59
@@ -17702,7 +17757,7 @@ rowEchelon matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |0  0  0  6  12|
 --R         |              |
 --R         +0  0  0  0  24+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 49
 
 --S 50 of 59
@@ -17710,7 +17765,7 @@ columnSpace matrix [[1,2,3],[4,5,6],[7,8,9],[1,1,1]]
 --R 
 --R
 --R   (50)  [[1,4,7,1],[2,5,8,1]]
---R                                                    Type: List Vector Integer
+--R                                                  Type: List(Vector(Integer))
 --E 50
 
 --S 51 of 59
@@ -17734,7 +17789,7 @@ nullSpace matrix [[1,2,3],[4,5,6],[7,8,9]]
 --R 
 --R
 --R   (53)  [[1,- 2,1]]
---R                                                    Type: List Vector Integer
+--R                                                  Type: List(Vector(Integer))
 --E 53
 
 --S 54 of 59
@@ -17782,7 +17837,7 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |  1     1    1      1     1 |
 --R         | --   - -    -    - -    -- |
 --R         + 24     6    4      6    24 +
---R                                     Type: Union(Matrix Fraction Integer,...)
+--R                                   Type: Union(Matrix(Fraction(Integer)),...)
 --E 57
 
 --S 58 of 59
@@ -17798,13 +17853,13 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R         |341  1593  7585   36561  177745|
 --R         |                               |
 --R         +781  3711  17871  86841  424731+
---R                                                         Type: Matrix Integer
+--R                                                        Type: Matrix(Integer)
 --E 58
 
 --S 59 of 59
 )show MatrixCategory
 --R 
---R MatrixCategory(R: Ring,Row: FiniteLinearAggregate t#1,Col: FiniteLinearAggregate t#1)  is a category constructor
+--R MatrixCategory(R: Ring,Row: FiniteLinearAggregate(t#1),Col: FiniteLinearAggregate(t#1))  is a category constructor
 --R Abbreviation for MatrixCategory is MATCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MATCAT 
@@ -17817,17 +17872,17 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R ?-? : (%,%) -> %                      antisymmetric? : % -> Boolean
 --R coerce : Col -> %                     column : (%,Integer) -> Col
 --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       row : (%,Integer) -> Row
 --R sample : () -> %                      setRow! : (%,Integer,Row) -> %
 --R square? : % -> Boolean                squareTop : % -> %
@@ -17840,15 +17895,15 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R ?=? : (%,%) -> Boolean if R has SETCAT
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R coerce : % -> OutputForm if R has SETCAT
---R columnSpace : % -> List Col if R has EUCDOM
+--R columnSpace : % -> List(Col) if R has EUCDOM
 --R count : (R,%) -> NonNegativeInteger if R has SETCAT and $ has finiteAggregate
 --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
@@ -17856,11 +17911,11 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R latex : % -> String if R has SETCAT
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R member? : (R,%) -> Boolean if R has SETCAT and $ has finiteAggregate
---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 Col if R has INTDOM
+--R nullSpace : % -> List(Col) if R has INTDOM
 --R nullity : % -> NonNegativeInteger if R has INTDOM
 --R pfaffian : % -> R if R has COMRING
 --R qsetelt! : (%,Integer,Integer,R) -> R
@@ -17868,7 +17923,7 @@ inverse matrix [[j**i for i in 0..4] for j in 1..5]
 --R rowEchelon : % -> % if R has EUCDOM
 --R scalarMatrix : (NonNegativeInteger,R) -> %
 --R setColumn! : (%,Integer,Col) -> %
---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
@@ -19574,32 +19629,33 @@ digraph pic {
 
 --S 1 of 1
 )show PolynomialSetCategory
+--R 
 --R PolynomialSetCategory(R: Ring,E: OrderedAbelianMonoidSup,VarSet: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for PolynomialSetCategory is PSETCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PSETCAT 
 --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 -> %               copy : % -> %
+--R construct : List(P) -> %              copy : % -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                hash : % -> SingleInteger
---R latex : % -> String                   mainVariables : % -> List VarSet
+--R latex : % -> String                   mainVariables : % -> List(VarSet)
 --R map : ((P -> P),%) -> %               mvar : % -> VarSet
---R retract : List P -> %                 sample : () -> %
---R trivialIdeal? : % -> Boolean          variables : % -> List VarSet
+--R retract : List(P) -> %                sample : () -> %
+--R trivialIdeal? : % -> Boolean          variables : % -> List(VarSet)
 --R ?~=? : (%,%) -> 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 P has SETCAT and $ has finiteAggregate
---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
@@ -19607,9 +19663,9 @@ digraph pic {
 --R mainVariable? : (VarSet,%) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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 P has SETCAT and $ has finiteAggregate
@@ -19617,9 +19673,9 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -20257,13 +20313,14 @@ digraph pic {
 
 --S 1 of 1
 )show PriorityQueueAggregate
---R PriorityQueueAggregate S: OrderedSet  is a category constructor
+--R 
+--R PriorityQueueAggregate(S: OrderedSet)  is a category constructor
 --R Abbreviation for PriorityQueueAggregate is PRQAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PRQAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R bag : List S -> %                     copy : % -> %
+--R bag : List(S) -> %                    copy : % -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
 --R insert! : (S,%) -> %                  inspect : % -> S
@@ -20276,19 +20333,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -20493,13 +20550,14 @@ digraph pic {
 
 --S 1 of 1
 )show QueueAggregate
---R QueueAggregate S: Type  is a category constructor
+--R 
+--R QueueAggregate(S: Type)  is a category constructor
 --R Abbreviation for QueueAggregate is QUAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for QUAGG 
 --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
@@ -20513,19 +20571,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -20743,41 +20801,42 @@ digraph pic {
 
 --S 1 of 1
 )show SetAggregate
---R SetAggregate S: SetCategory  is a category constructor
+--R 
+--R SetAggregate(S: SetCategory)  is a category constructor
 --R Abbreviation for SetAggregate is SETAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SETAGG 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?<? : (%,%) -> Boolean                ?=? : (%,%) -> Boolean
---R brace : List S -> %                   brace : () -> %
---R coerce : % -> OutputForm              construct : List S -> %
+--R brace : List(S) -> %                  brace : () -> %
+--R coerce : % -> OutputForm              construct : List(S) -> %
 --R copy : % -> %                         difference : (%,S) -> %
 --R difference : (%,%) -> %               empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             intersect : (%,%) -> %
 --R latex : % -> String                   map : ((S -> S),%) -> %
---R sample : () -> %                      set : List S -> %
+--R sample : () -> %                      set : List(S) -> %
 --R set : () -> %                         subset? : (%,%) -> Boolean
 --R union : (S,%) -> %                    union : (%,S) -> %
 --R union : (%,%) -> %                    ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
---R eval : (%,List Equation 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 : (%,S,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 : (%,List(Equation(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 : (%,S,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 every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R find : ((S -> Boolean),%) -> Union(S,"failed")
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -21102,13 +21161,14 @@ digraph pic {
 
 --S 1 of 1
 )show StackAggregate
---R StackAggregate S: Type  is a category constructor
+--R 
+--R StackAggregate(S: Type)  is a category constructor
 --R Abbreviation for StackAggregate is SKAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SKAGG 
 --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,%) -> %
@@ -21121,19 +21181,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -21354,13 +21414,14 @@ digraph pic {
 
 --S 1 of 1
 )show UnaryRecursiveAggregate
---R UnaryRecursiveAggregate S: Type  is a category constructor
+--R 
+--R UnaryRecursiveAggregate(S: Type)  is a category constructor
 --R Abbreviation for UnaryRecursiveAggregate is URAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for URAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                concat : (S,%) -> %
+--R children : % -> List(%)               concat : (S,%) -> %
 --R concat : (%,%) -> %                   copy : % -> %
 --R cycleEntry : % -> %                   cycleTail : % -> %
 --R cyclic? : % -> Boolean                distance : (%,%) -> Integer
@@ -21369,8 +21430,8 @@ digraph pic {
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                first : % -> S
 --R last : % -> S                         leaf? : % -> Boolean
---R leaves : % -> List S                  map : ((S -> S),%) -> %
---R nodes : % -> List %                   rest : % -> %
+--R leaves : % -> List(S)                 map : ((S -> S),%) -> %
+--R nodes : % -> List(%)                  rest : % -> %
 --R sample : () -> %                      second : % -> S
 --R tail : % -> %                         third : % -> S
 --R value : % -> S                       
@@ -21385,10 +21446,10 @@ digraph pic {
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---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 first : (%,NonNegativeInteger) -> %
 --R hash : % -> SingleInteger if S has SETCAT
@@ -21397,12 +21458,12 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 parts : % -> List(S) if $ has finiteAggregate
 --R rest : (%,NonNegativeInteger) -> %
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R setchildren! : (%,List(%)) -> % 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
@@ -22101,20 +22162,21 @@ digraph pic {
 
 --S 1 of 1
 )show BinaryTreeCategory
---R BinaryTreeCategory S: SetCategory  is a category constructor
+--R 
+--R BinaryTreeCategory(S: SetCategory)  is a category constructor
 --R Abbreviation for BinaryTreeCategory is BTCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for BTCAT 
 --R
 --R------------------------------- Operations --------------------------------
---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
@@ -22124,21 +22186,21 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -22401,14 +22463,15 @@ digraph pic {
 
 --S 1 of 1
 )show Dictionary
---R Dictionary S: SetCategory  is a category constructor
+--R 
+--R Dictionary(S: SetCategory)  is a category constructor
 --R Abbreviation for Dictionary is DIAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DIAGG 
 --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 : () -> %                  empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R extract! : % -> S                     insert! : (S,%) -> %
@@ -22418,13 +22481,13 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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 find : ((S -> Boolean),%) -> Union(S,"failed")
 --R hash : % -> SingleInteger if S has SETCAT
@@ -22432,9 +22495,9 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -22702,15 +22765,16 @@ digraph pic {
 
 --S 1 of 1
 )show DequeueAggregate
---R DequeueAggregate S: Type  is a category constructor
+--R 
+--R DequeueAggregate(S: Type)  is a category constructor
 --R Abbreviation for DequeueAggregate is DQAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DQAGG 
 --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
@@ -22729,19 +22793,19 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 S has SETCAT and $ has finiteAggregate
---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
@@ -23005,21 +23069,22 @@ digraph pic {
 
 --S 1 of 1
 )show ExtensibleLinearAggregate
---R ExtensibleLinearAggregate S: Type  is a category constructor
+--R 
+--R ExtensibleLinearAggregate(S: Type)  is a category constructor
 --R Abbreviation for ExtensibleLinearAggregate is ELAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ELAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R concat : List % -> %                  concat : (%,%) -> %
+--R concat : List(%) -> %                 concat : (%,%) -> %
 --R concat : (S,%) -> %                   concat : (%,S) -> %
 --R concat! : (%,%) -> %                  concat! : (%,S) -> %
---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 index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(S)                eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R insert : (%,%,Integer) -> %           insert : (S,%,Integer) -> %
 --R insert! : (%,%,Integer) -> %          insert! : (S,%,Integer) -> %
 --R map : (((S,S) -> S),%,%) -> %         map : ((S -> S),%) -> %
@@ -23029,17 +23094,17 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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")
@@ -23050,12 +23115,12 @@ digraph pic {
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 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 qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
@@ -23068,7 +23133,7 @@ digraph pic {
 --R removeDuplicates! : % -> % if S has SETCAT
 --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 swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
@@ -23396,20 +23461,21 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteLinearAggregate
---R FiniteLinearAggregate S: Type  is a category constructor
+--R 
+--R FiniteLinearAggregate(S: Type)  is a category constructor
 --R Abbreviation for FiniteLinearAggregate is FLAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FLAGG 
 --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 : % -> %
@@ -23422,17 +23488,17 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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")
@@ -23444,13 +23510,13 @@ digraph pic {
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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
@@ -23463,7 +23529,7 @@ digraph pic {
 --R removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate
 --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
@@ -23848,6 +23914,7 @@ digraph pic {
 
 --S 1 of 1
 )show FreeAbelianMonoidCategory
+--R 
 --R FreeAbelianMonoidCategory(S: SetCategory,E: CancellationAbelianMonoid)  is a category constructor
 --R Abbreviation for FreeAbelianMonoidCategory is FAMONC 
 --R This constructor is exposed in this frame.
@@ -23868,7 +23935,7 @@ digraph pic {
 --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
 
@@ -24081,14 +24148,15 @@ digraph pic {
 
 --S 1 of 1
 )show MultiDictionary
---R MultiDictionary S: SetCategory  is a category constructor
+--R 
+--R MultiDictionary(S: SetCategory)  is a category constructor
 --R Abbreviation for MultiDictionary is MDAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MDAGG 
 --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 : () -> %                  empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R extract! : % -> S                     insert! : (S,%) -> %
@@ -24098,14 +24166,14 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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
@@ -24114,9 +24182,9 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -24514,7 +24582,8 @@ digraph pic {
 
 --S 1 of 1
 )show PermutationCategory
---R PermutationCategory S: SetCategory  is a category constructor
+--R 
+--R PermutationCategory(S: SetCategory)  is a category constructor
 --R Abbreviation for PermutationCategory is PERMCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PERMCAT 
@@ -24526,11 +24595,11 @@ digraph pic {
 --R 1 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        coerce : % -> OutputForm
 --R commutator : (%,%) -> %               conjugate : (%,%) -> %
---R cycle : List S -> %                   cycles : List List S -> %
+--R cycle : List(S) -> %                  cycles : List(List(S)) -> %
 --R ?.? : (%,S) -> S                      eval : (%,S) -> S
 --R hash : % -> SingleInteger             inv : % -> %
 --R latex : % -> String                   one? : % -> Boolean
---R orbit : (%,S) -> Set S                recip : % -> Union(%,"failed")
+--R orbit : (%,S) -> Set(S)               recip : % -> Union(%,"failed")
 --R sample : () -> %                      ?~=? : (%,%) -> Boolean
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?<=? : (%,%) -> Boolean if S has ORDSET or S has FINITE
@@ -24762,15 +24831,16 @@ digraph pic {
 
 --S 1 of 1
 )show StreamAggregate
---R StreamAggregate S: Type  is a category constructor
+--R 
+--R StreamAggregate(S: Type)  is a category constructor
 --R Abbreviation for StreamAggregate is STAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for STAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                concat : (%,S) -> %
---R concat : List % -> %                  concat : (S,%) -> %
---R concat : (%,%) -> %                   construct : List S -> %
+--R children : % -> List(%)               concat : (%,S) -> %
+--R concat : List(%) -> %                 concat : (S,%) -> %
+--R concat : (%,%) -> %                   construct : List(S) -> %
 --R copy : % -> %                         cycleEntry : % -> %
 --R cycleTail : % -> %                    cyclic? : % -> Boolean
 --R delete : (%,Integer) -> %             distance : (%,%) -> Integer
@@ -24778,14 +24848,14 @@ digraph pic {
 --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 last : % -> S                         leaf? : % -> Boolean
---R leaves : % -> List S                  map : (((S,S) -> S),%,%) -> %
+--R leaves : % -> 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 sample : () -> %                      second : % -> S
 --R tail : % -> %                         third : % -> S
@@ -24797,18 +24867,18 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R concat! : (%,S) -> % if $ has shallowlyMutable
 --R concat! : (%,%) -> % if $ has shallowlyMutable
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---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")
@@ -24820,11 +24890,11 @@ digraph pic {
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --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 qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R reduce : (((S,S) -> S),%,S,S) -> S if S has SETCAT and $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
@@ -24834,9 +24904,9 @@ digraph pic {
 --R removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate
 --R rest : (%,NonNegativeInteger) -> %
 --R select : ((S -> Boolean),%) -> % if $ has finiteAggregate
---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
@@ -25272,6 +25342,7 @@ digraph pic {
 
 --S 1 of 1
 )show TriangularSetCategory
+--R 
 --R TriangularSetCategory(R: IntegralDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for TriangularSetCategory is TSETCAT 
 --R This constructor is exposed in this frame.
@@ -25279,10 +25350,10 @@ digraph pic {
 --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) -> %
@@ -25290,29 +25361,29 @@ digraph pic {
 --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 P has SETCAT and $ has finiteAggregate
---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")
@@ -25321,10 +25392,10 @@ digraph pic {
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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
@@ -25334,10 +25405,10 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -25348,7 +25419,7 @@ digraph pic {
 --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
 
@@ -26188,7 +26259,8 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteDivisorCategory
---R FiniteDivisorCategory(F: Field,UP: UnivariatePolynomialCategory t#1,UPUP: UnivariatePolynomialCategory Fraction t#2,R: FunctionFieldCategory(t#1,t#2,t#3))  is a category constructor
+--R 
+--R FiniteDivisorCategory(F: Field,UP: UnivariatePolynomialCategory(t#1),UPUP: UnivariatePolynomialCategory(Fraction(t#2)),R: FunctionFieldCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for FiniteDivisorCategory is FDIVCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FDIVCAT 
@@ -26205,10 +26277,10 @@ digraph pic {
 --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
@@ -26410,17 +26482,18 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteSetAggregate
---R FiniteSetAggregate S: SetCategory  is a category constructor
+--R 
+--R FiniteSetAggregate(S: SetCategory)  is a category constructor
 --R Abbreviation for FiniteSetAggregate is FSAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FSAGG 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?<? : (%,%) -> Boolean                ?=? : (%,%) -> Boolean
---R bag : List S -> %                     brace : () -> %
---R brace : List S -> %                   coerce : % -> OutputForm
---R construct : List S -> %               copy : % -> %
---R dictionary : List S -> %              dictionary : () -> %
+--R bag : List(S) -> %                    brace : () -> %
+--R brace : List(S) -> %                  coerce : % -> OutputForm
+--R construct : List(S) -> %              copy : % -> %
+--R dictionary : List(S) -> %             dictionary : () -> %
 --R difference : (%,%) -> %               difference : (%,S) -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
@@ -26429,20 +26502,20 @@ digraph pic {
 --R latex : % -> String                   map : ((S -> S),%) -> %
 --R max : % -> S if S has ORDSET          min : % -> S if S has ORDSET
 --R sample : () -> %                      set : () -> %
---R set : List S -> %                     subset? : (%,%) -> Boolean
+--R set : List(S) -> %                    subset? : (%,%) -> Boolean
 --R union : (%,%) -> %                    union : (%,S) -> %
 --R union : (S,%) -> %                    ?~=? : (%,%) -> Boolean
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R cardinality : % -> NonNegativeInteger
 --R complement : % -> % if S has FINITE
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 find : ((S -> Boolean),%) -> Union(S,"failed")
 --R index : PositiveInteger -> % if S has FINITE
@@ -26450,9 +26523,9 @@ digraph pic {
 --R lookup : % -> PositiveInteger if S has FINITE
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 random : () -> % if S has FINITE
 --R reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
@@ -26822,6 +26895,7 @@ digraph pic {
 
 --S 1 of 1
 )show KeyedDictionary
+--R 
 --R KeyedDictionary(Key: SetCategory,Entry: SetCategory)  is a category constructor
 --R Abbreviation for KeyedDictionary is KDAGG 
 --R This constructor is exposed in this frame.
@@ -26831,21 +26905,21 @@ digraph pic {
 --R copy : % -> %                         dictionary : () -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                key? : (Key,%) -> Boolean
---R keys : % -> List Key                  sample : () -> %
+--R keys : % -> List(Key)                 sample : () -> %
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R ?=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT
 --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
---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 : (Record(key: Key,entry: Entry),%) -> NonNegativeInteger if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
 --R count : ((Record(key: Key,entry: Entry) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R dictionary : List Record(key: Key,entry: Entry) -> %
---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 dictionary : List(Record(key: Key,entry: Entry)) -> %
+--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? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R extract! : % -> Record(key: Key,entry: Entry)
 --R find : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Union(Record(key: Key,entry: Entry),"failed")
@@ -26857,9 +26931,9 @@ digraph pic {
 --R map : ((Record(key: Key,entry: Entry) -> Record(key: Key,entry: Entry)),%) -> %
 --R map! : ((Record(key: Key,entry: Entry) -> Record(key: Key,entry: Entry)),%) -> % if $ has shallowlyMutable
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
---R members : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R members : % -> List(Record(key: Key,entry: Entry)) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R parts : % -> List Record(key: Key,entry: Entry) if $ has finiteAggregate
+--R parts : % -> List(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) 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
 --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)) -> Record(key: Key,entry: Entry) if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
@@ -27143,33 +27217,34 @@ digraph pic {
 
 --S 1 of 1
 )show LazyStreamAggregate
---R LazyStreamAggregate S: Type  is a category constructor
+--R 
+--R LazyStreamAggregate(S: Type)  is a category constructor
 --R Abbreviation for LazyStreamAggregate is LZSTAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LZSTAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                complete : % -> %
---R concat : (%,S) -> %                   concat : List % -> %
+--R children : % -> List(%)               complete : % -> %
+--R concat : (%,S) -> %                   concat : List(%) -> %
 --R concat : (S,%) -> %                   concat : (%,%) -> %
---R construct : List S -> %               copy : % -> %
+--R construct : List(S) -> %              copy : % -> %
 --R cycleEntry : % -> %                   cycleTail : % -> %
 --R cyclic? : % -> Boolean                delete : (%,Integer) -> %
 --R distance : (%,%) -> Integer           elt : (%,Integer,S) -> S
 --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                explicitEntries? : % -> Boolean
 --R explicitlyEmpty? : % -> Boolean       explicitlyFinite? : % -> Boolean
 --R extend : (%,Integer) -> %             first : % -> S
 --R frst : % -> S                         index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (S,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (S,%,Integer) -> %
 --R insert : (%,%,Integer) -> %           last : % -> S
 --R lazy? : % -> Boolean                  lazyEvaluate : % -> %
---R leaf? : % -> Boolean                  leaves : % -> List S
+--R leaf? : % -> Boolean                  leaves : % -> 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 remove : ((S -> Boolean),%) -> %      rest : % -> %
 --R rst : % -> %                          sample : () -> %
@@ -27183,18 +27258,18 @@ digraph pic {
 --R coerce : % -> OutputForm if S has SETCAT
 --R concat! : (%,S) -> % if $ has shallowlyMutable
 --R concat! : (%,%) -> % if $ has shallowlyMutable
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --R count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---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")
@@ -27206,12 +27281,12 @@ digraph pic {
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---R members : % -> List S if $ has finiteAggregate
+--R members : % -> List(S) if $ has finiteAggregate
 --R minIndex : % -> Integer if Integer has ORDSET
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R node? : (%,%) -> Boolean if S has SETCAT
 --R numberOfComputedEntries : % -> NonNegativeInteger
---R parts : % -> List S if $ has finiteAggregate
+--R parts : % -> List(S) if $ has finiteAggregate
 --R qsetelt! : (%,Integer,S) -> S if $ has shallowlyMutable
 --R reduce : (((S,S) -> S),%,S,S) -> S if S has SETCAT and $ has finiteAggregate
 --R reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate
@@ -27219,9 +27294,9 @@ digraph pic {
 --R remove : (S,%) -> % if S has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate
 --R rest : (%,NonNegativeInteger) -> %
---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
@@ -28081,7 +28156,8 @@ digraph pic {
 
 --S 1 of 1
 )show LeftModule
---R LeftModule R: Rng  is a category constructor
+--R 
+--R LeftModule(R: Rng)  is a category constructor
 --R Abbreviation for LeftModule is LMODULE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LMODULE 
@@ -28245,16 +28321,17 @@ digraph pic {
 
 --S 1 of 1
 )show ListAggregate
---R ListAggregate S: Type  is a category constructor
+--R 
+--R ListAggregate(S: Type)  is a category constructor
 --R Abbreviation for ListAggregate is LSAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LSAGG 
 --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) -> %
@@ -28262,16 +28339,16 @@ digraph pic {
 --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 : % -> %
@@ -28285,20 +28362,20 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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")
@@ -28311,7 +28388,7 @@ digraph pic {
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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),%,%) -> %
@@ -28320,7 +28397,7 @@ digraph pic {
 --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
@@ -28338,9 +28415,9 @@ digraph pic {
 --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
@@ -28961,17 +29038,18 @@ digraph pic {
 
 --S 1 of 1
 )show MultisetAggregate
---R MultisetAggregate S: SetCategory  is a category constructor
+--R 
+--R MultisetAggregate(S: SetCategory)  is a category constructor
 --R Abbreviation for MultisetAggregate is MSETAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MSETAGG 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?<? : (%,%) -> Boolean                ?=? : (%,%) -> Boolean
---R bag : List S -> %                     brace : () -> %
---R brace : List S -> %                   coerce : % -> OutputForm
---R construct : List S -> %               copy : % -> %
---R dictionary : List S -> %              dictionary : () -> %
+--R bag : List(S) -> %                    brace : () -> %
+--R brace : List(S) -> %                  coerce : % -> OutputForm
+--R construct : List(S) -> %              copy : % -> %
+--R dictionary : List(S) -> %             dictionary : () -> %
 --R difference : (%,%) -> %               difference : (%,S) -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
@@ -28979,29 +29057,29 @@ digraph pic {
 --R inspect : % -> S                      intersect : (%,%) -> %
 --R latex : % -> String                   map : ((S -> S),%) -> %
 --R removeDuplicates! : % -> %            sample : () -> %
---R set : () -> %                         set : List S -> %
+--R set : () -> %                         set : List(S) -> %
 --R subset? : (%,%) -> Boolean            union : (%,%) -> %
 --R union : (%,S) -> %                    union : (S,%) -> %
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 insert! : (S,%,NonNegativeInteger) -> %
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -29452,20 +29530,21 @@ digraph pic {
 
 --S 1 of 1
 )show OneDimensionalArrayAggregate
---R OneDimensionalArrayAggregate S: Type  is a category constructor
+--R
+--R OneDimensionalArrayAggregate(S: Type)  is a category constructor
 --R Abbreviation for OneDimensionalArrayAggregate is A1AGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for A1AGG 
 --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 : % -> %
@@ -29478,17 +29557,17 @@ digraph pic {
 --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 S has SETCAT and $ has finiteAggregate
 --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")
@@ -29500,13 +29579,13 @@ digraph pic {
 --R max : (%,%) -> % if S has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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
@@ -29519,7 +29598,7 @@ digraph pic {
 --R removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate
 --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
@@ -30218,6 +30297,7 @@ digraph pic {
 
 --S 1 of 1
 )show RegularTriangularSetCategory
+--R 
 --R RegularTriangularSetCategory(R: GcdDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for RegularTriangularSetCategory is RSETCAT 
 --R This constructor is exposed in this frame.
@@ -30225,71 +30305,72 @@ digraph pic {
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                algebraic? : (V,%) -> Boolean
---R algebraicVariables : % -> List V      augment : (List P,%) -> List %
---R augment : (P,List %) -> List %        augment : (P,%) -> List %
---R coerce : % -> List P                  coerce : % -> OutputForm
+--R algebraicVariables : % -> List(V)     augment : (List(P),%) -> List(%)
+--R augment : (P,List(%)) -> List(%)      augment : (P,%) -> List(%)
+--R coerce : % -> List(P)                 coerce : % -> OutputForm
 --R collect : (%,V) -> %                  collectQuasiMonic : % -> %
 --R collectUnder : (%,V) -> %             collectUpper : (%,V) -> %
---R construct : List P -> %               copy : % -> %
+--R construct : List(P) -> %              copy : % -> %
 --R degree : % -> NonNegativeInteger      empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R extend : (List P,%) -> List %         extend : (P,List %) -> List %
---R extend : (P,%) -> List %              extend : (%,P) -> %
+--R extend : (List(P),%) -> List(%)       extend : (P,List(%)) -> List(%)
+--R extend : (P,%) -> List(%)             extend : (%,P) -> %
 --R first : % -> Union(P,"failed")        hash : % -> SingleInteger
 --R headReduce : (P,%) -> P               headReduced? : % -> Boolean
 --R headReduced? : (P,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R initiallyReduce : (P,%) -> P          initiallyReduced? : % -> Boolean
---R initials : % -> List P                internalAugment : (P,%) -> %
---R intersect : (P,List %) -> List %      intersect : (List P,%) -> List %
---R intersect : (P,%) -> List %           invertible? : (P,%) -> Boolean
---R invertibleSet : (P,%) -> List %       last : % -> Union(P,"failed")
+--R initials : % -> List(P)               internalAugment : (P,%) -> %
+--R intersect : (P,%) -> List(%)          invertible? : (P,%) -> Boolean
+--R invertibleSet : (P,%) -> List(%)      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        purelyAlgebraic? : % -> Boolean
 --R reduceByQuasiMonic : (P,%) -> P       removeZero : (P,%) -> P
---R rest : % -> Union(%,"failed")         retract : List P -> %
+--R rest : % -> Union(%,"failed")         retract : List(P) -> %
 --R sample : () -> %                      stronglyReduce : (P,%) -> P
 --R stronglyReduced? : % -> Boolean       trivialIdeal? : % -> Boolean
---R variables : % -> List V               zeroSetSplit : List P -> List %
+--R variables : % -> List(V)              zeroSetSplit : List(P) -> List(%)
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R algebraicCoefficients? : (P,%) -> Boolean
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R augment : (List P,List %) -> List %
---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 augment : (List(P),List(%)) -> List(%)
+--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 P has SETCAT and $ has finiteAggregate
---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 extend : (List P,List %) -> List %
+--R extend : (List(P),List(%)) -> List(%)
 --R extendIfCan : (%,P) -> Union(%,"failed")
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
 --R headRemainder : (P,%) -> Record(num: P,den: R) if R has INTDOM
 --R initiallyReduced? : (P,%) -> Boolean
---R internalAugment : (List P,%) -> %
---R intersect : (List P,List %) -> List %
---R invertible? : (P,%) -> List Record(val: Boolean,tower: %)
---R invertibleElseSplit? : (P,%) -> Union(Boolean,List %)
---R lastSubResultant : (P,P,%) -> List Record(val: P,tower: %)
---R lastSubResultantElseSplit : (P,P,%) -> Union(P,List %)
+--R internalAugment : (List(P),%) -> %
+--R intersect : (P,List(%)) -> List(%)
+--R intersect : (List(P),List(%)) -> List(%)
+--R intersect : (List(P),%) -> List(%)
+--R invertible? : (P,%) -> List(Record(val: Boolean,tower: %))
+--R invertibleElseSplit? : (P,%) -> Union(Boolean,List(%))
+--R lastSubResultant : (P,P,%) -> List(Record(val: P,tower: %))
+--R lastSubResultantElseSplit : (P,P,%) -> Union(P,List(%))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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 purelyAlgebraic? : (P,%) -> Boolean
 --R purelyAlgebraicLeadingMonomial? : (P,%) -> Boolean
 --R purelyTranscendental? : (P,%) -> Boolean
---R quasiComponent : % -> Record(close: List P,open: List P)
+--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
@@ -30299,10 +30380,10 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -30311,11 +30392,11 @@ digraph pic {
 --R select : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : (%,V) -> Record(under: %,floor: %,upper: %)
---R squareFreePart : (P,%) -> List Record(val: P,tower: %)
+--R squareFreePart : (P,%) -> List(Record(val: P,tower: %))
 --R stronglyReduced? : (P,%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R zeroSetSplit : (List P,Boolean) -> List %
---R zeroSetSplitIntoTriangularSystems : List P -> List Record(close: %,open: List P)
+--R zeroSetSplit : (List(P),Boolean) -> List(%)
+--R zeroSetSplitIntoTriangularSystems : List(P) -> List(Record(close: %,open: List(P)))
 --R
 --E 1
 
@@ -31001,7 +31082,8 @@ digraph pic {
 
 --S 1 of 1
 )show RightModule
---R RightModule R: Rng  is a category constructor
+--R 
+--R RightModule(R: Rng)  is a category constructor
 --R Abbreviation for RightModule is RMODULE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RMODULE 
@@ -31523,6 +31605,7 @@ digraph pic {
 
 --S 1 of 1
 )show BitAggregate
+--R 
 --R BitAggregate  is a category constructor
 --R Abbreviation for BitAggregate is BTAGG 
 --R This constructor is exposed in this frame.
@@ -31535,13 +31618,13 @@ digraph pic {
 --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? : % -> %
@@ -31551,18 +31634,18 @@ digraph pic {
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((Boolean -> Boolean),%) -> Boolean if $ has finiteAggregate
---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 Boolean has SETCAT and $ has finiteAggregate
---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")
@@ -31574,13 +31657,13 @@ digraph pic {
 --R map! : ((Boolean -> Boolean),%) -> % if $ has shallowlyMutable
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Boolean,%) -> Boolean if Boolean has SETCAT and $ has finiteAggregate
---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
@@ -31594,7 +31677,7 @@ digraph pic {
 --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
@@ -32207,6 +32290,7 @@ digraph pic {
 
 --S 1 of 1
 )show NormalizedTriangularSetCategory
+--R 
 --R NormalizedTriangularSetCategory(R: GcdDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for NormalizedTriangularSetCategory is NTSCAT 
 --R This constructor is exposed in this frame.
@@ -32214,71 +32298,72 @@ digraph pic {
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                algebraic? : (V,%) -> Boolean
---R algebraicVariables : % -> List V      augment : (List P,%) -> List %
---R augment : (P,List %) -> List %        augment : (P,%) -> List %
---R coerce : % -> List P                  coerce : % -> OutputForm
+--R algebraicVariables : % -> List(V)     augment : (List(P),%) -> List(%)
+--R augment : (P,List(%)) -> List(%)      augment : (P,%) -> List(%)
+--R coerce : % -> List(P)                 coerce : % -> OutputForm
 --R collect : (%,V) -> %                  collectQuasiMonic : % -> %
 --R collectUnder : (%,V) -> %             collectUpper : (%,V) -> %
---R construct : List P -> %               copy : % -> %
+--R construct : List(P) -> %              copy : % -> %
 --R degree : % -> NonNegativeInteger      empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R extend : (List P,%) -> List %         extend : (P,List %) -> List %
---R extend : (P,%) -> List %              extend : (%,P) -> %
+--R extend : (List(P),%) -> List(%)       extend : (P,List(%)) -> List(%)
+--R extend : (P,%) -> List(%)             extend : (%,P) -> %
 --R first : % -> Union(P,"failed")        hash : % -> SingleInteger
 --R headReduce : (P,%) -> P               headReduced? : % -> Boolean
 --R headReduced? : (P,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R initiallyReduce : (P,%) -> P          initiallyReduced? : % -> Boolean
---R initials : % -> List P                internalAugment : (P,%) -> %
---R intersect : (P,List %) -> List %      intersect : (List P,%) -> List %
---R intersect : (P,%) -> List %           invertible? : (P,%) -> Boolean
---R invertibleSet : (P,%) -> List %       last : % -> Union(P,"failed")
+--R initials : % -> List(P)               internalAugment : (P,%) -> %
+--R intersect : (P,%) -> List(%)          invertible? : (P,%) -> Boolean
+--R invertibleSet : (P,%) -> List(%)      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        purelyAlgebraic? : % -> Boolean
 --R reduceByQuasiMonic : (P,%) -> P       removeZero : (P,%) -> P
---R rest : % -> Union(%,"failed")         retract : List P -> %
+--R rest : % -> Union(%,"failed")         retract : List(P) -> %
 --R sample : () -> %                      stronglyReduce : (P,%) -> P
 --R stronglyReduced? : % -> Boolean       trivialIdeal? : % -> Boolean
---R variables : % -> List V               zeroSetSplit : List P -> List %
+--R variables : % -> List(V)              zeroSetSplit : List(P) -> List(%)
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R algebraicCoefficients? : (P,%) -> Boolean
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R augment : (List P,List %) -> List %
---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 augment : (List(P),List(%)) -> List(%)
+--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 P has SETCAT and $ has finiteAggregate
---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 extend : (List P,List %) -> List %
+--R extend : (List(P),List(%)) -> List(%)
 --R extendIfCan : (%,P) -> Union(%,"failed")
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
 --R headRemainder : (P,%) -> Record(num: P,den: R) if R has INTDOM
 --R initiallyReduced? : (P,%) -> Boolean
---R internalAugment : (List P,%) -> %
---R intersect : (List P,List %) -> List %
---R invertible? : (P,%) -> List Record(val: Boolean,tower: %)
---R invertibleElseSplit? : (P,%) -> Union(Boolean,List %)
---R lastSubResultant : (P,P,%) -> List Record(val: P,tower: %)
---R lastSubResultantElseSplit : (P,P,%) -> Union(P,List %)
+--R internalAugment : (List(P),%) -> %
+--R intersect : (P,List(%)) -> List(%)
+--R intersect : (List(P),List(%)) -> List(%)
+--R intersect : (List(P),%) -> List(%)
+--R invertible? : (P,%) -> List(Record(val: Boolean,tower: %))
+--R invertibleElseSplit? : (P,%) -> Union(Boolean,List(%))
+--R lastSubResultant : (P,P,%) -> List(Record(val: P,tower: %))
+--R lastSubResultantElseSplit : (P,P,%) -> Union(P,List(%))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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 purelyAlgebraic? : (P,%) -> Boolean
 --R purelyAlgebraicLeadingMonomial? : (P,%) -> Boolean
 --R purelyTranscendental? : (P,%) -> Boolean
---R quasiComponent : % -> Record(close: List P,open: List P)
+--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
@@ -32288,10 +32373,10 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -32300,11 +32385,11 @@ digraph pic {
 --R select : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : (%,V) -> Record(under: %,floor: %,upper: %)
---R squareFreePart : (P,%) -> List Record(val: P,tower: %)
+--R squareFreePart : (P,%) -> List(Record(val: P,tower: %))
 --R stronglyReduced? : (P,%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R zeroSetSplit : (List P,Boolean) -> List %
---R zeroSetSplitIntoTriangularSystems : List P -> List Record(close: %,open: List P)
+--R zeroSetSplit : (List(P),Boolean) -> List(%)
+--R zeroSetSplitIntoTriangularSystems : List(P) -> List(Record(close: %,open: List(P)))
 --R
 --E 1
 
@@ -33023,17 +33108,18 @@ digraph pic {
 
 --S 1 of 1
 )show OrderedMultisetAggregate
---R OrderedMultisetAggregate S: OrderedSet  is a category constructor
+--R 
+--R OrderedMultisetAggregate(S: OrderedSet)  is a category constructor
 --R Abbreviation for OrderedMultisetAggregate is OMSAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for OMSAGG 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?<? : (%,%) -> Boolean                ?=? : (%,%) -> Boolean
---R bag : List S -> %                     brace : () -> %
---R brace : List S -> %                   coerce : % -> OutputForm
---R construct : List S -> %               copy : % -> %
---R dictionary : List S -> %              dictionary : () -> %
+--R bag : List(S) -> %                    brace : () -> %
+--R brace : List(S) -> %                  coerce : % -> OutputForm
+--R construct : List(S) -> %              copy : % -> %
+--R dictionary : List(S) -> %             dictionary : () -> %
 --R difference : (%,%) -> %               difference : (%,S) -> %
 --R empty : () -> %                       empty? : % -> Boolean
 --R eq? : (%,%) -> Boolean                extract! : % -> S
@@ -33043,29 +33129,29 @@ digraph pic {
 --R max : % -> S                          merge : (%,%) -> %
 --R merge! : (%,%) -> %                   min : % -> S
 --R removeDuplicates! : % -> %            sample : () -> %
---R set : () -> %                         set : List S -> %
+--R set : () -> %                         set : List(S) -> %
 --R subset? : (%,%) -> Boolean            union : (%,%) -> %
 --R union : (%,S) -> %                    union : (S,%) -> %
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate
---R convert : % -> InputForm if S has KONVERT INFORM
+--R convert : % -> InputForm if S has KONVERT(INFORM)
 --R count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate
 --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 insert! : (S,%,NonNegativeInteger) -> %
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((S -> S),%) -> % if $ has shallowlyMutable
 --R member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate
---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 S has SETCAT and $ has finiteAggregate
@@ -33593,6 +33679,7 @@ digraph pic {
 
 --S 1 of 1
 )show SquareFreeRegularTriangularSetCategory
+--R 
 --R SquareFreeRegularTriangularSetCategory(R: GcdDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for SquareFreeRegularTriangularSetCategory is SFRTCAT 
 --R This constructor is exposed in this frame.
@@ -33600,71 +33687,72 @@ digraph pic {
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                algebraic? : (V,%) -> Boolean
---R algebraicVariables : % -> List V      augment : (List P,%) -> List %
---R augment : (P,List %) -> List %        augment : (P,%) -> List %
---R coerce : % -> List P                  coerce : % -> OutputForm
+--R algebraicVariables : % -> List(V)     augment : (List(P),%) -> List(%)
+--R augment : (P,List(%)) -> List(%)      augment : (P,%) -> List(%)
+--R coerce : % -> List(P)                 coerce : % -> OutputForm
 --R collect : (%,V) -> %                  collectQuasiMonic : % -> %
 --R collectUnder : (%,V) -> %             collectUpper : (%,V) -> %
---R construct : List P -> %               copy : % -> %
+--R construct : List(P) -> %              copy : % -> %
 --R degree : % -> NonNegativeInteger      empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R extend : (List P,%) -> List %         extend : (P,List %) -> List %
---R extend : (P,%) -> List %              extend : (%,P) -> %
+--R extend : (List(P),%) -> List(%)       extend : (P,List(%)) -> List(%)
+--R extend : (P,%) -> List(%)             extend : (%,P) -> %
 --R first : % -> Union(P,"failed")        hash : % -> SingleInteger
 --R headReduce : (P,%) -> P               headReduced? : % -> Boolean
 --R headReduced? : (P,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R initiallyReduce : (P,%) -> P          initiallyReduced? : % -> Boolean
---R initials : % -> List P                internalAugment : (P,%) -> %
---R intersect : (P,List %) -> List %      intersect : (List P,%) -> List %
---R intersect : (P,%) -> List %           invertible? : (P,%) -> Boolean
---R invertibleSet : (P,%) -> List %       last : % -> Union(P,"failed")
+--R initials : % -> List(P)               internalAugment : (P,%) -> %
+--R intersect : (P,%) -> List(%)          invertible? : (P,%) -> Boolean
+--R invertibleSet : (P,%) -> List(%)      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        purelyAlgebraic? : % -> Boolean
 --R reduceByQuasiMonic : (P,%) -> P       removeZero : (P,%) -> P
---R rest : % -> Union(%,"failed")         retract : List P -> %
+--R rest : % -> Union(%,"failed")         retract : List(P) -> %
 --R sample : () -> %                      stronglyReduce : (P,%) -> P
 --R stronglyReduced? : % -> Boolean       trivialIdeal? : % -> Boolean
---R variables : % -> List V               zeroSetSplit : List P -> List %
+--R variables : % -> List(V)              zeroSetSplit : List(P) -> List(%)
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R algebraicCoefficients? : (P,%) -> Boolean
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R augment : (List P,List %) -> List %
---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 augment : (List(P),List(%)) -> List(%)
+--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 P has SETCAT and $ has finiteAggregate
---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 extend : (List P,List %) -> List %
+--R extend : (List(P),List(%)) -> List(%)
 --R extendIfCan : (%,P) -> Union(%,"failed")
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
 --R headRemainder : (P,%) -> Record(num: P,den: R) if R has INTDOM
 --R initiallyReduced? : (P,%) -> Boolean
---R internalAugment : (List P,%) -> %
---R intersect : (List P,List %) -> List %
---R invertible? : (P,%) -> List Record(val: Boolean,tower: %)
---R invertibleElseSplit? : (P,%) -> Union(Boolean,List %)
---R lastSubResultant : (P,P,%) -> List Record(val: P,tower: %)
---R lastSubResultantElseSplit : (P,P,%) -> Union(P,List %)
+--R internalAugment : (List(P),%) -> %
+--R intersect : (P,List(%)) -> List(%)
+--R intersect : (List(P),List(%)) -> List(%)
+--R intersect : (List(P),%) -> List(%)
+--R invertible? : (P,%) -> List(Record(val: Boolean,tower: %))
+--R invertibleElseSplit? : (P,%) -> Union(Boolean,List(%))
+--R lastSubResultant : (P,P,%) -> List(Record(val: P,tower: %))
+--R lastSubResultantElseSplit : (P,P,%) -> Union(P,List(%))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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 purelyAlgebraic? : (P,%) -> Boolean
 --R purelyAlgebraicLeadingMonomial? : (P,%) -> Boolean
 --R purelyTranscendental? : (P,%) -> Boolean
---R quasiComponent : % -> Record(close: List P,open: List P)
+--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
@@ -33674,10 +33762,10 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -33686,11 +33774,11 @@ digraph pic {
 --R select : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : (%,V) -> Record(under: %,floor: %,upper: %)
---R squareFreePart : (P,%) -> List Record(val: P,tower: %)
+--R squareFreePart : (P,%) -> List(Record(val: P,tower: %))
 --R stronglyReduced? : (P,%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R zeroSetSplit : (List P,Boolean) -> List %
---R zeroSetSplitIntoTriangularSystems : List P -> List Record(close: %,open: List P)
+--R zeroSetSplit : (List(P),Boolean) -> List(%)
+--R zeroSetSplitIntoTriangularSystems : List(P) -> List(Record(close: %,open: List(P)))
 --R
 --E 1
 
@@ -34063,25 +34151,26 @@ digraph pic {
 
 --S 1 of 1
 )show StringAggregate
+--R 
 --R StringAggregate  is a category constructor
 --R Abbreviation for StringAggregate is SRAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for SRAGG 
 --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 index? : (Integer,%) -> Boolean       indices : % -> List Integer
+--R entries : % -> List(Character)        eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
 --R insert : (%,%,Integer) -> %           leftTrim : (%,Character) -> %
 --R lowerCase : % -> %                    lowerCase! : % -> %
 --R prefix? : (%,%) -> Boolean            qelt : (%,Integer) -> Character
 --R reverse : % -> %                      rightTrim : (%,Character) -> %
---R sample : () -> %                      split : (%,Character) -> List %
+--R sample : () -> %                      split : (%,Character) -> List(%)
 --R suffix? : (%,%) -> Boolean            trim : (%,CharacterClass) -> %
 --R trim : (%,Character) -> %             upperCase : % -> %
 --R upperCase! : % -> %                  
@@ -34093,18 +34182,18 @@ digraph pic {
 --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 Character has SETCAT and $ has finiteAggregate
 --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")
@@ -34122,14 +34211,14 @@ digraph pic {
 --R max : (%,%) -> % if Character has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Character,%) -> Boolean if Character has SETCAT and $ has finiteAggregate
---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
@@ -34142,11 +34231,11 @@ digraph pic {
 --R remove : ((Character -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (Character,%) -> % if Character has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if Character has SETCAT and $ has finiteAggregate
---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
@@ -34155,7 +34244,7 @@ digraph pic {
 --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
@@ -34598,6 +34687,7 @@ digraph pic {
 
 --S 1 of 1
 )show TableAggregate
+--R 
 --R TableAggregate(Key: SetCategory,Entry: SetCategory)  is a category constructor
 --R Abbreviation for TableAggregate is TBAGG 
 --R This constructor is exposed in this frame.
@@ -34607,9 +34697,9 @@ digraph pic {
 --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 : () -> %                      
@@ -34617,24 +34707,24 @@ digraph pic {
 --R ?=? : (%,%) -> Boolean if Entry has SETCAT or Record(key: Key,entry: 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 Entry has SETCAT or Record(key: Key,entry: 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 Entry has SETCAT and $ has finiteAggregate
 --R count : (Record(key: Key,entry: Entry),%) -> NonNegativeInteger if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
 --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)
@@ -34653,12 +34743,12 @@ digraph pic {
 --R maxIndex : % -> Key if Key has ORDSET
 --R member? : (Entry,%) -> Boolean if Entry has SETCAT and $ has finiteAggregate
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
---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
@@ -34674,7 +34764,7 @@ digraph pic {
 --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 Entry has SETCAT or Record(key: Key,entry: Entry) has SETCAT
 --R
 --E 1
@@ -35150,20 +35240,21 @@ digraph pic {
 
 --S 1 of 1
 )show VectorCategory
---R VectorCategory R: Type  is a category constructor
+--R 
+--R VectorCategory(R: Type)  is a category constructor
 --R Abbreviation for VectorCategory is VECTCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for VECTCAT 
 --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
@@ -35181,19 +35272,19 @@ digraph pic {
 --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 R has SETCAT and $ has finiteAggregate
 --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")
@@ -35207,14 +35298,14 @@ digraph pic {
 --R max : (%,%) -> % if R has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (R,%) -> Boolean if R has SETCAT and $ has finiteAggregate
---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
@@ -35227,7 +35318,7 @@ digraph pic {
 --R removeDuplicates : % -> % if R has SETCAT and $ has finiteAggregate
 --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
@@ -35607,28 +35698,29 @@ digraph pic {
 
 --S 1 of 1
 )show AssociationListAggregate
+--R 
 --R AssociationListAggregate(Key: SetCategory,Entry: SetCategory)  is a category constructor
 --R Abbreviation for AssociationListAggregate is ALAGG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ALAGG 
 --R
 --R------------------------------- Operations --------------------------------
---R children : % -> List %                concat : (%,%) -> %
---R concat : List % -> %                  concat! : (%,%) -> %
+--R children : % -> List(%)               concat : (%,%) -> %
+--R concat : List(%) -> %                 concat! : (%,%) -> %
 --R copy : % -> %                         cycleEntry : % -> %
 --R cycleTail : % -> %                    cyclic? : % -> Boolean
 --R delete : (%,Integer) -> %             delete! : (%,Integer) -> %
 --R dictionary : () -> %                  distance : (%,%) -> Integer
 --R ?.rest : (%,rest) -> %                elt : (%,Key,Entry) -> Entry
 --R ?.? : (%,Key) -> Entry                empty : () -> %
---R empty? : % -> Boolean                 entries : % -> List Entry
+--R empty? : % -> Boolean                 entries : % -> List(Entry)
 --R eq? : (%,%) -> Boolean                explicitlyFinite? : % -> Boolean
 --R index? : (Integer,%) -> Boolean       index? : (Key,%) -> Boolean
---R indices : % -> List Integer           indices : % -> List Key
+--R indices : % -> List(Integer)          indices : % -> List(Key)
 --R insert : (%,%,Integer) -> %           insert! : (%,%,Integer) -> %
---R key? : (Key,%) -> Boolean             keys : % -> List Key
+--R key? : (Key,%) -> Boolean             keys : % -> List(Key)
 --R leaf? : % -> Boolean                  map : ((Entry -> Entry),%) -> %
---R nodes : % -> List %                   possiblyInfinite? : % -> Boolean
+--R nodes : % -> List(%)                  possiblyInfinite? : % -> Boolean
 --R qelt : (%,Key) -> Entry               rest : % -> %
 --R reverse : % -> %                      sample : () -> %
 --R setelt : (%,Key,Entry) -> Entry       table : () -> %
@@ -35643,15 +35735,15 @@ digraph pic {
 --R any? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R any? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R assoc : (Key,%) -> Union(Record(key: Key,entry: Entry),"failed")
---R bag : List Record(key: Key,entry: Entry) -> %
+--R bag : List(Record(key: Key,entry: Entry)) -> %
 --R child? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT
 --R coerce : % -> OutputForm if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT or Record(key: Key,entry: Entry) has SETCAT
 --R concat : (Record(key: Key,entry: Entry),%) -> %
 --R concat : (%,Record(key: Key,entry: Entry)) -> %
 --R concat! : (%,Record(key: Key,entry: Entry)) -> %
---R construct : List Record(key: Key,entry: Entry) -> %
---R construct : List Record(key: Key,entry: Entry) -> %
---R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT INFORM or Record(key: Key,entry: Entry) has KONVERT INFORM
+--R construct : List(Record(key: Key,entry: Entry)) -> %
+--R construct : List(Record(key: Key,entry: Entry)) -> %
+--R convert : % -> InputForm if Record(key: Key,entry: Entry) has KONVERT(INFORM) or Record(key: Key,entry: Entry) has KONVERT(INFORM)
 --R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
 --R count : ((Record(key: Key,entry: Entry) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (Record(key: Key,entry: Entry),%) -> NonNegativeInteger if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
@@ -35661,30 +35753,30 @@ digraph pic {
 --R count : ((Record(key: Key,entry: Entry) -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R cycleLength : % -> NonNegativeInteger
 --R cycleSplit! : % -> % if $ has shallowlyMutable
---R delete : (%,UniversalSegment Integer) -> %
---R delete! : (%,UniversalSegment Integer) -> %
---R dictionary : List Record(key: Key,entry: Entry) -> %
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R delete! : (%,UniversalSegment(Integer)) -> %
+--R dictionary : List(Record(key: Key,entry: Entry)) -> %
 --R ?.value : (%,value) -> Record(key: Key,entry: Entry)
 --R ?.first : (%,first) -> Record(key: Key,entry: Entry)
 --R ?.last : (%,last) -> Record(key: Key,entry: Entry)
---R ?.? : (%,UniversalSegment Integer) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
 --R ?.? : (%,Integer) -> Record(key: Key,entry: Entry)
 --R elt : (%,Integer,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry)
---R entries : % -> List Record(key: Key,entry: Entry)
+--R entries : % -> List(Record(key: Key,entry: Entry))
 --R entry? : (Record(key: Key,entry: Entry),%) -> Boolean if $ has finiteAggregate and Record(key: Key,entry: Entry) has SETCAT
 --R entry? : (Entry,%) -> Boolean if $ has finiteAggregate and 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 : (%,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 : (%,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 : (%,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 : (%,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(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 : (%,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 : (%,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 : (%,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? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R every? : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Boolean if $ has finiteAggregate
@@ -35704,7 +35796,7 @@ digraph pic {
 --R last : % -> Record(key: Key,entry: Entry)
 --R last : (%,NonNegativeInteger) -> %
 --R latex : % -> String if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT or Record(key: Key,entry: Entry) has SETCAT
---R leaves : % -> List Record(key: Key,entry: Entry)
+--R leaves : % -> List(Record(key: Key,entry: Entry))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R list : Record(key: Key,entry: Entry) -> %
 --R map : ((Record(key: Key,entry: Entry) -> Record(key: Key,entry: Entry)),%) -> %
@@ -35720,9 +35812,9 @@ digraph pic {
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT and $ has finiteAggregate
 --R member? : (Entry,%) -> Boolean if Entry has SETCAT and $ has finiteAggregate
 --R member? : (Record(key: Key,entry: Entry),%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT and $ 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 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 merge : (%,%) -> % if Record(key: Key,entry: Entry) has ORDSET
 --R merge : (((Record(key: Key,entry: Entry),Record(key: Key,entry: Entry)) -> Boolean),%,%) -> %
 --R merge! : (%,%) -> % if Record(key: Key,entry: Entry) has ORDSET
@@ -35733,9 +35825,9 @@ digraph pic {
 --R more? : (%,NonNegativeInteger) -> Boolean
 --R new : (NonNegativeInteger,Record(key: Key,entry: Entry)) -> %
 --R node? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT
---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 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 position : (Record(key: Key,entry: Entry),%,Integer) -> Integer if Record(key: Key,entry: Entry) has SETCAT
 --R position : (Record(key: Key,entry: Entry),%) -> Integer if Record(key: Key,entry: Entry) has SETCAT
 --R position : ((Record(key: Key,entry: Entry) -> Boolean),%) -> Integer
@@ -35767,12 +35859,12 @@ digraph pic {
 --R select : ((Record(key: Key,entry: Entry) -> Boolean),%) -> % if $ has finiteAggregate
 --R select! : ((Record(key: Key,entry: Entry) -> Boolean),%) -> %
 --R select! : ((Record(key: Key,entry: Entry) -> Boolean),%) -> % if $ has finiteAggregate
---R setchildren! : (%,List %) -> % if $ has shallowlyMutable
+--R setchildren! : (%,List(%)) -> % if $ has shallowlyMutable
 --R setelt : (%,value,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
 --R setelt : (%,first,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
 --R setelt : (%,rest,%) -> % if $ has shallowlyMutable
 --R setelt : (%,last,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
---R setelt : (%,UniversalSegment Integer,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
+--R setelt : (%,UniversalSegment(Integer),Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
 --R setelt : (%,Integer,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
 --R setfirst! : (%,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
 --R setlast! : (%,Record(key: Key,entry: Entry)) -> Record(key: Key,entry: Entry) if $ has shallowlyMutable
@@ -35788,7 +35880,7 @@ digraph pic {
 --R split! : (%,Integer) -> % if $ has shallowlyMutable
 --R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
 --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 third : % -> Record(key: Key,entry: Entry)
 --R value : % -> Record(key: Key,entry: Entry)
 --R ?~=? : (%,%) -> Boolean if Record(key: Key,entry: Entry) has SETCAT or Entry has SETCAT or Record(key: Key,entry: Entry) has SETCAT
@@ -37386,6 +37478,7 @@ digraph pic {
 
 --S 1 of 1
 )show FreeModuleCat
+--R 
 --R FreeModuleCat(R: Ring,Basis: SetCategory)  is a category constructor
 --R Abbreviation for FreeModuleCat is FMCAT 
 --R This constructor is exposed in this frame.
@@ -37397,18 +37490,18 @@ digraph pic {
 --R ?*? : (PositiveInteger,%) -> %        ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
 --R ?=? : (%,%) -> Boolean                0 : () -> %
---R coefficient : (%,Basis) -> R          coefficients : % -> List R
+--R coefficient : (%,Basis) -> R          coefficients : % -> List(R)
 --R coerce : Basis -> %                   coerce : % -> OutputForm
 --R hash : % -> SingleInteger             latex : % -> String
 --R leadingCoefficient : % -> R           leadingMonomial : % -> Basis
 --R map : ((R -> R),%) -> %               monom : (Basis,R) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R reductum : % -> %                     retract : % -> Basis
 --R sample : () -> %                      zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R leadingTerm : % -> Record(k: Basis,c: R)
---R listOfTerms : % -> List Record(k: Basis,c: R)
+--R listOfTerms : % -> List(Record(k: Basis,c: R))
 --R numberOfMonomials : % -> NonNegativeInteger
 --R retractIfCan : % -> Union(Basis,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -37655,7 +37748,8 @@ digraph pic {
 
 --S 1 of 1
 )show LeftAlgebra
---R LeftAlgebra R: Ring  is a category constructor
+--R 
+--R LeftAlgebra(R: Ring)  is a category constructor
 --R Abbreviation for LeftAlgebra is LALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LALG 
@@ -37844,7 +37938,8 @@ digraph pic {
 
 --S 1 of 1
 )show LinearlyExplicitRingOver
---R LinearlyExplicitRingOver R: Ring  is a category constructor
+--R 
+--R LinearlyExplicitRingOver(R: Ring)  is a category constructor
 --R Abbreviation for LinearlyExplicitRingOver is LINEXP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LINEXP 
@@ -37864,8 +37959,8 @@ digraph pic {
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : Matrix % -> Matrix R
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : Matrix(%) -> Matrix(R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
 --E 1
@@ -38057,7 +38152,8 @@ digraph pic {
 
 --S 1 of 1
 )show Module
---R Module R: CommutativeRing  is a category constructor
+--R 
+--R Module(R: CommutativeRing)  is a category constructor
 --R Abbreviation for Module is MODULE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MODULE 
@@ -38494,7 +38590,8 @@ digraph pic {
 
 --S 1 of 1
 )show PartialDifferentialRing
---R PartialDifferentialRing S: SetCategory  is a category constructor
+--R 
+--R PartialDifferentialRing(S: SetCategory)  is a category constructor
 --R Abbreviation for PartialDifferentialRing is PDRING 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PDRING 
@@ -38504,21 +38601,21 @@ digraph pic {
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List S) -> %                   D : (%,S) -> %
+--R D : (%,List(S)) -> %                  D : (%,S) -> %
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coerce : Integer -> %
---R coerce : % -> OutputForm              differentiate : (%,List S) -> %
+--R coerce : % -> OutputForm              differentiate : (%,List(S)) -> %
 --R differentiate : (%,S) -> %            hash : % -> SingleInteger
 --R latex : % -> String                   one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R D : (%,List S,List NonNegativeInteger) -> %
+--R D : (%,List(S),List(NonNegativeInteger)) -> %
 --R D : (%,S,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R differentiate : (%,List S,List NonNegativeInteger) -> %
+--R differentiate : (%,List(S),List(NonNegativeInteger)) -> %
 --R differentiate : (%,S,NonNegativeInteger) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
@@ -38766,25 +38863,26 @@ digraph pic {
 
 --S 1 of 1
 )show PointCategory
---R PointCategory R: Ring  is a category constructor
+--R 
+--R PointCategory(R: Ring)  is a category constructor
 --R Abbreviation for PointCategory is PTCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PTCAT 
 --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
@@ -38800,18 +38898,18 @@ digraph pic {
 --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 R has SETCAT and $ has finiteAggregate
 --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")
@@ -38825,14 +38923,14 @@ digraph pic {
 --R max : (%,%) -> % if R has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (R,%) -> Boolean if R has SETCAT and $ has finiteAggregate
---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
@@ -38845,7 +38943,7 @@ digraph pic {
 --R removeDuplicates : % -> % if R has SETCAT and $ has finiteAggregate
 --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
@@ -39182,6 +39280,7 @@ The RectangularMatrix domain is matrices of fixed dimension.
 
 --S 1 of 1
 )show RectangularMatrixCategory
+--R 
 --R RectangularMatrixCategory(m: NonNegativeInteger,n: NonNegativeInteger,R: Ring,Row: DirectProductCategory(t#2,t#3),Col: DirectProductCategory(t#1,t#3))  is a category constructor
 --R Abbreviation for RectangularMatrixCategory is RMATCAT 
 --R This constructor is exposed in this frame.
@@ -39198,9 +39297,9 @@ The RectangularMatrix domain is matrices of fixed dimension.
 --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
@@ -39213,20 +39312,20 @@ The RectangularMatrix domain is matrices of fixed dimension.
 --R any? : ((R -> Boolean),%) -> Boolean if $ has finiteAggregate
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
 --R count : (R,%) -> NonNegativeInteger if R has SETCAT and $ has finiteAggregate
---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 R has SETCAT and $ has finiteAggregate
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R more? : (%,NonNegativeInteger) -> Boolean
---R nullSpace : % -> List Col if R has INTDOM
+--R nullSpace : % -> List(Col) 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 rowEchelon : % -> % if R has EUCDOM
 --R size? : (%,NonNegativeInteger) -> Boolean
@@ -39629,6 +39728,7 @@ digraph pic {
 
 --S 1 of 1
 )show SquareFreeNormalizedTriangularSetCategory
+--R 
 --R SquareFreeNormalizedTriangularSetCategory(R: GcdDomain,E: OrderedAbelianMonoidSup,V: OrderedSet,P: RecursivePolynomialCategory(t#1,t#2,t#3))  is a category constructor
 --R Abbreviation for SquareFreeNormalizedTriangularSetCategory is SNTSCAT 
 --R This constructor is exposed in this frame.
@@ -39636,71 +39736,72 @@ digraph pic {
 --R
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                algebraic? : (V,%) -> Boolean
---R algebraicVariables : % -> List V      augment : (List P,%) -> List %
---R augment : (P,List %) -> List %        augment : (P,%) -> List %
---R coerce : % -> List P                  coerce : % -> OutputForm
+--R algebraicVariables : % -> List(V)     augment : (List(P),%) -> List(%)
+--R augment : (P,List(%)) -> List(%)      augment : (P,%) -> List(%)
+--R coerce : % -> List(P)                 coerce : % -> OutputForm
 --R collect : (%,V) -> %                  collectQuasiMonic : % -> %
 --R collectUnder : (%,V) -> %             collectUpper : (%,V) -> %
---R construct : List P -> %               copy : % -> %
+--R construct : List(P) -> %              copy : % -> %
 --R degree : % -> NonNegativeInteger      empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
---R extend : (List P,%) -> List %         extend : (P,List %) -> List %
---R extend : (P,%) -> List %              extend : (%,P) -> %
+--R extend : (List(P),%) -> List(%)       extend : (P,List(%)) -> List(%)
+--R extend : (P,%) -> List(%)             extend : (%,P) -> %
 --R first : % -> Union(P,"failed")        hash : % -> SingleInteger
 --R headReduce : (P,%) -> P               headReduced? : % -> Boolean
 --R headReduced? : (P,%) -> Boolean       infRittWu? : (%,%) -> Boolean
 --R initiallyReduce : (P,%) -> P          initiallyReduced? : % -> Boolean
---R initials : % -> List P                internalAugment : (P,%) -> %
---R intersect : (P,List %) -> List %      intersect : (List P,%) -> List %
---R intersect : (P,%) -> List %           invertible? : (P,%) -> Boolean
---R invertibleSet : (P,%) -> List %       last : % -> Union(P,"failed")
+--R initials : % -> List(P)               internalAugment : (P,%) -> %
+--R intersect : (P,%) -> List(%)          invertible? : (P,%) -> Boolean
+--R invertibleSet : (P,%) -> List(%)      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        purelyAlgebraic? : % -> Boolean
 --R reduceByQuasiMonic : (P,%) -> P       removeZero : (P,%) -> P
---R rest : % -> Union(%,"failed")         retract : List P -> %
+--R rest : % -> Union(%,"failed")         retract : List(P) -> %
 --R sample : () -> %                      stronglyReduce : (P,%) -> P
 --R stronglyReduced? : % -> Boolean       trivialIdeal? : % -> Boolean
---R variables : % -> List V               zeroSetSplit : List P -> List %
+--R variables : % -> List(V)              zeroSetSplit : List(P) -> List(%)
 --R ?~=? : (%,%) -> Boolean              
 --R #? : % -> NonNegativeInteger if $ has finiteAggregate
 --R algebraicCoefficients? : (P,%) -> Boolean
 --R any? : ((P -> Boolean),%) -> Boolean if $ has finiteAggregate
---R augment : (List P,List %) -> List %
---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 augment : (List(P),List(%)) -> List(%)
+--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 P has SETCAT and $ has finiteAggregate
---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 extend : (List P,List %) -> List %
+--R extend : (List(P),List(%)) -> List(%)
 --R extendIfCan : (%,P) -> Union(%,"failed")
 --R find : ((P -> Boolean),%) -> Union(P,"failed")
 --R headRemainder : (P,%) -> Record(num: P,den: R) if R has INTDOM
 --R initiallyReduced? : (P,%) -> Boolean
---R internalAugment : (List P,%) -> %
---R intersect : (List P,List %) -> List %
---R invertible? : (P,%) -> List Record(val: Boolean,tower: %)
---R invertibleElseSplit? : (P,%) -> Union(Boolean,List %)
---R lastSubResultant : (P,P,%) -> List Record(val: P,tower: %)
---R lastSubResultantElseSplit : (P,P,%) -> Union(P,List %)
+--R internalAugment : (List(P),%) -> %
+--R intersect : (P,List(%)) -> List(%)
+--R intersect : (List(P),List(%)) -> List(%)
+--R intersect : (List(P),%) -> List(%)
+--R invertible? : (P,%) -> List(Record(val: Boolean,tower: %))
+--R invertibleElseSplit? : (P,%) -> Union(Boolean,List(%))
+--R lastSubResultant : (P,P,%) -> List(Record(val: P,tower: %))
+--R lastSubResultantElseSplit : (P,P,%) -> Union(P,List(%))
 --R less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((P -> P),%) -> % if $ has shallowlyMutable
 --R member? : (P,%) -> Boolean if P has SETCAT and $ has finiteAggregate
---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 purelyAlgebraic? : (P,%) -> Boolean
 --R purelyAlgebraicLeadingMonomial? : (P,%) -> Boolean
 --R purelyTranscendental? : (P,%) -> Boolean
---R quasiComponent : % -> Record(close: List P,open: List P)
+--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
@@ -39710,10 +39811,10 @@ digraph pic {
 --R remove : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (P,%) -> % if P has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if P has SETCAT and $ has finiteAggregate
---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
@@ -39722,11 +39823,11 @@ digraph pic {
 --R select : ((P -> Boolean),%) -> % if $ has finiteAggregate
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R sort : (%,V) -> Record(under: %,floor: %,upper: %)
---R squareFreePart : (P,%) -> List Record(val: P,tower: %)
+--R squareFreePart : (P,%) -> List(Record(val: P,tower: %))
 --R stronglyReduced? : (P,%) -> Boolean
 --R triangular? : % -> Boolean if R has INTDOM
---R zeroSetSplit : (List P,Boolean) -> List %
---R zeroSetSplitIntoTriangularSystems : List P -> List Record(close: %,open: List P)
+--R zeroSetSplit : (List(P),Boolean) -> List(%)
+--R zeroSetSplitIntoTriangularSystems : List(P) -> List(Record(close: %,open: List(P)))
 --R
 --E 1
 
@@ -40072,6 +40173,7 @@ digraph pic {
 
 --S 1 of 1
 )show StringCategory
+--R 
 --R StringCategory  is a category constructor
 --R Abbreviation for StringCategory is STRICAT 
 --R This constructor is exposed in this frame.
@@ -40080,20 +40182,20 @@ digraph pic {
 --R------------------------------- Operations --------------------------------
 --R ?=? : (%,%) -> Boolean                OMwrite : (%,Boolean) -> String
 --R OMwrite : % -> String                 coerce : % -> OutputForm
---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 : % -> SingleInteger             index? : (Integer,%) -> Boolean
---R indices : % -> List Integer           insert : (%,%,Integer) -> %
+--R indices : % -> List(Integer)          insert : (%,%,Integer) -> %
 --R latex : % -> String                   leftTrim : (%,Character) -> %
 --R lowerCase : % -> %                    lowerCase! : % -> %
 --R prefix? : (%,%) -> Boolean            qelt : (%,Integer) -> Character
 --R reverse : % -> %                      rightTrim : (%,Character) -> %
---R sample : () -> %                      split : (%,Character) -> List %
+--R sample : () -> %                      split : (%,Character) -> List(%)
 --R string : Integer -> %                 suffix? : (%,%) -> Boolean
 --R trim : (%,CharacterClass) -> %        trim : (%,Character) -> %
 --R upperCase : % -> %                    upperCase! : % -> %
@@ -40106,18 +40208,18 @@ digraph pic {
 --R OMwrite : (OpenMathDevice,%,Boolean) -> Void
 --R OMwrite : (OpenMathDevice,%) -> Void
 --R any? : ((Character -> Boolean),%) -> Boolean if $ has finiteAggregate
---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 Character has SETCAT and $ has finiteAggregate
 --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")
@@ -40133,14 +40235,14 @@ digraph pic {
 --R max : (%,%) -> % if Character has ORDSET
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (Character,%) -> Boolean if Character has SETCAT and $ has finiteAggregate
---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
@@ -40153,11 +40255,11 @@ digraph pic {
 --R remove : ((Character -> Boolean),%) -> % if $ has finiteAggregate
 --R remove : (Character,%) -> % if Character has SETCAT and $ has finiteAggregate
 --R removeDuplicates : % -> % if Character has SETCAT and $ has finiteAggregate
---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
@@ -40166,7 +40268,7 @@ digraph pic {
 --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
@@ -40537,7 +40639,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariateSkewPolynomialCategory
---R UnivariateSkewPolynomialCategory R: Ring  is a category constructor
+--R 
+--R UnivariateSkewPolynomialCategory(R: Ring)  is a category constructor
 --R Abbreviation for UnivariateSkewPolynomialCategory is OREPCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for OREPCAT 
@@ -40550,7 +40653,7 @@ digraph pic {
 --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
@@ -40563,7 +40666,7 @@ digraph pic {
 --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
@@ -40578,11 +40681,11 @@ digraph pic {
 --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
@@ -41112,7 +41215,8 @@ digraph pic {
 
 --S 1 of 1
 )show XAlgebra
---R XAlgebra R: Ring  is a category constructor
+--R 
+--R XAlgebra(R: Ring)  is a category constructor
 --R Abbreviation for XAlgebra is XALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for XALG 
@@ -41336,7 +41440,8 @@ digraph pic {
 
 --S 1 of 1
 )show Algebra
---R Algebra R: CommutativeRing  is a category constructor
+--R 
+--R Algebra(R: CommutativeRing)  is a category constructor
 --R Abbreviation for Algebra is ALGEBRA 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ALGEBRA 
@@ -41596,7 +41701,8 @@ digraph pic {
 
 --S 1 of 1
 )show DifferentialExtension
---R DifferentialExtension R: Ring  is a category constructor
+--R 
+--R DifferentialExtension(R: Ring)  is a category constructor
 --R Abbreviation for DifferentialExtension is DIFEXT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DIFEXT 
@@ -41616,19 +41722,19 @@ digraph pic {
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --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 characteristic : () -> NonNegativeInteger
 --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 subtractIfCan : (%,%) -> Union(%,"failed")
@@ -41890,7 +41996,8 @@ digraph pic {
 
 --S 1 of 1
 )show FullyLinearlyExplicitRingOver
---R FullyLinearlyExplicitRingOver R: Ring  is a category constructor
+--R 
+--R FullyLinearlyExplicitRingOver(R: Ring)  is a category constructor
 --R Abbreviation for FullyLinearlyExplicitRingOver is FLINEXP 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FLINEXP 
@@ -41910,10 +42017,10 @@ digraph pic {
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R)
---R reducedSystem : Matrix % -> Matrix R
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if R has LINEXP(INT)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if R has LINEXP(INT)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R))
+--R reducedSystem : Matrix(%) -> Matrix(R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R
 --E 1
@@ -42131,7 +42238,8 @@ digraph pic {
 
 --S 1 of 1
 )show LieAlgebra
---R LieAlgebra R: CommutativeRing  is a category constructor
+--R 
+--R LieAlgebra(R: CommutativeRing)  is a category constructor
 --R Abbreviation for LieAlgebra is LIECAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LIECAT 
@@ -42322,7 +42430,8 @@ digraph pic {
 
 --S 1 of 1
 )show LinearOrdinaryDifferentialOperatorCategory
---R LinearOrdinaryDifferentialOperatorCategory A: Ring  is a category constructor
+--R 
+--R LinearOrdinaryDifferentialOperatorCategory(A: Ring)  is a category constructor
 --R Abbreviation for LinearOrdinaryDifferentialOperatorCategory is LODOCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LODOCAT 
@@ -42336,7 +42445,7 @@ digraph pic {
 --R D : () -> %                           1 : () -> %
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
 --R adjoint : % -> %                      apply : (%,A,A) -> A
---R coefficients : % -> List A            coerce : A -> %
+--R coefficients : % -> List(A)           coerce : A -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R degree : % -> NonNegativeInteger      ?.? : (%,A) -> A
 --R hash : % -> SingleInteger             latex : % -> String
@@ -42349,7 +42458,7 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R coefficient : (%,NonNegativeInteger) -> A
---R coerce : Fraction Integer -> % if A has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if A has RETRACT(FRAC(INT))
 --R content : % -> A if A has GCDDOM
 --R directSum : (%,%) -> % if A has FIELD
 --R exquo : (%,A) -> Union(%,"failed") if A has INTDOM
@@ -42365,11 +42474,11 @@ digraph pic {
 --R monicRightDivide : (%,%) -> Record(quotient: %,remainder: %) if A has INTDOM
 --R monomial : (A,NonNegativeInteger) -> %
 --R primitivePart : % -> % if A has GCDDOM
---R retract : % -> Fraction Integer if A has RETRACT FRAC INT
---R retract : % -> Integer if A has RETRACT INT
+--R retract : % -> Fraction(Integer) if A has RETRACT(FRAC(INT))
+--R retract : % -> Integer if A has RETRACT(INT)
 --R retractIfCan : % -> Union(A,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if A has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if A has RETRACT INT
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if A has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if A has RETRACT(INT)
 --R rightDivide : (%,%) -> Record(quotient: %,remainder: %) if A has FIELD
 --R rightExactQuotient : (%,%) -> Union(%,"failed") if A has FIELD
 --R rightExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if A has FIELD
@@ -42737,7 +42846,8 @@ digraph pic {
 
 --S 1 of 1
 )show NonAssociativeAlgebra
---R NonAssociativeAlgebra R: CommutativeRing  is a category constructor
+--R 
+--R NonAssociativeAlgebra(R: CommutativeRing)  is a category constructor
 --R Abbreviation for NonAssociativeAlgebra is NAALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for NAALG 
@@ -42958,7 +43068,8 @@ digraph pic {
 
 --S 1 of 1
 )show VectorSpace
---R VectorSpace S: Field  is a category constructor
+--R 
+--R VectorSpace(S: Field)  is a category constructor
 --R Abbreviation for VectorSpace is VSPACE 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for VSPACE 
@@ -43142,6 +43253,7 @@ digraph pic {
 
 --S 1 of 1
 )show XFreeAlgebra
+--R 
 --R XFreeAlgebra(vl: OrderedSet,R: Ring)  is a category constructor
 --R Abbreviation for XFreeAlgebra is XFALG 
 --R This constructor is exposed in this frame.
@@ -43165,21 +43277,21 @@ digraph pic {
 --R one? : % -> Boolean                   quasiRegular : % -> %
 --R quasiRegular? : % -> Boolean          recip : % -> Union(%,"failed")
 --R rquo : (%,%) -> %                     rquo : (%,vl) -> %
---R sample : () -> %                      varList : % -> List vl
+--R sample : () -> %                      varList : % -> List(vl)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coef : (%,OrderedFreeMonoid vl) -> R
---R coerce : OrderedFreeMonoid vl -> %
---R lquo : (%,OrderedFreeMonoid vl) -> %
---R mindeg : % -> OrderedFreeMonoid vl
---R mindegTerm : % -> Record(k: OrderedFreeMonoid vl,c: R)
---R monom : (OrderedFreeMonoid vl,R) -> %
---R retract : % -> OrderedFreeMonoid vl
---R retractIfCan : % -> Union(OrderedFreeMonoid vl,"failed")
---R rquo : (%,OrderedFreeMonoid vl) -> %
+--R coef : (%,OrderedFreeMonoid(vl)) -> R
+--R coerce : OrderedFreeMonoid(vl) -> %
+--R lquo : (%,OrderedFreeMonoid(vl)) -> %
+--R mindeg : % -> OrderedFreeMonoid(vl)
+--R mindegTerm : % -> Record(k: OrderedFreeMonoid(vl),c: R)
+--R monom : (OrderedFreeMonoid(vl),R) -> %
+--R retract : % -> OrderedFreeMonoid(vl)
+--R retractIfCan : % -> Union(OrderedFreeMonoid(vl),"failed")
+--R rquo : (%,OrderedFreeMonoid(vl)) -> %
 --R sh : (%,NonNegativeInteger) -> % if R has COMRING
 --R sh : (%,%) -> % if R has COMRING
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -43529,6 +43641,7 @@ digraph pic {
 
 --S 1 of 1
 )show DirectProductCategory
+--R 
 --R DirectProductCategory(dim: NonNegativeInteger,R: Type)  is a category constructor
 --R Abbreviation for DirectProductCategory is DIRPCAT 
 --R This constructor is exposed in this frame.
@@ -43536,12 +43649,12 @@ digraph pic {
 --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
@@ -43563,10 +43676,10 @@ digraph pic {
 --R ?>=? : (%,%) -> Boolean if R has ORDRING or R has OAMONS
 --R D : (%,(R -> R)) -> % if R has RING
 --R D : (%,(R -> R),NonNegativeInteger) -> % if R has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R D : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R D : (%,List Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R D : (%,Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R D : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R D : (%,List(Symbol)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R D : (%,Symbol) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
 --R D : (%,NonNegativeInteger) -> % if and(has(R,DifferentialRing),has(R,Ring))
 --R D : % -> % if and(has(R,DifferentialRing),has(R,Ring))
 --R ?^? : (%,PositiveInteger) -> % if R has MONOID
@@ -43575,26 +43688,26 @@ digraph pic {
 --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 and(has(R,RetractableTo Fraction Integer),has(R,SetCategory))
---R coerce : Integer -> % if and(has(R,RetractableTo Integer),has(R,SetCategory)) or R has RING
+--R coerce : Fraction(Integer) -> % if and(has(R,RetractableTo(Fraction(Integer))),has(R,SetCategory))
+--R coerce : Integer -> % if and(has(R,RetractableTo(Integer)),has(R,SetCategory)) or R has RING
 --R coerce : % -> OutputForm if R has SETCAT
 --R count : (R,%) -> NonNegativeInteger if R has SETCAT and $ has finiteAggregate
 --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 and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R differentiate : (%,List Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
---R differentiate : (%,Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Ring))
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R differentiate : (%,List(Symbol)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
+--R differentiate : (%,Symbol) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Ring))
 --R differentiate : (%,NonNegativeInteger) -> % if and(has(R,DifferentialRing),has(R,Ring))
 --R differentiate : % -> % if and(has(R,DifferentialRing),has(R,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
@@ -43607,27 +43720,27 @@ digraph pic {
 --R max : (%,%) -> % if R has ORDRING or R has OAMONS
 --R maxIndex : % -> Integer if Integer has ORDSET
 --R member? : (R,%) -> Boolean if R has SETCAT and $ has finiteAggregate
---R members : % -> List R if $ has finiteAggregate
+--R members : % -> List(R) if $ has finiteAggregate
 --R min : (%,%) -> % if R has ORDRING or R has OAMONS
 --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 and(has(R,LinearlyExplicitRingOver Integer),has(R,Ring))
---R reducedSystem : Matrix % -> Matrix Integer if and(has(R,LinearlyExplicitRingOver Integer),has(R,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 and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
 --R retract : % -> R if R has SETCAT
---R retract : % -> Fraction Integer if and(has(R,RetractableTo Fraction Integer),has(R,SetCategory))
---R retract : % -> Integer if and(has(R,RetractableTo Integer),has(R,SetCategory))
+--R retract : % -> Fraction(Integer) if and(has(R,RetractableTo(Fraction(Integer))),has(R,SetCategory))
+--R retract : % -> Integer if and(has(R,RetractableTo(Integer)),has(R,SetCategory))
 --R retractIfCan : % -> Union(R,"failed") if R has SETCAT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if and(has(R,RetractableTo Fraction Integer),has(R,SetCategory))
---R retractIfCan : % -> Union(Integer,"failed") if and(has(R,RetractableTo Integer),has(R,SetCategory))
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if and(has(R,RetractableTo(Fraction(Integer))),has(R,SetCategory))
+--R retractIfCan : % -> Union(Integer,"failed") if and(has(R,RetractableTo(Integer)),has(R,SetCategory))
 --R setelt : (%,Integer,R) -> R if $ has shallowlyMutable
 --R sign : % -> Integer if R has ORDRING
 --R size : () -> NonNegativeInteger if R has FINITE
@@ -44145,20 +44258,21 @@ digraph pic {
 
 --S 1 of 1
 )show DivisionRing
+--R 
 --R DivisionRing  is a category constructor
 --R Abbreviation for DivisionRing is DIVRING 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DIVRING 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (%,Fraction Integer) -> %       ?*? : (Fraction Integer,%) -> %
+--R ?*? : (%,Fraction(Integer)) -> %      ?*? : (Fraction(Integer),%) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
 --R ?-? : (%,%) -> %                      -? : % -> %
 --R ?=? : (%,%) -> Boolean                1 : () -> %
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
---R ?^? : (%,PositiveInteger) -> %        coerce : Fraction Integer -> %
+--R ?^? : (%,PositiveInteger) -> %        coerce : Fraction(Integer) -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R hash : % -> SingleInteger             inv : % -> %
 --R latex : % -> String                   one? : % -> Boolean
@@ -44393,7 +44507,8 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteRankNonAssociativeAlgebra
---R FiniteRankNonAssociativeAlgebra R: CommutativeRing  is a category constructor
+--R 
+--R FiniteRankNonAssociativeAlgebra(R: CommutativeRing)  is a category constructor
 --R Abbreviation for FiniteRankNonAssociativeAlgebra is FINAALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FINAALG 
@@ -44412,40 +44527,41 @@ digraph pic {
 --R flexible? : () -> Boolean             hash : % -> SingleInteger
 --R jacobiIdentity? : () -> Boolean       jordanAdmissible? : () -> Boolean
 --R jordanAlgebra? : () -> Boolean        latex : % -> String
---R leftAlternative? : () -> Boolean      leftDiscriminant : Vector % -> R
+--R leftAlternative? : () -> Boolean      leftDiscriminant : Vector(%) -> R
 --R leftNorm : % -> R                     leftTrace : % -> R
 --R lieAdmissible? : () -> Boolean        lieAlgebra? : () -> Boolean
 --R powerAssociative? : () -> Boolean     rank : () -> PositiveInteger
---R rightAlternative? : () -> Boolean     rightDiscriminant : Vector % -> R
---R rightNorm : % -> R                    rightTrace : % -> R
---R sample : () -> %                      someBasis : () -> Vector %
---R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R rightAlternative? : () -> Boolean     rightNorm : % -> R
+--R rightTrace : % -> R                   sample : () -> %
+--R someBasis : () -> Vector(%)           zero? : % -> Boolean
+--R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
---R associatorDependence : () -> List Vector R if R has INTDOM
---R conditionsForIdempotents : Vector % -> List Polynomial 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 : Vector(%) -> List(Polynomial(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 leftRecip : % -> Union(%,"failed") if R has INTDOM
---R leftRegularRepresentation : (%,Vector %) -> Matrix R
---R leftTraceMatrix : Vector % -> 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 rightRecip : % -> Union(%,"failed") if R has INTDOM
---R rightRegularRepresentation : (%,Vector %) -> Matrix R
---R rightTraceMatrix : Vector % -> 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 % -> Vector Matrix R
+--R rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") if R has INTDOM
+--R structuralConstants : Vector(%) -> Vector(Matrix(R))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit : () -> Union(%,"failed") if R has INTDOM
 --R
@@ -45375,6 +45491,7 @@ digraph pic {
 
 --S 1 of 1
 )show FreeLieAlgebra
+--R 
 --R FreeLieAlgebra(VarSet: OrderedSet,R: CommutativeRing)  is a category constructor
 --R Abbreviation for FreeLieAlgebra is FLALG 
 --R This constructor is exposed in this frame.
@@ -45385,19 +45502,19 @@ digraph pic {
 --R ?*? : (Integer,%) -> %                ?*? : (PositiveInteger,%) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R LiePoly : LyndonWord VarSet -> %      0 : () -> %
+--R LiePoly : LyndonWord(VarSet) -> %     0 : () -> %
 --R coerce : VarSet -> %                  coerce : % -> OutputForm
 --R construct : (%,%) -> %                degree : % -> NonNegativeInteger
 --R eval : (%,VarSet,%) -> %              hash : % -> SingleInteger
 --R latex : % -> String                   mirror : % -> %
---R sample : () -> %                      varList : % -> List VarSet
+--R sample : () -> %                      varList : % -> List(VarSet)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?/? : (%,R) -> % if R has FIELD
 --R coef : (XRecursivePolynomial(VarSet,R),%) -> R
 --R coerce : % -> XRecursivePolynomial(VarSet,R)
 --R coerce : % -> XDistributedPolynomial(VarSet,R)
---R eval : (%,List VarSet,List %) -> %
+--R eval : (%,List(VarSet),List(%)) -> %
 --R lquo : (XRecursivePolynomial(VarSet,R),%) -> XRecursivePolynomial(VarSet,R)
 --R rquo : (XRecursivePolynomial(VarSet,R),%) -> XRecursivePolynomial(VarSet,R)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -45922,7 +46039,8 @@ digraph pic {
 
 --S 1 of 1
 )show MonogenicLinearOperator
---R MonogenicLinearOperator R: Ring  is a category constructor
+--R 
+--R MonogenicLinearOperator(R: Ring)  is a category constructor
 --R Abbreviation for MonogenicLinearOperator is MLO 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MLO 
@@ -46210,7 +46328,8 @@ digraph pic {
 
 --S 1 of 1
 )show OctonionCategory
---R OctonionCategory R: CommutativeRing  is a category constructor
+--R 
+--R OctonionCategory(R: CommutativeRing)  is a category constructor
 --R Abbreviation for OctonionCategory is OC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for OC 
@@ -46244,28 +46363,28 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
---R convert : % -> InputForm if R has KONVERT INFORM
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
+--R convert : % -> InputForm if R has KONVERT(INFORM)
 --R ?.? : (%,R) -> % if R has ELTAB(R,R)
 --R eval : (%,Symbol,R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Symbol,List R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Equation R) -> % if R has EVALAB R
---R eval : (%,Equation R) -> % if R has EVALAB R
---R eval : (%,R,R) -> % if R has EVALAB R
---R eval : (%,List R,List R) -> % if R has EVALAB R
+--R eval : (%,List(Symbol),List(R)) -> % if R has IEVALAB(SYMBOL,R)
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R)
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R)
+--R eval : (%,R,R) -> % if R has EVALAB(R)
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R)
 --R index : PositiveInteger -> % if R has FINITE
 --R lookup : % -> PositiveInteger if R has FINITE
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
 --R random : () -> % if R has FINITE
---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 retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed") if R has INS
+--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 subtractIfCan : (%,%) -> Union(%,"failed")
 --R
@@ -46781,7 +46900,8 @@ digraph pic {
 
 --S 1 of 1
 )show QuaternionCategory
---R QuaternionCategory R: CommutativeRing  is a category constructor
+--R 
+--R QuaternionCategory(R: CommutativeRing)  is a category constructor
 --R Abbreviation for QuaternionCategory is QUATCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for QUATCAT 
@@ -46805,8 +46925,8 @@ digraph pic {
 --R real : % -> R                         recip : % -> Union(%,"failed")
 --R retract : % -> R                      sample : () -> %
 --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) -> %
@@ -46815,46 +46935,46 @@ digraph pic {
 --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 ?^? : (%,Integer) -> % if R has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : Fraction Integer -> % if R has FIELD or R has RETRACT FRAC INT
---R convert : % -> InputForm if R has KONVERT INFORM
+--R coerce : Fraction(Integer) -> % if R has FIELD or R has RETRACT(FRAC(INT))
+--R convert : % -> InputForm if R has KONVERT(INFORM)
 --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 ?.? : (%,R) -> % if R has ELTAB(R,R)
 --R eval : (%,Symbol,R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Symbol,List R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Equation R) -> % if R has EVALAB R
---R eval : (%,Equation R) -> % if R has EVALAB R
---R eval : (%,R,R) -> % if R has EVALAB R
---R eval : (%,List R,List R) -> % if R has EVALAB R
+--R eval : (%,List(Symbol),List(R)) -> % if R has IEVALAB(SYMBOL,R)
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R)
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R)
+--R eval : (%,R,R) -> % if R has EVALAB(R)
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R)
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---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 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 retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
+--R rationalIfCan : % -> Union(Fraction(Integer),"failed") if R has INS
+--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 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
 --E 1
@@ -47350,6 +47470,7 @@ The SquareMatrix domain is for square matrices of fixed dimension.
 
 --S 1 of 1
 )show SquareMatrixCategory
+--R 
 --R SquareMatrixCategory(ndim: NonNegativeInteger,R: Ring,Row: DirectProductCategory(t#1,t#2),Col: DirectProductCategory(t#1,t#2))  is a category constructor
 --R Abbreviation for SquareMatrixCategory is SMATCAT 
 --R This constructor is exposed in this frame.
@@ -47368,13 +47489,13 @@ The SquareMatrix domain is for square matrices of fixed dimension.
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              column : (%,Integer) -> Col
 --R copy : % -> %                         diagonal : % -> Row
---R diagonal? : % -> Boolean              diagonalMatrix : List R -> %
+--R diagonal? : % -> Boolean              diagonalMatrix : List(R) -> %
 --R diagonalProduct : % -> R              elt : (%,Integer,Integer) -> R
 --R elt : (%,Integer,Integer,R) -> R      empty : () -> %
 --R empty? : % -> Boolean                 eq? : (%,%) -> Boolean
 --R hash : % -> SingleInteger             latex : % -> String
---R listOfLists : % -> List List R        map : ((R -> R),%) -> %
---R map : (((R,R) -> R),%,%) -> %         matrix : List List R -> %
+--R listOfLists : % -> List(List(R))      map : ((R -> R),%) -> %
+--R map : (((R,R) -> R),%,%) -> %         matrix : List(List(R)) -> %
 --R maxColIndex : % -> Integer            maxRowIndex : % -> Integer
 --R minColIndex : % -> Integer            minRowIndex : % -> Integer
 --R ncols : % -> NonNegativeInteger       nrows : % -> NonNegativeInteger
@@ -47390,52 +47511,52 @@ The SquareMatrix domain is for square matrices of fixed dimension.
 --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 characteristic : () -> NonNegativeInteger
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT))
 --R count : (R,%) -> NonNegativeInteger if R has SETCAT and $ has finiteAggregate
 --R count : ((R -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
---R determinant : % -> R if R has commutative *
+--R determinant : % -> R if R has commutative(*)
 --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 less? : (%,NonNegativeInteger) -> Boolean
 --R map! : ((R -> R),%) -> % if $ has shallowlyMutable
 --R member? : (R,%) -> Boolean if R has SETCAT and $ has finiteAggregate
---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 nullSpace : % -> List Col if R has INTDOM
+--R nullSpace : % -> List(Col) 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 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 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 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 rowEchelon : % -> % if R has EUCDOM
 --R size? : (%,NonNegativeInteger) -> Boolean
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -47976,6 +48097,7 @@ digraph pic {
 
 --S 1 of 1
 )show XPolynomialsCat
+--R 
 --R XPolynomialsCat(vl: OrderedSet,R: Ring)  is a category constructor
 --R Abbreviation for XPolynomialsCat is XPOLYC 
 --R This constructor is exposed in this frame.
@@ -48000,22 +48122,22 @@ digraph pic {
 --R quasiRegular : % -> %                 quasiRegular? : % -> Boolean
 --R recip : % -> Union(%,"failed")        rquo : (%,%) -> %
 --R rquo : (%,vl) -> %                    sample : () -> %
---R varList : % -> List vl                zero? : % -> Boolean
+--R varList : % -> List(vl)               zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R coef : (%,OrderedFreeMonoid vl) -> R
---R coerce : OrderedFreeMonoid vl -> %
---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 retract : % -> OrderedFreeMonoid vl
---R retractIfCan : % -> Union(OrderedFreeMonoid vl,"failed")
---R rquo : (%,OrderedFreeMonoid vl) -> %
+--R coef : (%,OrderedFreeMonoid(vl)) -> R
+--R coerce : OrderedFreeMonoid(vl) -> %
+--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 retract : % -> OrderedFreeMonoid(vl)
+--R retractIfCan : % -> Union(OrderedFreeMonoid(vl),"failed")
+--R rquo : (%,OrderedFreeMonoid(vl)) -> %
 --R sh : (%,NonNegativeInteger) -> % if R has COMRING
 --R sh : (%,%) -> % if R has COMRING
 --R subtractIfCan : (%,%) -> Union(%,"failed")
@@ -48301,6 +48423,7 @@ digraph pic {
 
 --S 1 of 1
 )show AbelianMonoidRing
+--R 
 --R AbelianMonoidRing(R: Ring,E: OrderedAbelianMonoid)  is a category constructor
 --R Abbreviation for AbelianMonoidRing is AMR 
 --R This constructor is exposed in this frame.
@@ -48322,8 +48445,8 @@ digraph pic {
 --R one? : % -> Boolean                   recip : % -> Union(%,"failed")
 --R reductum : % -> %                     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
@@ -48333,7 +48456,7 @@ digraph pic {
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
 --R coerce : R -> % if R has COMRING
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if R has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit? : % -> Boolean if R has INTDOM
@@ -48933,7 +49056,8 @@ digraph pic {
 
 --S 1 of 1
 )show FramedNonAssociativeAlgebra
---R FramedNonAssociativeAlgebra R: CommutativeRing  is a category constructor
+--R 
+--R FramedNonAssociativeAlgebra(R: CommutativeRing)  is a category constructor
 --R Abbreviation for FramedNonAssociativeAlgebra is FRNAALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FRNAALG 
@@ -48946,59 +49070,59 @@ digraph pic {
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 0 : () -> %                           alternative? : () -> Boolean
 --R antiAssociative? : () -> Boolean      antiCommutative? : () -> Boolean
---R antiCommutator : (%,%) -> %           apply : (Matrix R,%) -> %
+--R antiCommutator : (%,%) -> %           apply : (Matrix(R),%) -> %
 --R associative? : () -> Boolean          associator : (%,%,%) -> %
---R basis : () -> Vector %                coerce : % -> OutputForm
+--R basis : () -> Vector(%)               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
@@ -49622,6 +49746,7 @@ digraph pic {
 
 --S 1 of 1
 )show GcdDomain
+--R 
 --R GcdDomain  is a category constructor
 --R Abbreviation for GcdDomain is GCDDOM 
 --R This constructor is exposed in this frame.
@@ -49635,9 +49760,9 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              gcd : List % -> %
+--R coerce : % -> OutputForm              gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
@@ -49647,7 +49772,7 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R exquo : (%,%) -> Union(%,"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -50155,6 +50280,7 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteAbelianMonoidRing
+--R 
 --R FiniteAbelianMonoidRing(R: Ring,E: OrderedAbelianMonoid)  is a category constructor
 --R Abbreviation for FiniteAbelianMonoidRing is FAMR 
 --R This constructor is exposed in this frame.
@@ -50168,7 +50294,7 @@ digraph pic {
 --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
@@ -50180,8 +50306,8 @@ digraph pic {
 --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
@@ -50190,18 +50316,18 @@ digraph pic {
 --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 RETRACT FRAC INT or R has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) or R has ALGEBRA(FRAC(INT))
 --R coerce : % -> % if R has INTDOM
 --R content : % -> R if R has GCDDOM
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R exquo : (%,%) -> Union(%,"failed") if 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
@@ -50607,57 +50733,58 @@ digraph pic {
 
 --S 1 of 1
 )show IntervalCategory
---R IntervalCategory R: Join(FloatingPointSystem,TranscendentalFunctionCategory)  is a category constructor
+--R 
+--R IntervalCategory(R: Join(FloatingPointSystem,TranscendentalFunctionCategory))  is a category constructor
 --R Abbreviation for IntervalCategory is INTCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for INTCAT 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
---R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Fraction Integer) -> %
---R ?**? : (%,%) -> %                     ?**? : (%,PositiveInteger) -> %
---R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
---R -? : % -> %                           ?<? : (%,%) -> Boolean
---R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
---R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
---R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        acos : % -> %
---R acosh : % -> %                        acot : % -> %
---R acoth : % -> %                        acsc : % -> %
---R acsch : % -> %                        asec : % -> %
---R asech : % -> %                        asin : % -> %
---R asinh : % -> %                        associates? : (%,%) -> Boolean
---R atan : % -> %                         atanh : % -> %
---R coerce : Integer -> %                 coerce : % -> %
---R coerce : Integer -> %                 coerce : % -> OutputForm
---R contains? : (%,R) -> Boolean          cos : % -> %
---R cosh : % -> %                         cot : % -> %
---R coth : % -> %                         csc : % -> %
---R csch : % -> %                         exp : % -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
---R hash : % -> SingleInteger             inf : % -> R
---R interval : Fraction Integer -> %      interval : R -> %
---R interval : (R,R) -> %                 latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R log : % -> %                          max : (%,%) -> %
---R min : (%,%) -> %                      negative? : % -> Boolean
---R nthRoot : (%,Integer) -> %            one? : % -> Boolean
---R pi : () -> %                          positive? : % -> Boolean
---R qinterval : (R,R) -> %                recip : % -> Union(%,"failed")
---R retract : % -> Integer                sample : () -> %
---R sec : % -> %                          sech : % -> %
---R sin : % -> %                          sinh : % -> %
---R sqrt : % -> %                         sup : % -> R
---R tan : % -> %                          tanh : % -> %
---R unit? : % -> Boolean                  unitCanonical : % -> %
---R width : % -> R                        zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
+--R ?*? : (PositiveInteger,%) -> %        ?**? : (%,%) -> %
+--R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
+--R ?-? : (%,%) -> %                      -? : % -> %
+--R ?<? : (%,%) -> Boolean                ?<=? : (%,%) -> Boolean
+--R ?=? : (%,%) -> Boolean                ?>? : (%,%) -> Boolean
+--R ?>=? : (%,%) -> Boolean               1 : () -> %
+--R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
+--R acos : % -> %                         acosh : % -> %
+--R acot : % -> %                         acoth : % -> %
+--R acsc : % -> %                         acsch : % -> %
+--R asec : % -> %                         asech : % -> %
+--R asin : % -> %                         asinh : % -> %
+--R associates? : (%,%) -> Boolean        atan : % -> %
+--R atanh : % -> %                        coerce : Integer -> %
+--R coerce : % -> %                       coerce : Integer -> %
+--R coerce : % -> OutputForm              contains? : (%,R) -> Boolean
+--R cos : % -> %                          cosh : % -> %
+--R cot : % -> %                          coth : % -> %
+--R csc : % -> %                          csch : % -> %
+--R exp : % -> %                          gcd : List(%) -> %
+--R gcd : (%,%) -> %                      hash : % -> SingleInteger
+--R inf : % -> R                          interval : Fraction(Integer) -> %
+--R interval : R -> %                     interval : (R,R) -> %
+--R latex : % -> String                   lcm : List(%) -> %
+--R lcm : (%,%) -> %                      log : % -> %
+--R max : (%,%) -> %                      min : (%,%) -> %
+--R negative? : % -> Boolean              nthRoot : (%,Integer) -> %
+--R one? : % -> Boolean                   pi : () -> %
+--R positive? : % -> Boolean              qinterval : (R,R) -> %
+--R recip : % -> Union(%,"failed")        retract : % -> Integer
+--R sample : () -> %                      sec : % -> %
+--R sech : % -> %                         sin : % -> %
+--R sinh : % -> %                         sqrt : % -> %
+--R sup : % -> R                          tan : % -> %
+--R tanh : % -> %                         unit? : % -> Boolean
+--R unitCanonical : % -> %                width : % -> R
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R exquo : (%,%) -> Union(%,"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -51037,6 +51164,7 @@ digraph pic {
 
 --S 1 of 1
 )show PowerSeriesCategory
+--R 
 --R PowerSeriesCategory(Coef: Ring,Expon: OrderedAbelianMonoid,Var: OrderedSet)  is a category constructor
 --R Abbreviation for PowerSeriesCategory is PSCAT 
 --R This constructor is exposed in this frame.
@@ -51058,10 +51186,10 @@ digraph pic {
 --R monomial : (Coef,Expon) -> %          monomial? : % -> Boolean
 --R one? : % -> Boolean                   pole? : % -> Boolean
 --R recip : % -> Union(%,"failed")        reductum : % -> %
---R sample : () -> %                      variables : % -> List Var
+--R sample : () -> %                      variables : % -> List(Var)
 --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 ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
@@ -51071,9 +51199,9 @@ digraph pic {
 --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 exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
---R monomial : (%,List Var,List Expon) -> %
+--R monomial : (%,List(Var),List(Expon)) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unit? : % -> Boolean if Coef has INTDOM
 --R unitCanonical : % -> % if Coef has INTDOM
@@ -51383,6 +51511,7 @@ digraph pic {
 
 --S 1 of 1
 )show PrincipalIdealDomain
+--R 
 --R PrincipalIdealDomain  is a category constructor
 --R Abbreviation for PrincipalIdealDomain is PID 
 --R This constructor is exposed in this frame.
@@ -51396,9 +51525,9 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              gcd : List % -> %
+--R coerce : % -> OutputForm              gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      one? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
@@ -51407,10 +51536,10 @@ digraph pic {
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed")
 --R exquo : (%,%) -> Union(%,"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -51635,6 +51764,7 @@ digraph pic {
 
 --S 1 of 1
 )show UniqueFactorizationDomain
+--R 
 --R UniqueFactorizationDomain  is a category constructor
 --R Abbreviation for UniqueFactorizationDomain is UFD 
 --R This constructor is exposed in this frame.
@@ -51648,13 +51778,13 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coerce : % -> OutputForm              factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R one? : % -> Boolean                   prime? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
@@ -51662,7 +51792,7 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R exquo : (%,%) -> Union(%,"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -51904,7 +52034,8 @@ digraph pic {
 
 --S 1 of 1
 )show DivisorCategory
---R DivisorCategory S: SetCategory  is a category constructor
+--R 
+--R DivisorCategory(S: SetCategory)  is a category constructor
 --R Abbreviation for DivisorCategory is DIVCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DIVCAT 
@@ -51925,15 +52056,15 @@ digraph pic {
 --R mapGen : ((S -> S),%) -> %            nthCoef : (%,Integer) -> Integer
 --R nthFactor : (%,Integer) -> S          retract : % -> S
 --R sample : () -> %                      size : % -> NonNegativeInteger
---R split : % -> List %                   supp : % -> List S
---R suppOfPole : % -> List S              suppOfZero : % -> List S
+--R split : % -> List(%)                  supp : % -> List(S)
+--R suppOfPole : % -> List(S)             suppOfZero : % -> List(S)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R highCommonTerms : (%,%) -> % if Integer has OAMON
 --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
 
@@ -52159,6 +52290,7 @@ digraph pic {
 
 --S 1 of 1
 )show EuclideanDomain
+--R 
 --R EuclideanDomain  is a category constructor
 --R Abbreviation for EuclideanDomain is EUCDOM 
 --R This constructor is exposed in this frame.
@@ -52172,9 +52304,9 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              gcd : List % -> %
+--R coerce : % -> OutputForm              gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      one? : % -> Boolean
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    sample : () -> %
@@ -52187,13 +52319,13 @@ digraph pic {
 --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 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
@@ -52558,6 +52690,7 @@ digraph pic {
 
 --S 1 of 1
 )show MultivariateTaylorSeriesCategory
+--R 
 --R MultivariateTaylorSeriesCategory(Coef: Ring,Var: OrderedSet)  is a category constructor
 --R Abbreviation for MultivariateTaylorSeriesCategory is MTSCAT 
 --R This constructor is exposed in this frame.
@@ -52569,86 +52702,87 @@ digraph pic {
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List Var) -> %                 D : (%,Var) -> %
+--R D : (%,List(Var)) -> %                D : (%,Var) -> %
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
---R differentiate : (%,Var) -> %          eval : (%,List %,List %) -> %
---R eval : (%,%,%) -> %                   eval : (%,Equation %) -> %
---R eval : (%,List Equation %) -> %       eval : (%,List Var,List %) -> %
---R eval : (%,Var,%) -> %                 hash : % -> SingleInteger
---R latex : % -> String                   leadingCoefficient : % -> Coef
---R leadingMonomial : % -> %              map : ((Coef -> Coef),%) -> %
---R monomial? : % -> Boolean              one? : % -> Boolean
---R pole? : % -> Boolean                  recip : % -> Union(%,"failed")
---R reductum : % -> %                     sample : () -> %
---R variables : % -> List Var             zero? : % -> Boolean
---R ?~=? : (%,%) -> Boolean              
---R ?*? : (Fraction Integer,%) -> % if Coef has ALGEBRA FRAC INT
---R ?*? : (%,Fraction Integer) -> % if Coef has ALGEBRA FRAC INT
+--R differentiate : (%,Var) -> %          eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,Var,%) -> %
+--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(Var)
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--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 Var,List NonNegativeInteger) -> %
+--R D : (%,List(Var),List(NonNegativeInteger)) -> %
 --R D : (%,Var,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 : (%,List Var,List NonNegativeInteger) -> %
+--R coefficient : (%,List(Var),List(NonNegativeInteger)) -> %
 --R coefficient : (%,Var,NonNegativeInteger) -> %
---R coefficient : (%,IndexedExponents Var) -> Coef
---R coerce : Fraction Integer -> % if Coef has ALGEBRA FRAC INT
+--R coefficient : (%,IndexedExponents(Var)) -> 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 Var
---R differentiate : (%,List Var,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(Var)
+--R differentiate : (%,List(Var),List(NonNegativeInteger)) -> %
 --R differentiate : (%,Var,NonNegativeInteger) -> %
---R differentiate : (%,List Var) -> %
---R exp : % -> % if Coef has ALGEBRA FRAC INT
+--R differentiate : (%,List(Var)) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(Var),List(%)) -> %
+--R exp : % -> % if Coef has ALGEBRA(FRAC(INT))
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
 --R extend : (%,NonNegativeInteger) -> %
---R integrate : (%,Var) -> % if Coef has ALGEBRA FRAC INT
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List Var,List NonNegativeInteger) -> %
+--R integrate : (%,Var) -> % if Coef has ALGEBRA(FRAC(INT))
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R monomial : (%,List(Var),List(NonNegativeInteger)) -> %
 --R monomial : (%,Var,NonNegativeInteger) -> %
---R monomial : (Coef,IndexedExponents Var) -> %
---R monomial : (%,Var,IndexedExponents Var) -> %
---R monomial : (%,List Var,List IndexedExponents Var) -> %
---R nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
+--R monomial : (Coef,IndexedExponents(Var)) -> %
+--R monomial : (%,Var,IndexedExponents(Var)) -> %
+--R monomial : (%,List(Var),List(IndexedExponents(Var))) -> %
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
 --R order : (%,Var,NonNegativeInteger) -> NonNegativeInteger
 --R order : (%,Var) -> 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
@@ -53031,6 +53165,7 @@ digraph pic {
 
 --S 1 of 1
 )show PolynomialFactorizationExplicit
+--R 
 --R PolynomialFactorizationExplicit  is a category constructor
 --R Abbreviation for PolynomialFactorizationExplicit is PFECAT 
 --R This constructor is exposed in this frame.
@@ -53044,13 +53179,13 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R coerce : % -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coerce : % -> OutputForm              factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R one? : % -> Boolean                   prime? : % -> Boolean
 --R recip : % -> Union(%,"failed")        sample : () -> %
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
@@ -53058,13 +53193,13 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if $ has CHARNZ
---R conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if $ has CHARNZ
 --R exquo : (%,%) -> Union(%,"failed")
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed")
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed")
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -53367,6 +53502,7 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariatePowerSeriesCategory
+--R 
 --R UnivariatePowerSeriesCategory(Coef: Ring,Expon: OrderedAbelianMonoid)  is a category constructor
 --R Abbreviation for UnivariatePowerSeriesCategory is UPSCAT 
 --R This constructor is exposed in this frame.
@@ -53393,17 +53529,17 @@ digraph pic {
 --R sample : () -> %                      truncate : (%,Expon,Expon) -> %
 --R truncate : (%,Expon) -> %             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 ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,Coef) -> % if Coef has FIELD
 --R D : % -> % if Coef has *: (Expon,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (Expon,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R D : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
+--R D : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
 --R ?^? : (%,NonNegativeInteger) -> %
 --R approximate : (%,Expon) -> Coef if Coef has **: (Coef,Expon) -> Coef and Coef has coerce: Symbol -> Coef
 --R associates? : (%,%) -> Boolean if Coef has INTDOM
@@ -53411,25 +53547,25 @@ digraph pic {
 --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 *: (Expon,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (Expon,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Expon,Coef) -> Coef
+--R differentiate : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Expon,Coef) -> Coef
 --R ?.? : (%,%) -> % if Expon has SGROUP
---R eval : (%,Coef) -> Stream Coef if Coef has **: (Coef,Expon) -> Coef
+--R eval : (%,Coef) -> Stream(Coef) if Coef has **: (Coef,Expon) -> Coef
 --R exquo : (%,%) -> Union(%,"failed") if Coef has INTDOM
---R monomial : (%,List SingletonAsOrderedSet,List Expon) -> %
+--R monomial : (%,List(SingletonAsOrderedSet),List(Expon)) -> %
 --R monomial : (%,SingletonAsOrderedSet,Expon) -> %
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> Stream Record(k: Expon,c: Coef)
+--R terms : % -> Stream(Record(k: Expon,c: Coef))
 --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
 
@@ -53864,13 +54000,14 @@ digraph pic {
 
 --S 1 of 1
 )show Field
+--R 
 --R Field  is a category constructor
 --R Abbreviation for Field is FIELD 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FIELD 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -53878,17 +54015,17 @@ digraph pic {
 --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              factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coerce : % -> OutputForm              factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      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 ?*? : (NonNegativeInteger,%) -> %
@@ -53897,13 +54034,13 @@ digraph pic {
 --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 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
@@ -54189,6 +54326,7 @@ digraph pic {
 
 --S 1 of 1
 )show IntegerNumberSystem
+--R 
 --R IntegerNumberSystem  is a category constructor
 --R Abbreviation for IntegerNumberSystem is INS 
 --R This constructor is exposed in this frame.
@@ -54209,16 +54347,16 @@ digraph pic {
 --R bit? : (%,%) -> Boolean               coerce : Integer -> %
 --R coerce : % -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              convert : % -> DoubleFloat
---R convert : % -> Float                  convert : % -> Pattern Integer
+--R convert : % -> Float                  convert : % -> Pattern(Integer)
 --R convert : % -> InputForm              convert : % -> Integer
 --R copy : % -> %                         dec : % -> %
 --R differentiate : % -> %                even? : % -> Boolean
---R factor : % -> Factored %              factorial : % -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R factor : % -> Factored(%)             factorial : % -> %
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> %                         hash : % -> SingleInteger
 --R inc : % -> %                          init : () -> %
 --R invmod : (%,%) -> %                   latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R length : % -> %                       mask : % -> %
 --R max : (%,%) -> %                      min : (%,%) -> %
 --R mulmod : (%,%,%) -> %                 negative? : % -> Boolean
@@ -54227,11 +54365,11 @@ digraph pic {
 --R positiveRemainder : (%,%) -> %        powmod : (%,%,%) -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R random : % -> %                       random : () -> %
---R rational : % -> Fraction Integer      rational? : % -> Boolean
+--R rational : % -> Fraction(Integer)     rational? : % -> Boolean
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R retract : % -> Integer                sample : () -> %
 --R shift : (%,%) -> %                    sign : % -> Integer
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               submod : (%,%,%) -> %
 --R symmetricRemainder : (%,%) -> %       unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
@@ -54243,18 +54381,18 @@ digraph pic {
 --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 : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--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 % -> Matrix Integer
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector 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(%) -> Matrix(Integer)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer))
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -54800,14 +54938,15 @@ digraph pic {
 
 --S 1 of 1
 )show LocalPowerSeriesCategory
---R LocalPowerSeriesCategory K: Field  is a category constructor
+--R 
+--R LocalPowerSeriesCategory(K: Field)  is a category constructor
 --R Abbreviation for LocalPowerSeriesCategory is LOCPOWC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for LOCPOWC 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,K) -> %                      ?*? : (K,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -54817,15 +54956,15 @@ digraph pic {
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        center : % -> K
 --R coefOfFirstNonZeroTerm : % -> K       coefficient : (%,Integer) -> K
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R complete : % -> %                     degree : % -> Integer
 --R delay : (() -> %) -> %                ?.? : (%,Integer) -> K
---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             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      leadingCoefficient : % -> K
 --R leadingMonomial : % -> %              map : ((K -> K),%) -> %
 --R monomial : (K,Integer) -> %           monomial? : % -> Boolean
@@ -54839,7 +54978,7 @@ digraph pic {
 --R removeZeroes : % -> %                 removeZeroes : (Integer,%) -> %
 --R sample : () -> %                      sbt : (%,%) -> %
 --R series : (Integer,K,%) -> %           shift : (%,Integer) -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               truncate : (%,Integer) -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R variable : % -> Symbol                zero? : % -> Boolean
@@ -54847,46 +54986,46 @@ digraph pic {
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,K) -> % if K has FIELD
---R D : (%,List Symbol,List NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R D : (%,Symbol,NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R D : (%,List Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R D : (%,Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R D : (%,Symbol,NonNegativeInteger) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R D : (%,List(Symbol)) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R D : (%,Symbol) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
 --R D : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K
 --R D : % -> % if K has *: (Integer,K) -> K
 --R ?^? : (%,NonNegativeInteger) -> %
 --R approximate : (%,Integer) -> K if K has **: (K,Integer) -> K and K has coerce: Symbol -> K
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if K has CHARNZ
---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 differentiate : (%,List Symbol,List NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R differentiate : (%,List Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
---R differentiate : (%,Symbol) -> % if K has PDRING SYMBOL and K has *: (Integer,K) -> K
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R differentiate : (%,List(Symbol)) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
+--R differentiate : (%,Symbol) -> % if K has PDRING(SYMBOL) and K has *: (Integer,K) -> K
 --R differentiate : (%,NonNegativeInteger) -> % if K has *: (Integer,K) -> K
 --R differentiate : % -> % if K has *: (Integer,K) -> K
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger
---R eval : (%,K) -> Stream K if K has **: (K,Integer) -> K
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,K) -> Stream(K) if K has **: (K,Integer) -> K
+--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 monomial : (%,SingletonAsOrderedSet,Integer) -> %
---R monomial : (%,List SingletonAsOrderedSet,List Integer) -> %
---R monomial2series : (List %,List NonNegativeInteger,Integer) -> %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R monomial : (%,List(SingletonAsOrderedSet),List(Integer)) -> %
+--R monomial2series : (List(%),List(NonNegativeInteger),Integer) -> %
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R multiplyExponents : (%,PositiveInteger) -> %
 --R orderIfNegative : % -> Union(Integer,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R terms : % -> Stream Record(k: Integer,c: K)
+--R terms : % -> Stream(Record(k: Integer,c: K))
 --R truncate : (%,Integer,Integer) -> %
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -55268,7 +55407,8 @@ digraph pic {
 
 --S 1 of 1
 )show PAdicIntegerCategory
---R PAdicIntegerCategory p: Integer  is a category constructor
+--R 
+--R PAdicIntegerCategory(p: Integer)  is a category constructor
 --R Abbreviation for PAdicIntegerCategory is PADICCT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PADICCT 
@@ -55282,10 +55422,10 @@ digraph pic {
 --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 : % -> %
@@ -55301,14 +55441,14 @@ digraph pic {
 --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
@@ -55592,6 +55732,7 @@ digraph pic {
 
 --S 1 of 1
 )show PolynomialCategory
+--R 
 --R PolynomialCategory(R: Ring,E: OrderedAbelianMonoidSup,VarSet: OrderedSet)  is a category constructor
 --R Abbreviation for PolynomialCategory is POLYCAT 
 --R This constructor is exposed in this frame.
@@ -55603,29 +55744,28 @@ digraph pic {
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List VarSet) -> %              D : (%,VarSet) -> %
+--R D : (%,List(VarSet)) -> %             D : (%,VarSet) -> %
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coefficient : (%,E) -> R
---R coefficients : % -> List R            coerce : VarSet -> %
+--R coefficients : % -> List(R)           coerce : VarSet -> %
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              degree : % -> E
 --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 mapExponents : ((E -> E),%) -> %      minimumDegree : % -> E
 --R monomial : (R,E) -> %                 monomial? : % -> Boolean
---R monomials : % -> List %               one? : % -> Boolean
---R pomopo! : (%,R,E,%) -> %              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 monomials : % -> List(%)              one? : % -> Boolean
+--R pomopo! : (%,R,E,%) -> %              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
@@ -55633,83 +55773,86 @@ digraph pic {
 --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 and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit)) or R has CHARNZ
---R coefficient : (%,List VarSet,List NonNegativeInteger) -> %
+--R coefficient : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R coefficient : (%,VarSet,NonNegativeInteger) -> %
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT or R has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) or R has ALGEBRA(FRAC(INT))
 --R coerce : % -> % if R has INTDOM
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
 --R content : (%,VarSet) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> InputForm if VarSet has KONVERT INFORM and R has KONVERT INFORM
---R convert : % -> Pattern Integer if VarSet has KONVERT PATTERN INT and R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if VarSet has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT
---R degree : (%,List VarSet) -> List NonNegativeInteger
+--R convert : % -> InputForm if VarSet has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if VarSet has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if VarSet has KONVERT(PATTERN(FLOAT)) and R has KONVERT(PATTERN(FLOAT))
+--R degree : (%,List(VarSet)) -> List(NonNegativeInteger)
 --R degree : (%,VarSet) -> NonNegativeInteger
---R differentiate : (%,List VarSet,List NonNegativeInteger) -> %
+--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 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 monicDivide : (%,%,VarSet) -> Record(quotient: %,remainder: %)
---R monomial : (%,List VarSet,List NonNegativeInteger) -> %
+--R monomial : (%,List(VarSet),List(NonNegativeInteger)) -> %
 --R monomial : (%,VarSet,NonNegativeInteger) -> %
---R multivariate : (SparseUnivariatePolynomial %,VarSet) -> %
---R multivariate : (SparseUnivariatePolynomial R,VarSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),VarSet) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),VarSet) -> %
 --R numberOfMonomials : % -> NonNegativeInteger
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if VarSet has PATMAB INT and R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if VarSet has PATMAB FLOAT and R has PATMAB FLOAT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if VarSet has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if VarSet has PATMAB(FLOAT) and R has PATMAB(FLOAT)
 --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
 
@@ -56653,7 +56796,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariateTaylorSeriesCategory
---R UnivariateTaylorSeriesCategory Coef: Ring  is a category constructor
+--R 
+--R UnivariateTaylorSeriesCategory(Coef: Ring)  is a category constructor
 --R Abbreviation for UnivariateTaylorSeriesCategory is UTSCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for UTSCAT 
@@ -56666,7 +56810,7 @@ digraph pic {
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
---R coefficients : % -> Stream Coef       coerce : Integer -> %
+--R coefficients : % -> Stream(Coef)      coerce : Integer -> %
 --R coerce : % -> OutputForm              complete : % -> %
 --R degree : % -> NonNegativeInteger      hash : % -> SingleInteger
 --R latex : % -> String                   leadingCoefficient : % -> Coef
@@ -56675,90 +56819,90 @@ digraph pic {
 --R order : % -> NonNegativeInteger       pole? : % -> Boolean
 --R quoByVar : % -> %                     recip : % -> Union(%,"failed")
 --R reductum : % -> %                     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 PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R D : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
 --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 : 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 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 : % -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R differentiate : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (NonNegativeInteger,Coef) -> Coef
 --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 : (%,Symbol) -> % if Coef has ACFS INT and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA FRAC INT or Coef has variables: Coef -> List Symbol and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA FRAC INT
---R integrate : % -> % if Coef has ALGEBRA FRAC INT
---R log : % -> % if Coef has ALGEBRA FRAC INT
---R monomial : (%,List SingletonAsOrderedSet,List NonNegativeInteger) -> %
+--R integrate : (%,Symbol) -> % if Coef has ACFS(INT) and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA(FRAC(INT)) or Coef has variables: Coef -> List(Symbol) and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA(FRAC(INT))
+--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 variables : % -> List SingletonAsOrderedSet
+--R variables : % -> List(SingletonAsOrderedSet)
 --R
 --E 1
 
@@ -57443,7 +57587,7 @@ pi:Polynomial(Integer):=-3*x^3+2*x+13
 --R
 --R            3
 --R   (1)  - 3x  + 2x + 13
---R                                                     Type: Polynomial Integer
+--R                                                    Type: Polynomial(Integer)
 --E 1
 
 --S 2 of 14
@@ -57459,7 +57603,7 @@ rootsOf(pi)
 --R 
 --R
 --R   (3)  [%x0,%x1,- %x1 - %x0]
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 3
 
 --S 4 of 14
@@ -57479,7 +57623,7 @@ zerosOf(pi)
 --R             - \|- 27%x3  + 24  - 3%x3 \|- 27%x3  + 24  - 3%x3
 --R   (5)  [%x3,-------------------------,-----------------------]
 --R                         6                        6
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 5
 
 --S 6 of 14
@@ -57488,7 +57632,7 @@ sup:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13
 --R
 --R            3
 --R   (6)  - 3?  + 2? + 13
---R                                     Type: SparseUnivariatePolynomial Integer
+--R                                    Type: SparseUnivariatePolynomial(Integer)
 --E 6
 
 --S 7 of 14
@@ -57512,7 +57656,7 @@ rootsOf(sup)
 --R 
 --R
 --R   (9)  [%%C0,%%C1,- %%C1 - %%C0]
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 9
 
 --S 10 of 14
@@ -57520,7 +57664,7 @@ rootsOf(sup,x)
 --R 
 --R
 --R   (10)  [%x6,%x7,- %x7 - %x6]
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 10
 
 --S 11 of 14
@@ -57548,7 +57692,7 @@ zerosOf(sup)
 --R               - \|- 27%%E0  + 24  - 3%%E0 \|- 27%%E0  + 24  - 3%%E0
 --R   (13)  [%%E0,---------------------------,-------------------------]
 --R                            6                          6
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 13
 
 --S 14 of 14
@@ -57560,7 +57704,7 @@ zerosOf(sup,x)
 --R              - \|- 27%x9  + 24  - 3%x9 \|- 27%x9  + 24  - 3%x9
 --R   (14)  [%x9,-------------------------,-----------------------]
 --R                          6                        6
---R                                                   Type: List AlgebraicNumber
+--R                                                  Type: List(AlgebraicNumber)
 --E 14
 
 )spool
@@ -58075,7 +58219,8 @@ digraph pic {
 
 --S 1 of 1
 )show DifferentialPolynomialCategory
---R DifferentialPolynomialCategory(R: Ring,S: OrderedSet,V: DifferentialVariableCategory t#2,E: OrderedAbelianMonoidSup)  is a category constructor
+--R 
+--R DifferentialPolynomialCategory(R: Ring,S: OrderedSet,V: DifferentialVariableCategory(t#2),E: OrderedAbelianMonoidSup)  is a category constructor
 --R Abbreviation for DifferentialPolynomialCategory is DPOLCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for DPOLCAT 
@@ -58087,35 +58232,33 @@ digraph pic {
 --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) -> %        coefficient : (%,E) -> R
---R coefficients : % -> List R            coerce : S -> %
+--R coefficients : % -> List(R)           coerce : S -> %
 --R coerce : V -> %                       coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R degree : % -> E                       differentiate : (%,List V) -> %
---R differentiate : (%,V) -> %            eval : (%,List V,List %) -> %
---R eval : (%,V,%) -> %                   eval : (%,List V,List R) -> %
---R eval : (%,V,R) -> %                   eval : (%,List %,List %) -> %
---R eval : (%,%,%) -> %                   eval : (%,Equation %) -> %
---R eval : (%,List Equation %) -> %       ground : % -> R
+--R degree : % -> E                       differentiate : (%,List(V)) -> %
+--R differentiate : (%,V) -> %            eval : (%,List(V),List(%)) -> %
+--R eval : (%,V,%) -> %                   eval : (%,List(V),List(R)) -> %
+--R eval : (%,V,R) -> %                   eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           ground : % -> R
 --R ground? : % -> Boolean                hash : % -> SingleInteger
 --R initial : % -> %                      isobaric? : % -> Boolean
 --R latex : % -> String                   leader : % -> V
 --R leadingCoefficient : % -> R           leadingMonomial : % -> %
 --R map : ((R -> R),%) -> %               mapExponents : ((E -> E),%) -> %
 --R minimumDegree : % -> E                monomial : (R,E) -> %
---R monomial? : % -> Boolean              monomials : % -> List %
+--R monomial? : % -> Boolean              monomials : % -> List(%)
 --R one? : % -> Boolean                   order : % -> NonNegativeInteger
---R pomopo! : (%,R,E,%) -> %              primitiveMonomials : % -> List %
---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 pomopo! : (%,R,E,%) -> %              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 ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,R) -> % if R has FIELD
@@ -58124,106 +58267,109 @@ digraph pic {
 --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 and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit)) or R has CHARNZ
---R coefficient : (%,List V,List NonNegativeInteger) -> %
+--R coefficient : (%,List(V),List(NonNegativeInteger)) -> %
 --R coefficient : (%,V,NonNegativeInteger) -> %
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT or R has ALGEBRA FRAC INT
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) or R has ALGEBRA(FRAC(INT))
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
 --R content : (%,V) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> InputForm if V has KONVERT INFORM and R has KONVERT INFORM
---R convert : % -> Pattern Integer if V has KONVERT PATTERN INT and R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if V has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT
+--R convert : % -> InputForm if V has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if V has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if V has KONVERT(PATTERN(FLOAT)) and R 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 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 monicDivide : (%,%,V) -> Record(quotient: %,remainder: %)
---R monomial : (%,List V,List NonNegativeInteger) -> %
+--R monomial : (%,List(V),List(NonNegativeInteger)) -> %
 --R monomial : (%,V,NonNegativeInteger) -> %
---R multivariate : (SparseUnivariatePolynomial %,V) -> %
---R multivariate : (SparseUnivariatePolynomial R,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 V has PATMAB INT and R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if V has PATMAB FLOAT and R has PATMAB FLOAT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if V has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if V has PATMAB(FLOAT) and R has PATMAB(FLOAT)
 --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 : % -> 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(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
 
@@ -58961,13 +59107,14 @@ digraph pic {
 
 --S 1 of 1
 )show FieldOfPrimeCharacteristic
+--R 
 --R FieldOfPrimeCharacteristic  is a category constructor
 --R Abbreviation for FieldOfPrimeCharacteristic is FPC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FPC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -58975,17 +59122,17 @@ digraph pic {
 --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              factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coerce : % -> OutputForm              factor : % -> Factored(%)
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
 --R lcm : (%,%) -> %                      one? : % -> Boolean
 --R prime? : % -> Boolean                 primeFrobenius : % -> %
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    sample : () -> %
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
@@ -58997,15 +59144,15 @@ digraph pic {
 --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 gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R order : % -> OnePointCompletion PositiveInteger
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R order : % -> OnePointCompletion(PositiveInteger)
 --R primeFrobenius : (%,NonNegativeInteger) -> %
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -59278,7 +59425,8 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteRankAlgebra
---R FiniteRankAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory t#1)  is a category constructor
+--R 
+--R FiniteRankAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory(t#1))  is a category constructor
 --R Abbreviation for FiniteRankAlgebra is FINRALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FINRALG 
@@ -59292,7 +59440,7 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coerce : R -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R discriminant : Vector % -> R          hash : % -> SingleInteger
+--R discriminant : Vector(%) -> R         hash : % -> SingleInteger
 --R latex : % -> String                   norm : % -> R
 --R one? : % -> Boolean                   rank : () -> PositiveInteger
 --R recip : % -> Union(%,"failed")        sample : () -> %
@@ -59304,13 +59452,13 @@ digraph pic {
 --R characteristic : () -> NonNegativeInteger
 --R characteristicPolynomial : % -> UP
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : (%,Vector %) -> Vector R
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : (%,Vector(%)) -> Vector(R)
 --R minimalPolynomial : % -> UP if R has FIELD
---R regularRepresentation : (%,Vector %) -> Matrix R
---R represents : (Vector R,Vector %) -> %
+--R regularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R represents : (Vector(R),Vector(%)) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R traceMatrix : Vector % -> Matrix R
+--R traceMatrix : Vector(%) -> Matrix(R)
 --R
 --E 1
 
@@ -59598,7 +59746,8 @@ digraph pic {
 
 --S 1 of 1
 )show FunctionSpace
---R FunctionSpace R: OrderedSet  is a category constructor
+--R 
+--R FunctionSpace(R: OrderedSet)  is a category constructor
 --R Abbreviation for FunctionSpace is FS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FS 
@@ -59609,161 +59758,163 @@ digraph pic {
 --R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
 --R 1 : () -> % if R has SGROUP           0 : () -> % if R has ABELSG
 --R applyQuote : (Symbol,%,%) -> %        applyQuote : (Symbol,%) -> %
---R belong? : BasicOperator -> Boolean    box : List % -> %
+--R belong? : BasicOperator -> Boolean    box : List(%) -> %
 --R box : % -> %                          coerce : R -> %
---R coerce : Symbol -> %                  coerce : Kernel % -> %
+--R coerce : Symbol -> %                  coerce : Kernel(%) -> %
 --R coerce : % -> OutputForm              distribute : (%,%) -> %
 --R distribute : % -> %                   elt : (BasicOperator,%,%) -> %
---R elt : (BasicOperator,%) -> %          eval : (%,List %,List %) -> %
---R eval : (%,%,%) -> %                   eval : (%,Equation %) -> %
---R eval : (%,List Equation %) -> %       eval : (%,Kernel %,%) -> %
+--R elt : (BasicOperator,%) -> %          eval : (%,%,%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,Kernel(%),%) -> %
 --R freeOf? : (%,Symbol) -> Boolean       freeOf? : (%,%) -> Boolean
 --R ground : % -> R                       ground? : % -> Boolean
 --R hash : % -> SingleInteger             height : % -> NonNegativeInteger
 --R is? : (%,Symbol) -> Boolean           kernel : (BasicOperator,%) -> %
---R kernels : % -> List Kernel %          latex : % -> String
---R map : ((% -> %),Kernel %) -> %        max : (%,%) -> %
---R min : (%,%) -> %                      paren : List % -> %
---R paren : % -> %                        retract : % -> R
---R retract : % -> Symbol                 retract : % -> Kernel %
---R subst : (%,Equation %) -> %           tower : % -> List Kernel %
---R variables : % -> List Symbol          ?~=? : (%,%) -> Boolean
+--R kernels : % -> List(Kernel(%))        latex : % -> String
+--R max : (%,%) -> %                      min : (%,%) -> %
+--R paren : List(%) -> %                  paren : % -> %
+--R retract : % -> R                      retract : % -> Symbol
+--R retract : % -> Kernel(%)              subst : (%,Equation(%)) -> %
+--R tower : % -> List(Kernel(%))          variables : % -> List(Symbol)
+--R ?~=? : (%,%) -> Boolean              
 --R ?*? : (%,%) -> % if R has SGROUP
 --R ?*? : (PositiveInteger,%) -> % if R has ABELSG
 --R ?*? : (NonNegativeInteger,%) -> % if R has ABELSG
 --R ?*? : (Integer,%) -> % if R has ABELGRP
 --R ?*? : (%,R) -> % if R has COMRING
 --R ?*? : (R,%) -> % if R has COMRING
---R ?*? : (%,Fraction Integer) -> % if R has INTDOM
---R ?*? : (Fraction Integer,%) -> % if R has INTDOM
+--R ?*? : (%,Fraction(Integer)) -> % if R has INTDOM
+--R ?*? : (Fraction(Integer),%) -> % if R has INTDOM
 --R ?**? : (%,PositiveInteger) -> % if R has SGROUP
 --R ?**? : (%,NonNegativeInteger) -> % if R has SGROUP
 --R ?**? : (%,Integer) -> % if R has GROUP or R has INTDOM
 --R ?+? : (%,%) -> % if R has ABELSG
 --R ?-? : (%,%) -> % if R has ABELGRP
 --R ?/? : (%,%) -> % if R has GROUP or R has INTDOM
---R ?/? : (SparseMultivariatePolynomial(R,Kernel %),SparseMultivariatePolynomial(R,Kernel %)) -> % if R has INTDOM
+--R ?/? : (SparseMultivariatePolynomial(R,Kernel(%)),SparseMultivariatePolynomial(R,Kernel(%))) -> % if R has INTDOM
 --R D : (%,Symbol) -> % if R has RING
---R D : (%,List Symbol) -> % if R has RING
+--R D : (%,List(Symbol)) -> % if R has RING
 --R D : (%,Symbol,NonNegativeInteger) -> % if R has RING
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has RING
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has RING
 --R ?^? : (%,PositiveInteger) -> % if R has SGROUP
 --R ?^? : (%,NonNegativeInteger) -> % if R has SGROUP
 --R ?^? : (%,Integer) -> % if R has GROUP or R has INTDOM
---R applyQuote : (Symbol,List %) -> %
+--R applyQuote : (Symbol,List(%)) -> %
 --R applyQuote : (Symbol,%,%,%,%) -> %
 --R applyQuote : (Symbol,%,%,%) -> %
 --R associates? : (%,%) -> Boolean if R has INTDOM
 --R characteristic : () -> NonNegativeInteger if R has RING
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : Integer -> % if R has RING or R has RETRACT INT
---R coerce : Fraction Integer -> % if R has INTDOM or R has RETRACT INT and R has INTDOM or R has RETRACT FRAC INT
---R coerce : Polynomial R -> % if R has RING
+--R coerce : Integer -> % if R has RING or R has RETRACT(INT)
+--R coerce : Fraction(Integer) -> % if R has INTDOM or R has RETRACT(INT) and R has INTDOM or R has RETRACT(FRAC(INT))
+--R coerce : Polynomial(R) -> % if R has RING
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Polynomial R -> % if R has INTDOM
---R coerce : Fraction Polynomial Fraction R -> % if R has INTDOM
---R coerce : Polynomial Fraction R -> % if R has INTDOM
---R coerce : Fraction R -> % if R has INTDOM
---R coerce : SparseMultivariatePolynomial(R,Kernel %) -> % if R has RING
+--R coerce : Fraction(Polynomial(R)) -> % if R has INTDOM
+--R coerce : Fraction(Polynomial(Fraction(R))) -> % if R has INTDOM
+--R coerce : Polynomial(Fraction(R)) -> % if R has INTDOM
+--R coerce : Fraction(R) -> % if R has INTDOM
+--R coerce : SparseMultivariatePolynomial(R,Kernel(%)) -> % if R has RING
 --R commutator : (%,%) -> % if R has GROUP
 --R conjugate : (%,%) -> % if R has GROUP
---R convert : % -> InputForm if R has KONVERT INFORM
---R convert : Factored % -> % if R has INTDOM
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT
+--R convert : % -> InputForm if R has KONVERT(INFORM)
+--R convert : Factored(%) -> % if R has INTDOM
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT))
 --R definingPolynomial : % -> % if $ has RING
---R denom : % -> SparseMultivariatePolynomial(R,Kernel %) if R has INTDOM
+--R denom : % -> SparseMultivariatePolynomial(R,Kernel(%)) if R has INTDOM
 --R denominator : % -> % if R has INTDOM
 --R differentiate : (%,Symbol) -> % if R has RING
---R differentiate : (%,List Symbol) -> % if R has RING
+--R differentiate : (%,List(Symbol)) -> % if R has RING
 --R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has RING
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has RING
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if R has INTDOM
---R elt : (BasicOperator,List %) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R elt : (BasicOperator,%,%,%,%) -> %
 --R elt : (BasicOperator,%,%,%) -> %
 --R euclideanSize : % -> NonNegativeInteger if R has INTDOM
 --R eval : (%,Symbol,NonNegativeInteger,(% -> %)) -> % if R has RING
---R eval : (%,Symbol,NonNegativeInteger,(List % -> %)) -> % if R has RING
---R eval : (%,List Symbol,List NonNegativeInteger,List (List % -> %)) -> % if R has RING
---R eval : (%,List Symbol,List NonNegativeInteger,List (% -> %)) -> % if R has RING
---R eval : (%,List BasicOperator,List %,Symbol) -> % if R has KONVERT INFORM
---R eval : (%,BasicOperator,%,Symbol) -> % if R has KONVERT INFORM
---R eval : % -> % if R has KONVERT INFORM
---R eval : (%,List Symbol) -> % if R has KONVERT INFORM
---R eval : (%,Symbol) -> % if R has KONVERT INFORM
+--R eval : (%,Symbol,NonNegativeInteger,(List(%) -> %)) -> % if R has RING
+--R eval : (%,List(Symbol),List(NonNegativeInteger),List((List(%) -> %))) -> % if R has RING
+--R eval : (%,List(Symbol),List(NonNegativeInteger),List((% -> %))) -> % if R has RING
+--R eval : (%,List(BasicOperator),List(%),Symbol) -> % if R has KONVERT(INFORM)
+--R eval : (%,BasicOperator,%,Symbol) -> % if R has KONVERT(INFORM)
+--R eval : % -> % if R has KONVERT(INFORM)
+--R eval : (%,List(Symbol)) -> % if R has KONVERT(INFORM)
+--R eval : (%,Symbol) -> % if R has KONVERT(INFORM)
 --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") if R has INTDOM
+--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") if R has INTDOM
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has INTDOM
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has INTDOM
---R factor : % -> Factored % if R has INTDOM
+--R factor : % -> Factored(%) if R has INTDOM
 --R gcd : (%,%) -> % if R has INTDOM
---R gcd : List % -> % if R has INTDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has INTDOM
+--R gcd : List(%) -> % if R has INTDOM
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has INTDOM
 --R inv : % -> % if R has GROUP or R has INTDOM
 --R is? : (%,BasicOperator) -> Boolean
---R isExpt : (%,Symbol) -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has RING
---R isExpt : (%,BasicOperator) -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has RING
---R isExpt : % -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has SGROUP
---R isMult : % -> Union(Record(coef: Integer,var: Kernel %),"failed") if R has ABELSG
---R isPlus : % -> Union(List %,"failed") if R has ABELSG
+--R isExpt : (%,Symbol) -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has RING
+--R isExpt : (%,BasicOperator) -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has RING
+--R isExpt : % -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has SGROUP
+--R isMult : % -> Union(Record(coef: Integer,var: Kernel(%)),"failed") if R has ABELSG
+--R isPlus : % -> Union(List(%),"failed") if R has ABELSG
 --R isPower : % -> Union(Record(val: %,exponent: Integer),"failed") if R has RING
---R isTimes : % -> Union(List %,"failed") if R has SGROUP
---R kernel : (BasicOperator,List %) -> %
+--R isTimes : % -> Union(List(%),"failed") if R has SGROUP
+--R kernel : (BasicOperator,List(%)) -> %
 --R lcm : (%,%) -> % if R has INTDOM
---R lcm : List % -> % if R has INTDOM
---R mainKernel : % -> Union(Kernel %,"failed")
---R minPoly : Kernel % -> SparseUnivariatePolynomial % if $ has RING
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has INTDOM
---R numer : % -> SparseMultivariatePolynomial(R,Kernel %) if R has RING
+--R lcm : List(%) -> % if R has INTDOM
+--R mainKernel : % -> Union(Kernel(%),"failed")
+--R map : ((% -> %),Kernel(%)) -> %
+--R minPoly : Kernel(%) -> SparseUnivariatePolynomial(%) if $ has RING
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has INTDOM
+--R numer : % -> SparseMultivariatePolynomial(R,Kernel(%)) if R has RING
 --R numerator : % -> % if R has RING
---R odd? : % -> Boolean if $ has RETRACT INT
+--R odd? : % -> Boolean if $ has RETRACT(INT)
 --R one? : % -> Boolean if R has SGROUP
 --R operator : BasicOperator -> BasicOperator
---R operators : % -> List BasicOperator
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT
+--R operators : % -> List(BasicOperator)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT)
 --R prime? : % -> Boolean if R has INTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %) if R has INTDOM
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has INTDOM
 --R ?quo? : (%,%) -> % if R has INTDOM
 --R recip : % -> Union(%,"failed") if R has SGROUP
---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 and(has(R,LinearlyExplicitRingOver Integer),has(R,Ring))
---R reducedSystem : Matrix % -> Matrix Integer if and(has(R,LinearlyExplicitRingOver Integer),has(R,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 and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
 --R ?rem? : (%,%) -> % if R has INTDOM
---R retract : % -> Fraction Integer if R has RETRACT INT and R has INTDOM or R has RETRACT FRAC INT
---R retract : % -> Polynomial R if R has RING
---R retract : % -> Fraction Polynomial R if R has INTDOM
---R retract : % -> Integer if R has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT INT and R has INTDOM or R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Polynomial R,"failed") if R has RING
---R retractIfCan : % -> Union(Fraction Polynomial R,"failed") if R has INTDOM
+--R retract : % -> Fraction(Integer) if R has RETRACT(INT) and R has INTDOM or R has RETRACT(FRAC(INT))
+--R retract : % -> Polynomial(R) if R has RING
+--R retract : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(INT) and R has INTDOM or R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Polynomial(R),"failed") if R has RING
+--R retractIfCan : % -> Union(Fraction(Polynomial(R)),"failed") if R has INTDOM
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
 --R retractIfCan : % -> Union(Symbol,"failed")
---R retractIfCan : % -> Union(Kernel %,"failed")
+--R retractIfCan : % -> Union(Kernel(%),"failed")
 --R sample : () -> % if R has SGROUP or R has ABELSG
 --R sizeLess? : (%,%) -> Boolean if R has INTDOM
---R squareFree : % -> Factored % if R has INTDOM
+--R squareFree : % -> Factored(%) if R has INTDOM
 --R squareFreePart : % -> % if R has INTDOM
---R subst : (%,List Kernel %,List %) -> %
---R subst : (%,List Equation %) -> %
+--R subst : (%,List(Kernel(%)),List(%)) -> %
+--R subst : (%,List(Equation(%))) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed") if R has ABELGRP
 --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 : (%,Kernel %) -> Fraction SparseUnivariatePolynomial % if R has INTDOM
+--R univariate : (%,Kernel(%)) -> Fraction(SparseUnivariatePolynomial(%)) if R has INTDOM
 --R zero? : % -> Boolean if R has ABELSG
 --R
 --E 1
@@ -61315,7 +61466,7 @@ digraph pic {
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACPERC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -61323,44 +61474,44 @@ digraph pic {
 --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              conjugate : % -> %
---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             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
---R lcm : (%,%) -> %                      maxTower : List % -> %
+--R latex : % -> String                   lcm : List(%) -> %
+--R lcm : (%,%) -> %                      maxTower : List(%) -> %
 --R one? : % -> Boolean                   previousTower : % -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
 --R sample : () -> %                      setTower! : % -> Void
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               unit? : % -> Boolean
---R unitCanonical : % -> %                vectorise : (%,%) -> Vector %
+--R unitCanonical : % -> %                vectorise : (%,%) -> Vector(%)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R definingPolynomial : % -> SparseUnivariatePolynomial %
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List %
+--R definingPolynomial : % -> SparseUnivariatePolynomial(%)
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--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 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 principalIdeal : List % -> Record(coef: List %,generator: %)
---R reduce : SparseUnivariatePolynomial % -> %
+--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 principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reduce : SparseUnivariatePolynomial(%) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R
@@ -61663,14 +61814,15 @@ digraph pic {
 
 --S 1 of 1
 )show QuotientFieldCategory
---R QuotientFieldCategory S: IntegralDomain  is a category constructor
+--R 
+--R QuotientFieldCategory(S: IntegralDomain)  is a category constructor
 --R Abbreviation for QuotientFieldCategory is QFCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for QFCAT 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (%,S) -> %                      ?*? : (S,%) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -61681,21 +61833,21 @@ digraph pic {
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        associates? : (%,%) -> Boolean
 --R ceiling : % -> S if S has INS         coerce : S -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R denom : % -> S                        denominator : % -> %
---R factor : % -> Factored %              floor : % -> S if S has INS
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R factor : % -> Factored(%)             floor : % -> S if S has INS
+--R gcd : List(%) -> %                    gcd : (%,%) -> %
 --R hash : % -> SingleInteger             init : () -> % if S has STEP
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R map : ((S -> S),%) -> %               numer : % -> S
 --R numerator : % -> %                    one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R random : () -> % if S has INS         recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    retract : % -> S
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
@@ -61705,70 +61857,70 @@ digraph pic {
 --R ?>? : (%,%) -> Boolean if S has ORDSET
 --R ?>=? : (%,%) -> Boolean if S has ORDSET
 --R D : (%,(S -> S),NonNegativeInteger) -> %
---R D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL
---R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL
---R D : (%,List Symbol) -> % if S has PDRING SYMBOL
---R D : (%,Symbol) -> % if S has PDRING SYMBOL
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL)
+--R D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL)
+--R D : (%,List(Symbol)) -> % if S has PDRING(SYMBOL)
+--R D : (%,Symbol) -> % if S has PDRING(SYMBOL)
 --R D : (%,NonNegativeInteger) -> % if S has DIFRING
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if S has OINTDOM
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if S has CHARNZ or and(has($,CharacteristicNonZero),has(S,PolynomialFactorizationExplicit))
---R coerce : Symbol -> % if S has RETRACT SYMBOL
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(has($,CharacteristicNonZero),has(S,PolynomialFactorizationExplicit))
+--R coerce : Symbol -> % if S has RETRACT(SYMBOL)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),has(S,PolynomialFactorizationExplicit))
 --R convert : % -> DoubleFloat if S has REAL
 --R convert : % -> Float if S has REAL
---R convert : % -> InputForm if S has KONVERT INFORM
---R convert : % -> Pattern Float if S has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if S has KONVERT PATTERN INT
+--R convert : % -> InputForm if S has KONVERT(INFORM)
+--R convert : % -> Pattern(Float) if S has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if S has KONVERT(PATTERN(INT))
 --R differentiate : (%,(S -> S)) -> %
 --R differentiate : (%,(S -> S),NonNegativeInteger) -> %
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL
---R differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL
---R differentiate : (%,Symbol) -> % if S has PDRING SYMBOL
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if S has PDRING(SYMBOL)
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING(SYMBOL)
+--R differentiate : (%,List(Symbol)) -> % if S has PDRING(SYMBOL)
+--R differentiate : (%,Symbol) -> % if S has PDRING(SYMBOL)
 --R differentiate : (%,NonNegativeInteger) -> % if S has DIFRING
 --R differentiate : % -> % if S has DIFRING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R ?.? : (%,S) -> % if S has ELTAB(S,S)
 --R euclideanSize : % -> NonNegativeInteger
 --R eval : (%,Symbol,S) -> % if S has IEVALAB(SYMBOL,S)
---R eval : (%,List Symbol,List S) -> % if S has IEVALAB(SYMBOL,S)
---R eval : (%,List Equation S) -> % if S has EVALAB S
---R eval : (%,Equation S) -> % if S has EVALAB S
---R eval : (%,S,S) -> % if S has EVALAB S
---R eval : (%,List S,List S) -> % if S has EVALAB S
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R eval : (%,List(Symbol),List(S)) -> % if S has IEVALAB(SYMBOL,S)
+--R eval : (%,List(Equation(S))) -> % if S has EVALAB(S)
+--R eval : (%,Equation(S)) -> % if S has EVALAB(S)
+--R eval : (%,S,S) -> % if S has EVALAB(S)
+--R eval : (%,List(S),List(S)) -> % if S has EVALAB(S)
+--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 S has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if S has PFECAT
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if S has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if S has PFECAT
 --R fractionPart : % -> % if S has EUCDOM
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R max : (%,%) -> % if S has ORDSET
 --R min : (%,%) -> % if S has ORDSET
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R negative? : % -> Boolean if S has OINTDOM
 --R nextItem : % -> Union(%,"failed") if S has STEP
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if S has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if S has PATMAB INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if S has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if S has PATMAB(INT)
 --R positive? : % -> Boolean if S has OINTDOM
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reducedSystem : Matrix % -> Matrix S
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S)
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT
---R reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT
---R retract : % -> Integer if S has RETRACT INT
---R retract : % -> Fraction Integer if S has RETRACT INT
---R retract : % -> Symbol if S has RETRACT SYMBOL
---R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT INT
---R retractIfCan : % -> Union(Symbol,"failed") if S has RETRACT SYMBOL
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reducedSystem : Matrix(%) -> Matrix(S)
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(S),vec: Vector(S))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if S has LINEXP(INT)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if S has LINEXP(INT)
+--R retract : % -> Integer if S has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if S has RETRACT(INT)
+--R retract : % -> Symbol if S has RETRACT(SYMBOL)
+--R retractIfCan : % -> Union(Integer,"failed") if S has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if S has RETRACT(INT)
+--R retractIfCan : % -> Union(Symbol,"failed") if S has RETRACT(SYMBOL)
 --R retractIfCan : % -> Union(S,"failed")
 --R sign : % -> Integer if S has OINTDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if S has PFECAT
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if S has PFECAT
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if S has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if S has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
 --R wholePart : % -> S if S has EUCDOM
@@ -62368,76 +62520,77 @@ digraph pic {
 
 --S 1 of 1
 )show RealClosedField
+--R 
 --R RealClosedField  is a category constructor
 --R Abbreviation for RealClosedField is RCFIELD 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RCFIELD 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (%,Fraction Integer) -> %       ?*? : (Fraction Integer,%) -> %
+--R ?*? : (%,Fraction(Integer)) -> %      ?*? : (Fraction(Integer),%) -> %
 --R ?*? : (%,Integer) -> %                ?*? : (Integer,%) -> %
---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        coerce : Fraction Integer -> %
---R coerce : Integer -> %                 coerce : Fraction Integer -> %
---R coerce : % -> %                       coerce : Fraction Integer -> %
---R coerce : Integer -> %                 coerce : % -> OutputForm
---R factor : % -> Factored %              gcd : (%,%) -> %
---R gcd : List % -> %                     hash : % -> SingleInteger
---R inv : % -> %                          latex : % -> String
---R lcm : (%,%) -> %                      lcm : List % -> %
---R max : (%,%) -> %                      min : (%,%) -> %
---R negative? : % -> Boolean              nthRoot : (%,Integer) -> %
---R one? : % -> Boolean                   positive? : % -> Boolean
---R prime? : % -> Boolean                 ?quo? : (%,%) -> %
---R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R rename : (%,OutputForm) -> %          rename! : (%,OutputForm) -> %
---R retract : % -> Fraction Integer       sample : () -> %
---R sign : % -> Integer                   sizeLess? : (%,%) -> Boolean
---R sqrt : Integer -> %                   sqrt : Fraction Integer -> %
---R sqrt : % -> %                         squareFree : % -> Factored %
---R squareFreePart : % -> %               unit? : % -> Boolean
---R unitCanonical : % -> %                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 coerce : Fraction(Integer) -> %       coerce : Integer -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : Integer -> %
+--R coerce : % -> OutputForm              factor : % -> Factored(%)
+--R gcd : (%,%) -> %                      gcd : List(%) -> %
+--R hash : % -> SingleInteger             inv : % -> %
+--R latex : % -> String                   lcm : (%,%) -> %
+--R lcm : List(%) -> %                    max : (%,%) -> %
+--R min : (%,%) -> %                      negative? : % -> Boolean
+--R nthRoot : (%,Integer) -> %            one? : % -> Boolean
+--R positive? : % -> Boolean              prime? : % -> Boolean
+--R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
+--R ?rem? : (%,%) -> %                    rename : (%,OutputForm) -> %
+--R rename! : (%,OutputForm) -> %         retract : % -> Fraction(Integer)
+--R sample : () -> %                      sign : % -> Integer
+--R sizeLess? : (%,%) -> Boolean          sqrt : Integer -> %
+--R sqrt : Fraction(Integer) -> %         sqrt : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
+--R unit? : % -> Boolean                  unitCanonical : % -> %
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
---R allRootsOf : Polynomial Integer -> List %
---R allRootsOf : Polynomial Fraction Integer -> List %
---R allRootsOf : Polynomial % -> List %
---R allRootsOf : SparseUnivariatePolynomial Integer -> List %
---R allRootsOf : SparseUnivariatePolynomial Fraction Integer -> List %
---R allRootsOf : SparseUnivariatePolynomial % -> List %
---R approximate : (%,%) -> Fraction Integer
+--R allRootsOf : Polynomial(Integer) -> List(%)
+--R allRootsOf : Polynomial(Fraction(Integer)) -> List(%)
+--R allRootsOf : Polynomial(%) -> List(%)
+--R allRootsOf : SparseUnivariatePolynomial(Integer) -> List(%)
+--R allRootsOf : SparseUnivariatePolynomial(Fraction(Integer)) -> List(%)
+--R allRootsOf : SparseUnivariatePolynomial(%) -> List(%)
+--R approximate : (%,%) -> Fraction(Integer)
 --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 : (%,%) -> Record(coef1: %,coef2: %,generator: %)
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed")
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R mainDefiningPolynomial : % -> Union(SparseUnivariatePolynomial %,"failed")
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R mainDefiningPolynomial : % -> Union(SparseUnivariatePolynomial(%),"failed")
 --R mainForm : % -> Union(OutputForm,"failed")
---R mainValue : % -> Union(SparseUnivariatePolynomial %,"failed")
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R retract : % -> Fraction Integer if Fraction Integer has RETRACT FRAC INT
---R retract : % -> Integer if Fraction Integer has RETRACT INT
---R retractIfCan : % -> Union(Fraction Integer,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed") if Fraction Integer has RETRACT FRAC INT
---R retractIfCan : % -> Union(Integer,"failed") if Fraction Integer has RETRACT INT
---R rootOf : (SparseUnivariatePolynomial %,PositiveInteger) -> Union(%,"failed")
---R rootOf : (SparseUnivariatePolynomial %,PositiveInteger,OutputForm) -> Union(%,"failed")
+--R mainValue : % -> Union(SparseUnivariatePolynomial(%),"failed")
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R retract : % -> Fraction(Integer) if Fraction(Integer) has RETRACT(FRAC(INT))
+--R retract : % -> Integer if Fraction(Integer) has RETRACT(INT)
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if Fraction(Integer) has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Integer,"failed") if Fraction(Integer) has RETRACT(INT)
+--R rootOf : (SparseUnivariatePolynomial(%),PositiveInteger) -> Union(%,"failed")
+--R rootOf : (SparseUnivariatePolynomial(%),PositiveInteger,OutputForm) -> Union(%,"failed")
 --R sqrt : (%,NonNegativeInteger) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
@@ -62920,62 +63073,63 @@ digraph pic {
 
 --S 1 of 1
 )show RealNumberSystem
+--R 
 --R RealNumberSystem  is a category constructor
 --R Abbreviation for RealNumberSystem is RNS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for RNS 
 --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        ceiling : % -> %
---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                  factor : % -> Factored %
---R floor : % -> %                        fractionPart : % -> %
---R gcd : List % -> %                     gcd : (%,%) -> %
---R hash : % -> SingleInteger             inv : % -> %
---R latex : % -> String                   lcm : List % -> %
---R lcm : (%,%) -> %                      max : (%,%) -> %
---R min : (%,%) -> %                      negative? : % -> Boolean
---R norm : % -> %                         nthRoot : (%,Integer) -> %
---R one? : % -> Boolean                   positive? : % -> Boolean
---R prime? : % -> Boolean                 ?quo? : (%,%) -> %
---R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---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 ceiling : % -> %                      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 factor : % -> Factored(%)             floor : % -> %
+--R fractionPart : % -> %                 gcd : List(%) -> %
+--R gcd : (%,%) -> %                      hash : % -> SingleInteger
+--R inv : % -> %                          latex : % -> String
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R max : (%,%) -> %                      min : (%,%) -> %
+--R negative? : % -> Boolean              norm : % -> %
+--R nthRoot : (%,Integer) -> %            one? : % -> Boolean
+--R positive? : % -> Boolean              prime? : % -> Boolean
+--R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
+--R ?rem? : (%,%) -> %                    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 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 patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
---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 patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
+--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: %)
@@ -63352,6 +63506,7 @@ digraph pic {
 
 --S 1 of 1
 )show RecursivePolynomialCategory
+--R 
 --R RecursivePolynomialCategory(R: Ring,E: OrderedAbelianMonoidSup,V: OrderedSet)  is a category constructor
 --R Abbreviation for RecursivePolynomialCategory is RPOLCAT 
 --R This constructor is exposed in this frame.
@@ -63363,47 +63518,45 @@ digraph pic {
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
---R D : (%,List V) -> %                   D : (%,V) -> %
+--R D : (%,List(V)) -> %                  D : (%,V) -> %
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        coefficient : (%,E) -> R
---R coefficients : % -> List R            coerce : V -> %
+--R coefficients : % -> List(R)           coerce : V -> %
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              deepestInitial : % -> %
 --R deepestTail : % -> %                  degree : % -> E
---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 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             head : % -> %
 --R headReduce : (%,%) -> %               headReduced? : (%,%) -> Boolean
 --R infRittWu? : (%,%) -> Boolean         init : % -> %
---R initiallyReduce : (%,%) -> %          iteratedInitials : % -> List %
+--R initiallyReduce : (%,%) -> %          iteratedInitials : % -> List(%)
 --R latex : % -> String                   lazyPquo : (%,%,V) -> %
 --R lazyPquo : (%,%) -> %                 lazyPrem : (%,%,V) -> %
 --R lazyPrem : (%,%) -> %                 leadingCoefficient : (%,V) -> %
 --R leadingCoefficient : % -> R           leadingMonomial : % -> %
---R leastMonomial : % -> %                mainCoefficients : % -> List %
---R mainMonomial : % -> %                 mainMonomials : % -> List %
+--R leastMonomial : % -> %                mainCoefficients : % -> List(%)
+--R mainMonomial : % -> %                 mainMonomials : % -> List(%)
 --R map : ((R -> R),%) -> %               mapExponents : ((E -> E),%) -> %
 --R mdeg : % -> NonNegativeInteger        minimumDegree : % -> E
 --R monic? : % -> Boolean                 monicModulo : (%,%) -> %
 --R monomial : (R,E) -> %                 monomial? : % -> Boolean
---R monomials : % -> List %               mvar : % -> V
+--R monomials : % -> List(%)              mvar : % -> V
 --R normalized? : (%,%) -> Boolean        one? : % -> Boolean
 --R pomopo! : (%,R,E,%) -> %              pquo : (%,%,V) -> %
 --R pquo : (%,%) -> %                     prem : (%,%,V) -> %
---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 : (%,V) -> %                 reductum : % -> %
 --R retract : % -> V                      retract : % -> R
 --R sample : () -> %                      supRittWu? : (%,%) -> Boolean
---R tail : % -> %                         variables : % -> List V
+--R tail : % -> %                         variables : % -> List(V)
 --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
@@ -63411,7 +63564,7 @@ digraph pic {
 --R ?<=? : (%,%) -> Boolean if R has ORDSET
 --R ?>? : (%,%) -> Boolean if R has ORDSET
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
---R D : (%,List V,List NonNegativeInteger) -> %
+--R D : (%,List(V),List(NonNegativeInteger)) -> %
 --R D : (%,V,NonNegativeInteger) -> %
 --R LazardQuotient : (%,%,NonNegativeInteger) -> % if R has INTDOM
 --R LazardQuotient2 : (%,%,%,NonNegativeInteger) -> % if R has INTDOM
@@ -63421,27 +63574,29 @@ digraph pic {
 --R binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit)) or R has CHARNZ
---R coefficient : (%,List V,List NonNegativeInteger) -> %
+--R coefficient : (%,List(V),List(NonNegativeInteger)) -> %
 --R coefficient : (%,V,NonNegativeInteger) -> %
 --R coerce : % -> % if R has INTDOM
---R coerce : Fraction Integer -> % if R has RETRACT FRAC INT or R has ALGEBRA FRAC INT
---R coerce : % -> Polynomial R if V has KONVERT SYMBOL
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) or R has ALGEBRA(FRAC(INT))
+--R coerce : % -> Polynomial(R) if V has KONVERT(SYMBOL)
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
 --R content : (%,V) -> % if R has GCDDOM
 --R content : % -> R if R has GCDDOM
---R convert : % -> Polynomial R if V has KONVERT SYMBOL
---R convert : % -> String if R has RETRACT INT and V has KONVERT SYMBOL
---R convert : Polynomial R -> % if V has KONVERT SYMBOL
---R convert : Polynomial Integer -> % if not has(R,Algebra Fraction Integer) and R has ALGEBRA INT and V has KONVERT SYMBOL or R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R convert : Polynomial Fraction Integer -> % if R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R convert : % -> InputForm if V has KONVERT INFORM and R has KONVERT INFORM
---R convert : % -> Pattern Integer if V has KONVERT PATTERN INT and R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if V has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT
---R degree : (%,List V) -> List NonNegativeInteger
+--R convert : % -> Polynomial(R) if V has KONVERT(SYMBOL)
+--R convert : % -> String if R has RETRACT(INT) and V has KONVERT(SYMBOL)
+--R convert : Polynomial(R) -> % if V has KONVERT(SYMBOL)
+--R convert : Polynomial(Integer) -> % if not(has(R,Algebra(Fraction(Integer)))) and R has ALGEBRA(INT) and V has KONVERT(SYMBOL) or R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R convert : Polynomial(Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R convert : % -> InputForm if V has KONVERT(INFORM) and R has KONVERT(INFORM)
+--R convert : % -> Pattern(Integer) if V has KONVERT(PATTERN(INT)) and R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if V has KONVERT(PATTERN(FLOAT)) and R has KONVERT(PATTERN(FLOAT))
+--R degree : (%,List(V)) -> List(NonNegativeInteger)
 --R degree : (%,V) -> NonNegativeInteger
---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(%),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
 --R exactQuotient : (%,%) -> % if R has INTDOM
 --R exactQuotient : (%,R) -> % if R has INTDOM
 --R exactQuotient! : (%,%) -> % if R has INTDOM
@@ -63449,21 +63604,21 @@ digraph pic {
 --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: 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 lastSubResultant : (%,%) -> % if R has INTDOM
 --R lazyPremWithDefault : (%,%,V) -> Record(coef: %,gap: NonNegativeInteger,remainder: %)
 --R lazyPremWithDefault : (%,%) -> Record(coef: %,gap: NonNegativeInteger,remainder: %)
@@ -63471,64 +63626,66 @@ digraph pic {
 --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 mainContent : % -> % if R has GCDDOM
 --R mainPrimitivePart : % -> % if R has GCDDOM
 --R mainSquareFreePart : % -> % if R has GCDDOM
 --R mainVariable : % -> Union(V,"failed")
 --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 monicDivide : (%,%,V) -> Record(quotient: %,remainder: %)
---R monomial : (%,List V,List NonNegativeInteger) -> %
+--R monomial : (%,List(V),List(NonNegativeInteger)) -> %
 --R monomial : (%,V,NonNegativeInteger) -> %
---R multivariate : (SparseUnivariatePolynomial %,V) -> %
---R multivariate : (SparseUnivariatePolynomial R,V) -> %
+--R multivariate : (SparseUnivariatePolynomial(%),V) -> %
+--R multivariate : (SparseUnivariatePolynomial(R),V) -> %
 --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 V has PATMAB INT and R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if V has PATMAB FLOAT and R has PATMAB FLOAT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if V has PATMAB(INT) and R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if V has PATMAB(FLOAT) and R has PATMAB(FLOAT)
 --R primPartElseUnitCanonical : % -> % if R has INTDOM
 --R primPartElseUnitCanonical! : % -> % if R has INTDOM
 --R prime? : % -> Boolean if R has PFECAT
+--R primitiveMonomials : % -> List(%)
 --R primitivePart : (%,V) -> % 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 : (%,%,V) -> % if R has COMRING
---R retract : Polynomial R -> % if not has(R,Algebra Fraction Integer) and not has(R,Algebra Integer) and V has KONVERT SYMBOL or not has(R,IntegerNumberSystem) and not has(R,Algebra Fraction Integer) and R has ALGEBRA INT and V has KONVERT SYMBOL or not has(R,QuotientFieldCategory Integer) and R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R retract : Polynomial Integer -> % if not has(R,Algebra Fraction Integer) and R has ALGEBRA INT and V has KONVERT SYMBOL or R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R retract : Polynomial Fraction Integer -> % if R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Integer if R has RETRACT FRAC INT
---R retractIfCan : Polynomial R -> Union(%,"failed") if not has(R,Algebra Fraction Integer) and not has(R,Algebra Integer) and V has KONVERT SYMBOL or not has(R,IntegerNumberSystem) and not has(R,Algebra Fraction Integer) and R has ALGEBRA INT and V has KONVERT SYMBOL or not has(R,QuotientFieldCategory Integer) and R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R retractIfCan : Polynomial Integer -> Union(%,"failed") if not has(R,Algebra Fraction Integer) and R has ALGEBRA INT and V has KONVERT SYMBOL or R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
---R retractIfCan : Polynomial Fraction Integer -> Union(%,"failed") if R has ALGEBRA FRAC INT and V has KONVERT SYMBOL
+--R retract : Polynomial(R) -> % if not(has(R,Algebra(Fraction(Integer)))) and not(has(R,Algebra(Integer))) and V has KONVERT(SYMBOL) or not(has(R,IntegerNumberSystem)) and not(has(R,Algebra(Fraction(Integer)))) and R has ALGEBRA(INT) and V has KONVERT(SYMBOL) or not(has(R,QuotientFieldCategory(Integer))) and R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R retract : Polynomial(Integer) -> % if not(has(R,Algebra(Fraction(Integer)))) and R has ALGEBRA(INT) and V has KONVERT(SYMBOL) or R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R retract : Polynomial(Fraction(Integer)) -> % if R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Integer) if R has RETRACT(FRAC(INT))
+--R retractIfCan : Polynomial(R) -> Union(%,"failed") if not(has(R,Algebra(Fraction(Integer)))) and not(has(R,Algebra(Integer))) and V has KONVERT(SYMBOL) or not(has(R,IntegerNumberSystem)) and not(has(R,Algebra(Fraction(Integer)))) and R has ALGEBRA(INT) and V has KONVERT(SYMBOL) or not(has(R,QuotientFieldCategory(Integer))) and R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R retractIfCan : Polynomial(Integer) -> Union(%,"failed") if not(has(R,Algebra(Fraction(Integer)))) and R has ALGEBRA(INT) and V has KONVERT(SYMBOL) or R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
+--R retractIfCan : Polynomial(Fraction(Integer)) -> Union(%,"failed") if R has ALGEBRA(FRAC(INT)) and V has KONVERT(SYMBOL)
 --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 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 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
 --E 1
 
@@ -65333,7 +65490,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariateLaurentSeriesCategory
---R UnivariateLaurentSeriesCategory Coef: Ring  is a category constructor
+--R 
+--R UnivariateLaurentSeriesCategory(Coef: Ring)  is a category constructor
 --R Abbreviation for UnivariateLaurentSeriesCategory is ULSCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ULSCAT 
@@ -65359,104 +65517,104 @@ digraph pic {
 --R sample : () -> %                      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 ?**? : (%,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 *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef
---R D : (%,Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
 --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 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 characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if Coef has CHARNZ
 --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 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 *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,Symbol) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
 --R divide : (%,%) -> Record(quotient: %,remainder: %) if Coef has FIELD
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger 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 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 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 ACFS INT and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA FRAC INT or Coef has variables: Coef -> List Symbol and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA FRAC INT
---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 ACFS(INT) and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA(FRAC(INT)) or Coef has variables: Coef -> List(Symbol) and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA(FRAC(INT))
+--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 Integer) -> %
+--R lcm : List(%) -> % if Coef has FIELD
+--R log : % -> % if Coef has ALGEBRA(FRAC(INT))
+--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 nthRoot : (%,Integer) -> % if Coef has ALGEBRA FRAC INT
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R nthRoot : (%,Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--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 rationalFunction : (%,Integer,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
---R rationalFunction : (%,Integer) -> Fraction Polynomial Coef if Coef has INTDOM
+--R rationalFunction : (%,Integer,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
+--R rationalFunction : (%,Integer) -> Fraction(Polynomial(Coef)) if Coef has INTDOM
 --R ?rem? : (%,%) -> % if Coef has FIELD
---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 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 : Stream(Record(k: 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: Integer,c: Coef)
+--R tan : % -> % if Coef has ALGEBRA(FRAC(INT))
+--R tanh : % -> % if Coef has ALGEBRA(FRAC(INT))
+--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
 
@@ -65964,7 +66122,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariatePuiseuxSeriesCategory
---R UnivariatePuiseuxSeriesCategory Coef: Ring  is a category constructor
+--R 
+--R UnivariatePuiseuxSeriesCategory(Coef: Ring)  is a category constructor
 --R Abbreviation for UnivariatePuiseuxSeriesCategory is UPXSCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for UPXSCAT 
@@ -65978,117 +66137,117 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,PositiveInteger) -> %        center : % -> Coef
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R complete : % -> %                     degree : % -> Fraction Integer
+--R complete : % -> %                     degree : % -> Fraction(Integer)
 --R hash : % -> SingleInteger             latex : % -> String
 --R leadingCoefficient : % -> Coef        leadingMonomial : % -> %
 --R map : ((Coef -> Coef),%) -> %         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 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 PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
+--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 PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
 --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 PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
+--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 PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
 --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 ACFS INT and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA FRAC INT or Coef has variables: Coef -> List Symbol and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA FRAC INT
---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 ACFS(INT) and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA(FRAC(INT)) or Coef has variables: Coef -> List(Symbol) and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA(FRAC(INT))
+--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
 
@@ -66580,7 +66739,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariatePolynomialCategory
---R UnivariatePolynomialCategory R: Ring  is a category constructor
+--R 
+--R UnivariatePolynomialCategory(R: Ring)  is a category constructor
 --R Abbreviation for UnivariatePolynomialCategory is UPOLYC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for UPOLYC 
@@ -66594,24 +66754,22 @@ digraph pic {
 --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 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
@@ -66620,141 +66778,144 @@ digraph pic {
 --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 and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit)) 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 RETRACT FRAC INT or R has ALGEBRA FRAC INT
+--R coerce : Fraction(Integer) -> % if R has RETRACT(FRAC(INT)) or R has ALGEBRA(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 and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),has(R,PolynomialFactorizationExplicit))
 --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 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 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 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 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
 
@@ -67767,172 +67928,176 @@ digraph pic {
 
 --S 1 of 1
 )show AlgebraicallyClosedFunctionSpace
---R AlgebraicallyClosedFunctionSpace R: Join(OrderedSet,IntegralDomain)  is a category constructor
+--R 
+--R AlgebraicallyClosedFunctionSpace(R: Join(OrderedSet,IntegralDomain))  is a category constructor
 --R Abbreviation for AlgebraicallyClosedFunctionSpace is ACFS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ACFS 
 --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) -> %        applyQuote : (Symbol,%) -> %
---R applyQuote : (Symbol,%,%) -> %        associates? : (%,%) -> Boolean
---R belong? : BasicOperator -> Boolean    box : % -> %
---R box : List % -> %                     coerce : Kernel % -> %
---R coerce : Symbol -> %                  coerce : R -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
---R coerce : Integer -> %                 coerce : % -> OutputForm
---R distribute : % -> %                   distribute : (%,%) -> %
---R elt : (BasicOperator,%) -> %          elt : (BasicOperator,%,%) -> %
---R eval : (%,Kernel %,%) -> %            eval : (%,List Equation %) -> %
---R eval : (%,Equation %) -> %            eval : (%,%,%) -> %
---R eval : (%,List %,List %) -> %         factor : % -> Factored %
---R freeOf? : (%,%) -> Boolean            freeOf? : (%,Symbol) -> Boolean
---R gcd : List % -> %                     gcd : (%,%) -> %
---R ground : % -> R                       ground? : % -> Boolean
---R hash : % -> SingleInteger             height : % -> NonNegativeInteger
---R inv : % -> %                          is? : (%,Symbol) -> Boolean
---R kernel : (BasicOperator,%) -> %       kernels : % -> List Kernel %
---R latex : % -> String                   lcm : List % -> %
---R lcm : (%,%) -> %                      map : ((% -> %),Kernel %) -> %
+--R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
+--R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
+--R ?-? : (%,%) -> %                      -? : % -> %
+--R ?/? : (%,%) -> %                      ?<? : (%,%) -> Boolean
+--R ?<=? : (%,%) -> Boolean               ?=? : (%,%) -> Boolean
+--R ?>? : (%,%) -> Boolean                ?>=? : (%,%) -> Boolean
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
+--R applyQuote : (Symbol,%) -> %          applyQuote : (Symbol,%,%) -> %
+--R associates? : (%,%) -> Boolean        belong? : BasicOperator -> Boolean
+--R box : % -> %                          box : List(%) -> %
+--R coerce : Kernel(%) -> %               coerce : Symbol -> %
+--R coerce : R -> %                       coerce : Fraction(Integer) -> %
+--R coerce : % -> %                       coerce : Integer -> %
+--R coerce : % -> OutputForm              distribute : % -> %
+--R distribute : (%,%) -> %               elt : (BasicOperator,%) -> %
+--R elt : (BasicOperator,%,%) -> %        eval : (%,Kernel(%),%) -> %
+--R eval : (%,Equation(%)) -> %           eval : (%,%,%) -> %
+--R factor : % -> Factored(%)             freeOf? : (%,%) -> Boolean
+--R freeOf? : (%,Symbol) -> Boolean       gcd : List(%) -> %
+--R gcd : (%,%) -> %                      ground : % -> R
+--R ground? : % -> Boolean                hash : % -> SingleInteger
+--R height : % -> NonNegativeInteger      inv : % -> %
+--R is? : (%,Symbol) -> Boolean           kernel : (BasicOperator,%) -> %
+--R kernels : % -> List(Kernel(%))        latex : % -> String
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R max : (%,%) -> %                      min : (%,%) -> %
 --R nthRoot : (%,Integer) -> %            one? : % -> Boolean
---R paren : % -> %                        paren : List % -> %
+--R paren : % -> %                        paren : List(%) -> %
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R retract : % -> Kernel %               retract : % -> Symbol
+--R retract : % -> Kernel(%)              retract : % -> Symbol
 --R retract : % -> R                      rootOf : (%,Symbol) -> %
---R rootOf : % -> %                       rootOf : Polynomial % -> %
---R rootsOf : (%,Symbol) -> List %        rootsOf : % -> List %
---R rootsOf : Polynomial % -> List %      sample : () -> %
---R sizeLess? : (%,%) -> Boolean          sqrt : % -> %
---R squareFree : % -> Factored %          squareFreePart : % -> %
---R subst : (%,Equation %) -> %           tower : % -> List Kernel %
---R unit? : % -> Boolean                  unitCanonical : % -> %
---R variables : % -> List Symbol          zero? : % -> Boolean
---R zeroOf : (%,Symbol) -> %              zeroOf : % -> %
---R zeroOf : Polynomial % -> %            zerosOf : (%,Symbol) -> List %
---R zerosOf : % -> List %                 zerosOf : Polynomial % -> List %
+--R rootOf : % -> %                       rootOf : Polynomial(%) -> %
+--R rootsOf : (%,Symbol) -> List(%)       rootsOf : % -> List(%)
+--R sample : () -> %                      sizeLess? : (%,%) -> Boolean
+--R sqrt : % -> %                         squareFree : % -> Factored(%)
+--R squareFreePart : % -> %               subst : (%,Equation(%)) -> %
+--R tower : % -> List(Kernel(%))          unit? : % -> Boolean
+--R unitCanonical : % -> %                variables : % -> List(Symbol)
+--R zero? : % -> Boolean                  zeroOf : (%,Symbol) -> %
+--R zeroOf : % -> %                       zeroOf : Polynomial(%) -> %
+--R zerosOf : (%,Symbol) -> List(%)       zerosOf : % -> List(%)
 --R ?~=? : (%,%) -> Boolean              
 --R ?*? : (R,%) -> % if R has COMRING
 --R ?*? : (%,R) -> % if R has COMRING
 --R ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,Fraction(Integer)) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
---R ?/? : (SparseMultivariatePolynomial(R,Kernel %),SparseMultivariatePolynomial(R,Kernel %)) -> % if R has INTDOM
---R D : (%,List Symbol,List NonNegativeInteger) -> % if R has RING
+--R ?/? : (SparseMultivariatePolynomial(R,Kernel(%)),SparseMultivariatePolynomial(R,Kernel(%))) -> % if R has INTDOM
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has RING
 --R D : (%,Symbol,NonNegativeInteger) -> % if R has RING
---R D : (%,List Symbol) -> % if R has RING
+--R D : (%,List(Symbol)) -> % if R has RING
 --R D : (%,Symbol) -> % if R has RING
 --R ?^? : (%,NonNegativeInteger) -> %
 --R applyQuote : (Symbol,%,%,%) -> %
 --R applyQuote : (Symbol,%,%,%,%) -> %
---R applyQuote : (Symbol,List %) -> %
+--R applyQuote : (Symbol,List(%)) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coerce : SparseMultivariatePolynomial(R,Kernel %) -> % if R has RING
---R coerce : Fraction R -> % if R has INTDOM
---R coerce : Polynomial Fraction R -> % if R has INTDOM
---R coerce : Fraction Polynomial Fraction R -> % if R has INTDOM
---R coerce : Fraction Polynomial R -> % if R has INTDOM
---R coerce : Polynomial R -> % if R has RING
+--R coerce : SparseMultivariatePolynomial(R,Kernel(%)) -> % if R has RING
+--R coerce : Fraction(R) -> % if R has INTDOM
+--R coerce : Polynomial(Fraction(R)) -> % if R has INTDOM
+--R coerce : Fraction(Polynomial(Fraction(R))) -> % if R has INTDOM
+--R coerce : Fraction(Polynomial(R)) -> % if R has INTDOM
+--R coerce : Polynomial(R) -> % if R has RING
 --R commutator : (%,%) -> % if R has GROUP
 --R conjugate : (%,%) -> % if R has GROUP
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT
---R convert : Factored % -> % if R has INTDOM
---R convert : % -> InputForm if R has KONVERT INFORM
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT))
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT))
+--R convert : Factored(%) -> % if R has INTDOM
+--R convert : % -> InputForm if R has KONVERT(INFORM)
 --R definingPolynomial : % -> % if $ has RING
---R denom : % -> SparseMultivariatePolynomial(R,Kernel %) if R has INTDOM
+--R denom : % -> SparseMultivariatePolynomial(R,Kernel(%)) if R has INTDOM
 --R denominator : % -> % if R has INTDOM
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if R has RING
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if R has RING
 --R differentiate : (%,Symbol,NonNegativeInteger) -> % if R has RING
---R differentiate : (%,List Symbol) -> % if R has RING
+--R differentiate : (%,List(Symbol)) -> % if R has RING
 --R differentiate : (%,Symbol) -> % if R has RING
 --R divide : (%,%) -> Record(quotient: %,remainder: %)
 --R elt : (BasicOperator,%,%,%) -> %
 --R elt : (BasicOperator,%,%,%,%) -> %
---R elt : (BasicOperator,List %) -> %
+--R elt : (BasicOperator,List(%)) -> %
 --R euclideanSize : % -> NonNegativeInteger
---R eval : (%,List Kernel %,List %) -> %
---R eval : (%,List Symbol,List (% -> %)) -> %
---R eval : (%,List Symbol,List (List % -> %)) -> %
---R eval : (%,Symbol,(List % -> %)) -> %
+--R eval : (%,List(Kernel(%)),List(%)) -> %
+--R eval : (%,List(Equation(%))) -> %
+--R eval : (%,List(%),List(%)) -> %
+--R eval : (%,List(Symbol),List((% -> %))) -> %
+--R eval : (%,List(Symbol),List((List(%) -> %))) -> %
+--R eval : (%,Symbol,(List(%) -> %)) -> %
 --R eval : (%,Symbol,(% -> %)) -> %
---R eval : (%,List BasicOperator,List (% -> %)) -> %
---R eval : (%,List BasicOperator,List (List % -> %)) -> %
---R eval : (%,BasicOperator,(List % -> %)) -> %
+--R eval : (%,List(BasicOperator),List((% -> %))) -> %
+--R eval : (%,List(BasicOperator),List((List(%) -> %))) -> %
+--R eval : (%,BasicOperator,(List(%) -> %)) -> %
 --R eval : (%,BasicOperator,(% -> %)) -> %
---R eval : (%,Symbol) -> % if R has KONVERT INFORM
---R eval : (%,List Symbol) -> % if R has KONVERT INFORM
---R eval : % -> % if R has KONVERT INFORM
---R eval : (%,BasicOperator,%,Symbol) -> % if R has KONVERT INFORM
---R eval : (%,List BasicOperator,List %,Symbol) -> % if R has KONVERT INFORM
---R eval : (%,List Symbol,List NonNegativeInteger,List (% -> %)) -> % if R has RING
---R eval : (%,List Symbol,List NonNegativeInteger,List (List % -> %)) -> % if R has RING
---R eval : (%,Symbol,NonNegativeInteger,(List % -> %)) -> % if R has RING
+--R eval : (%,Symbol) -> % if R has KONVERT(INFORM)
+--R eval : (%,List(Symbol)) -> % if R has KONVERT(INFORM)
+--R eval : % -> % if R has KONVERT(INFORM)
+--R eval : (%,BasicOperator,%,Symbol) -> % if R has KONVERT(INFORM)
+--R eval : (%,List(BasicOperator),List(%),Symbol) -> % if R has KONVERT(INFORM)
+--R eval : (%,List(Symbol),List(NonNegativeInteger),List((% -> %))) -> % if R has RING
+--R eval : (%,List(Symbol),List(NonNegativeInteger),List((List(%) -> %))) -> % if R has RING
+--R eval : (%,Symbol,NonNegativeInteger,(List(%) -> %)) -> % if R has RING
 --R eval : (%,Symbol,NonNegativeInteger,(% -> %)) -> % if R has RING
---R even? : % -> Boolean if $ has RETRACT INT
---R expressIdealMember : (List %,%) -> Union(List %,"failed")
+--R even? : % -> Boolean if $ has RETRACT(INT)
+--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 is? : (%,BasicOperator) -> Boolean
---R isExpt : % -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has SGROUP
---R isExpt : (%,BasicOperator) -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has RING
---R isExpt : (%,Symbol) -> Union(Record(var: Kernel %,exponent: Integer),"failed") if R has RING
---R isMult : % -> Union(Record(coef: Integer,var: Kernel %),"failed") if R has ABELSG
---R isPlus : % -> Union(List %,"failed") if R has ABELSG
+--R isExpt : % -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has SGROUP
+--R isExpt : (%,BasicOperator) -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has RING
+--R isExpt : (%,Symbol) -> Union(Record(var: Kernel(%),exponent: Integer),"failed") if R has RING
+--R isMult : % -> Union(Record(coef: Integer,var: Kernel(%)),"failed") if R has ABELSG
+--R isPlus : % -> Union(List(%),"failed") if R has ABELSG
 --R isPower : % -> Union(Record(val: %,exponent: Integer),"failed") if R has RING
---R isTimes : % -> Union(List %,"failed") if R has SGROUP
---R kernel : (BasicOperator,List %) -> %
---R mainKernel : % -> Union(Kernel %,"failed")
---R minPoly : Kernel % -> SparseUnivariatePolynomial % if $ has RING
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R numer : % -> SparseMultivariatePolynomial(R,Kernel %) if R has RING
+--R isTimes : % -> Union(List(%),"failed") if R has SGROUP
+--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 numer : % -> SparseMultivariatePolynomial(R,Kernel(%)) if R has RING
 --R numerator : % -> % if R has RING
---R odd? : % -> Boolean if $ has RETRACT INT
+--R odd? : % -> Boolean if $ has RETRACT(INT)
 --R operator : BasicOperator -> BasicOperator
---R operators : % -> List BasicOperator
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reducedSystem : Matrix % -> Matrix Integer if and(has(R,Ring),has(R,LinearlyExplicitRingOver Integer)) or and(has(R,LinearlyExplicitRingOver Integer),has(R,Ring))
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if and(has(R,Ring),has(R,LinearlyExplicitRingOver Integer)) or and(has(R,LinearlyExplicitRingOver Integer),has(R,Ring))
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R) if R has RING
---R reducedSystem : Matrix % -> Matrix R if R has RING
---R retract : % -> Fraction Integer if R has RETRACT INT and R has INTDOM or R has RETRACT FRAC INT
---R retract : % -> Integer if R has RETRACT INT
---R retract : % -> Fraction Polynomial R if R has INTDOM
---R retract : % -> Polynomial R if R has RING
---R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT INT and R has INTDOM or R has RETRACT FRAC INT
---R retractIfCan : % -> Union(Kernel %,"failed")
+--R operators : % -> List(BasicOperator)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT)
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reducedSystem : Matrix(%) -> Matrix(Integer) if and(has(R,Ring),has(R,LinearlyExplicitRingOver(Integer))) or and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if and(has(R,Ring),has(R,LinearlyExplicitRingOver(Integer))) or and(has(R,LinearlyExplicitRingOver(Integer)),has(R,Ring))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(R),vec: Vector(R)) if R has RING
+--R reducedSystem : Matrix(%) -> Matrix(R) if R has RING
+--R retract : % -> Fraction(Integer) if R has RETRACT(INT) and R has INTDOM or R has RETRACT(FRAC(INT))
+--R retract : % -> Integer if R has RETRACT(INT)
+--R retract : % -> Fraction(Polynomial(R)) if R has INTDOM
+--R retract : % -> Polynomial(R) if R has RING
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if R has RETRACT(INT) and R has INTDOM or R has RETRACT(FRAC(INT))
+--R retractIfCan : % -> Union(Kernel(%),"failed")
 --R retractIfCan : % -> Union(Symbol,"failed")
---R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT(INT)
 --R retractIfCan : % -> Union(R,"failed")
---R retractIfCan : % -> Union(Fraction Polynomial R,"failed") if R has INTDOM
---R retractIfCan : % -> Union(Polynomial R,"failed") if R has RING
---R rootOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R rootOf : SparseUnivariatePolynomial % -> %
---R rootsOf : (SparseUnivariatePolynomial %,Symbol) -> List %
---R rootsOf : SparseUnivariatePolynomial % -> List %
---R subst : (%,List Equation %) -> %
---R subst : (%,List Kernel %,List %) -> %
+--R retractIfCan : % -> Union(Fraction(Polynomial(R)),"failed") if R has INTDOM
+--R retractIfCan : % -> Union(Polynomial(R),"failed") if R has RING
+--R rootOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R rootOf : SparseUnivariatePolynomial(%) -> %
+--R rootsOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
+--R rootsOf : SparseUnivariatePolynomial(%) -> List(%)
+--R rootsOf : Polynomial(%) -> List(%)
+--R subst : (%,List(Equation(%))) -> %
+--R subst : (%,List(Kernel(%)),List(%)) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %)
---R univariate : (%,Kernel %) -> Fraction SparseUnivariatePolynomial % if R has INTDOM
---R zeroOf : (SparseUnivariatePolynomial %,Symbol) -> %
---R zeroOf : SparseUnivariatePolynomial % -> %
---R zerosOf : (SparseUnivariatePolynomial %,Symbol) -> List %
---R zerosOf : SparseUnivariatePolynomial % -> List %
+--R univariate : (%,Kernel(%)) -> Fraction(SparseUnivariatePolynomial(%)) if R has INTDOM
+--R zeroOf : (SparseUnivariatePolynomial(%),Symbol) -> %
+--R zeroOf : SparseUnivariatePolynomial(%) -> %
+--R zerosOf : (SparseUnivariatePolynomial(%),Symbol) -> List(%)
+--R zerosOf : SparseUnivariatePolynomial(%) -> List(%)
+--R zerosOf : Polynomial(%) -> List(%)
 --R
 --E 1
 
@@ -68536,14 +68701,15 @@ digraph pic {
 
 --S 1 of 1
 )show ExtensionField
---R ExtensionField F: Field  is a category constructor
+--R 
+--R ExtensionField(F: Field)  is a category constructor
 --R Abbreviation for ExtensionField is XF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for XF 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (F,%) -> %                      ?*? : (%,F) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -68553,18 +68719,18 @@ digraph pic {
 --R 0 : () -> %                           ?^? : (%,Integer) -> %
 --R ?^? : (%,PositiveInteger) -> %        algebraic? : % -> Boolean
 --R associates? : (%,%) -> Boolean        coerce : F -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---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 lcm : List(%) -> %                    lcm : (%,%) -> %
 --R one? : % -> Boolean                   prime? : % -> Boolean
 --R ?quo? : (%,%) -> %                    recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    retract : % -> F
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R transcendent? : % -> Boolean          unit? : % -> Boolean
 --R unitCanonical : % -> %                zero? : % -> Boolean
 --R ?~=? : (%,%) -> Boolean              
@@ -68575,21 +68741,21 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if F has CHARNZ or F has FINITE
---R degree : % -> OnePointCompletion PositiveInteger
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if F has CHARNZ or F 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 : () -> OnePointCompletion PositiveInteger
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R order : % -> OnePointCompletion PositiveInteger if F has CHARNZ or F has FINITE
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R order : % -> OnePointCompletion(PositiveInteger) if F has CHARNZ or F has FINITE
 --R primeFrobenius : % -> % if F has CHARNZ or F has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if F has CHARNZ or F has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R retractIfCan : % -> Union(F,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R transcendenceDegree : () -> NonNegativeInteger
@@ -68946,13 +69112,14 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteFieldCategory
+--R 
 --R FiniteFieldCategory  is a category constructor
 --R Abbreviation for FiniteFieldCategory is FFIELDC 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FFIELDC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -68962,14 +69129,14 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        charthRoot : % -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R createPrimitiveElement : () -> %      differentiate : % -> %
---R factor : % -> Factored %              gcd : List % -> %
+--R factor : % -> Factored(%)             gcd : List(%) -> %
 --R gcd : (%,%) -> %                      hash : % -> SingleInteger
 --R index : PositiveInteger -> %          init : () -> %
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
 --R lookup : % -> PositiveInteger         one? : % -> Boolean
 --R order : % -> PositiveInteger          prime? : % -> Boolean
 --R primeFrobenius : % -> %               primitive? : % -> Boolean
@@ -68977,7 +69144,7 @@ digraph pic {
 --R random : () -> %                      recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    sample : () -> %
 --R size : () -> NonNegativeInteger       sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
@@ -68985,23 +69152,23 @@ digraph pic {
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed")
---R conditionP : Matrix % -> Union(Vector %,"failed")
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed")
 --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 factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer)
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer))
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed")
---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 subtractIfCan : (%,%) -> Union(%,"failed")
 --R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger)
@@ -69533,52 +69700,53 @@ digraph pic {
 
 --S 1 of 1
 )show FloatingPointSystem
+--R 
 --R FloatingPointSystem  is a category constructor
 --R Abbreviation for FloatingPointSystem is FPS 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FPS 
 --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 : 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 min : (%,%) -> %                      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 : % -> 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 : 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 : (%,%) -> %                      min : (%,%) -> %
+--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 : % -> 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 bits : PositiveInteger -> PositiveInteger if $ has arbitraryPrecision
@@ -69587,20 +69755,20 @@ digraph pic {
 --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($,arbitraryPrecision) and not has($,arbitraryExponent)
---R min : () -> % if not has($,arbitraryPrecision) and not has($,arbitraryExponent)
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
+--R max : () -> % if not(has($,arbitraryPrecision)) and not(has($,arbitraryExponent))
+--R min : () -> % if not(has($,arbitraryPrecision)) and not(has($,arbitraryExponent))
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%)
 --R precision : PositiveInteger -> PositiveInteger if $ has arbitraryPrecision
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R retractIfCan : % -> Union(Fraction Integer,"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: %)
@@ -70010,7 +70178,8 @@ digraph pic {
 
 --S 1 of 1
 )show FramedAlgebra
---R FramedAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory t#1)  is a category constructor
+--R 
+--R FramedAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory(t#1))  is a category constructor
 --R Abbreviation for FramedAlgebra is FRAMALG 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FRAMALG 
@@ -70022,16 +70191,16 @@ digraph pic {
 --R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R 1 : () -> %                           0 : () -> %
---R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector %
+--R ?^? : (%,PositiveInteger) -> %        basis : () -> Vector(%)
 --R coerce : R -> %                       coerce : Integer -> %
---R coerce : % -> OutputForm              convert : Vector R -> %
---R convert : % -> Vector R               coordinates : % -> Vector R
---R discriminant : () -> R                discriminant : Vector % -> R
+--R coerce : % -> OutputForm              convert : Vector(R) -> %
+--R convert : % -> Vector(R)              coordinates : % -> Vector(R)
+--R discriminant : () -> R                discriminant : Vector(%) -> R
 --R hash : % -> SingleInteger             latex : % -> String
 --R norm : % -> R                         one? : % -> Boolean
 --R rank : () -> PositiveInteger          recip : % -> Union(%,"failed")
---R represents : Vector R -> %            sample : () -> %
---R trace : % -> R                        traceMatrix : () -> Matrix R
+--R represents : Vector(R) -> %           sample : () -> %
+--R trace : % -> R                        traceMatrix : () -> Matrix(R)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
@@ -70039,15 +70208,15 @@ digraph pic {
 --R characteristic : () -> NonNegativeInteger
 --R characteristicPolynomial : % -> UP
 --R charthRoot : % -> Union(%,"failed") if R has CHARNZ
---R coordinates : Vector % -> Matrix R
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : (%,Vector %) -> Vector R
+--R coordinates : Vector(%) -> Matrix(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : (%,Vector(%)) -> Vector(R)
 --R minimalPolynomial : % -> UP if R has FIELD
---R regularRepresentation : % -> Matrix R
---R regularRepresentation : (%,Vector %) -> Matrix R
---R represents : (Vector R,Vector %) -> %
+--R regularRepresentation : % -> Matrix(R)
+--R regularRepresentation : (%,Vector(%)) -> Matrix(R)
+--R represents : (Vector(R),Vector(%)) -> %
 --R subtractIfCan : (%,%) -> Union(%,"failed")
---R traceMatrix : Vector % -> Matrix R
+--R traceMatrix : Vector(%) -> Matrix(R)
 --R
 --E 1
 
@@ -70347,7 +70516,7 @@ digraph pic {
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACFFC 
 --R
 --R------------------------------- Operations --------------------------------
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -70357,17 +70526,17 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R associates? : (%,%) -> Boolean        charthRoot : % -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
 --R conjugate : % -> %                    createPrimitiveElement : () -> %
 --R differentiate : % -> %                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 index : PositiveInteger -> %          init : () -> %
 --R inv : % -> %                          latex : % -> String
---R lcm : List % -> %                     lcm : (%,%) -> %
---R lookup : % -> PositiveInteger         maxTower : List % -> %
+--R lcm : List(%) -> %                    lcm : (%,%) -> %
+--R lookup : % -> PositiveInteger         maxTower : List(%) -> %
 --R one? : % -> Boolean                   order : % -> PositiveInteger
 --R previousTower : % -> %                prime? : % -> Boolean
 --R primeFrobenius : % -> %               primitive? : % -> Boolean
@@ -70375,40 +70544,40 @@ digraph pic {
 --R random : () -> %                      recip : % -> Union(%,"failed")
 --R ?rem? : (%,%) -> %                    sample : () -> %
 --R setTower! : % -> Void                 size : () -> NonNegativeInteger
---R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored %
+--R sizeLess? : (%,%) -> Boolean          squareFree : % -> Factored(%)
 --R squareFreePart : % -> %               unit? : % -> Boolean
---R unitCanonical : % -> %                vectorise : (%,%) -> Vector %
+--R unitCanonical : % -> %                vectorise : (%,%) -> Vector(%)
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed")
---R conditionP : Matrix % -> Union(Vector %,"failed")
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R definingPolynomial : % -> SparseUnivariatePolynomial %
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed")
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--R definingPolynomial : % -> SparseUnivariatePolynomial(%)
 --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 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 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 subtractIfCan : (%,%) -> Union(%,"failed")
 --R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger)
@@ -70712,7 +70881,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariateLaurentSeriesConstructorCategory
---R UnivariateLaurentSeriesConstructorCategory(Coef: Ring,UTS: UnivariateTaylorSeriesCategory t#1)  is a category constructor
+--R 
+--R UnivariateLaurentSeriesConstructorCategory(Coef: Ring,UTS: UnivariateTaylorSeriesCategory(t#1))  is a category constructor
 --R Abbreviation for UnivariateLaurentSeriesConstructorCategory is ULSCCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for ULSCCAT 
@@ -70741,13 +70911,13 @@ digraph pic {
 --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
@@ -70757,10 +70927,10 @@ digraph pic {
 --R ?<=? : (%,%) -> Boolean if and(has(UTS,OrderedSet),has(Coef,Field))
 --R ?>? : (%,%) -> Boolean if and(has(UTS,OrderedSet),has(Coef,Field))
 --R ?>=? : (%,%) -> Boolean if and(has(UTS,OrderedSet),has(Coef,Field))
---R D : (%,Symbol) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,List Symbol) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,Symbol) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
 --R D : % -> % if and(has(UTS,DifferentialRing),has(Coef,Field)) or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,NonNegativeInteger) -> % if and(has(UTS,DifferentialRing),has(Coef,Field)) or Coef has *: (Integer,Coef) -> Coef
 --R D : (%,(UTS -> UTS),NonNegativeInteger) -> % if Coef has FIELD
@@ -70768,45 +70938,45 @@ digraph pic {
 --R ?^? : (%,Integer) -> % if Coef has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
 --R abs : % -> % if and(has(UTS,OrderedIntegralDomain),has(Coef,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 and(has(UTS,IntegerNumberSystem),has(Coef,Field))
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if and(OR(has(UTS,CharacteristicNonZero),and(has($,CharacteristicNonZero),has(UTS,PolynomialFactorizationExplicit))),has(Coef,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 and(has(UTS,RetractableTo Symbol),has(Coef,Field))
+--R coerce : Fraction(Integer) -> % if Coef has ALGEBRA(FRAC(INT))
+--R coerce : Symbol -> % if and(has(UTS,RetractableTo(Symbol)),has(Coef,Field))
 --R coerce : Coef -> % if Coef has COMRING
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(and(has($,CharacteristicNonZero),has(UTS,PolynomialFactorizationExplicit)),has(Coef,Field))
---R convert : % -> Pattern Integer if and(has(UTS,ConvertibleTo Pattern Integer),has(Coef,Field))
---R convert : % -> Pattern Float if and(has(UTS,ConvertibleTo Pattern Float),has(Coef,Field))
---R convert : % -> InputForm if and(has(UTS,ConvertibleTo InputForm),has(Coef,Field))
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(and(has($,CharacteristicNonZero),has(UTS,PolynomialFactorizationExplicit)),has(Coef,Field))
+--R convert : % -> Pattern(Integer) if and(has(UTS,ConvertibleTo(Pattern(Integer))),has(Coef,Field))
+--R convert : % -> Pattern(Float) if and(has(UTS,ConvertibleTo(Pattern(Float))),has(Coef,Field))
+--R convert : % -> InputForm if and(has(UTS,ConvertibleTo(InputForm)),has(Coef,Field))
 --R convert : % -> Float if and(has(UTS,RealConstant),has(Coef,Field))
 --R convert : % -> DoubleFloat if and(has(UTS,RealConstant),has(Coef,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 and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing Symbol),has(Coef,Field)) or Coef has PDRING SYMBOL and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,Symbol) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(UTS,PartialDifferentialRing(Symbol)),has(Coef,Field)) or Coef has PDRING(SYMBOL) and Coef has *: (Integer,Coef) -> Coef
 --R differentiate : % -> % if and(has(UTS,DifferentialRing),has(Coef,Field)) or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,NonNegativeInteger) -> % if and(has(UTS,DifferentialRing),has(Coef,Field)) or Coef has *: (Integer,Coef) -> Coef
 --R differentiate : (%,(UTS -> UTS),NonNegativeInteger) -> % if Coef has FIELD
@@ -70815,90 +70985,90 @@ digraph pic {
 --R ?.? : (%,UTS) -> % if and(has(UTS,Eltable(UTS,UTS)),has(Coef,Field))
 --R ?.? : (%,%) -> % if Integer has SGROUP
 --R euclideanSize : % -> NonNegativeInteger if Coef has FIELD
---R eval : (%,List UTS,List UTS) -> % if and(has(UTS,Evalable UTS),has(Coef,Field))
---R eval : (%,UTS,UTS) -> % if and(has(UTS,Evalable UTS),has(Coef,Field))
---R eval : (%,Equation UTS) -> % if and(has(UTS,Evalable UTS),has(Coef,Field))
---R eval : (%,List Equation UTS) -> % if and(has(UTS,Evalable UTS),has(Coef,Field))
---R eval : (%,List Symbol,List UTS) -> % if and(has(UTS,InnerEvalable(Symbol,UTS)),has(Coef,Field))
+--R eval : (%,List(UTS),List(UTS)) -> % if and(has(UTS,Evalable(UTS)),has(Coef,Field))
+--R eval : (%,UTS,UTS) -> % if and(has(UTS,Evalable(UTS)),has(Coef,Field))
+--R eval : (%,Equation(UTS)) -> % if and(has(UTS,Evalable(UTS)),has(Coef,Field))
+--R eval : (%,List(Equation(UTS))) -> % if and(has(UTS,Evalable(UTS)),has(Coef,Field))
+--R eval : (%,List(Symbol),List(UTS)) -> % if and(has(UTS,InnerEvalable(Symbol,UTS)),has(Coef,Field))
 --R eval : (%,Symbol,UTS) -> % if and(has(UTS,InnerEvalable(Symbol,UTS)),has(Coef,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 and(has(UTS,PolynomialFactorizationExplicit),has(Coef,Field))
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if and(has(UTS,PolynomialFactorizationExplicit),has(Coef,Field))
+--R factor : % -> Factored(%) if Coef has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if and(has(UTS,PolynomialFactorizationExplicit),has(Coef,Field))
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if and(has(UTS,PolynomialFactorizationExplicit),has(Coef,Field))
 --R floor : % -> UTS if and(has(UTS,IntegerNumberSystem),has(Coef,Field))
 --R fractionPart : % -> % if and(has(UTS,EuclideanDomain),has(Coef,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 and(has(UTS,StepThrough),has(Coef,Field))
---R integrate : (%,Symbol) -> % if Coef has ACFS INT and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA FRAC INT or Coef has variables: Coef -> List Symbol and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA FRAC INT
---R integrate : % -> % if Coef has ALGEBRA FRAC INT
+--R integrate : (%,Symbol) -> % if Coef has ACFS(INT) and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA(FRAC(INT)) or Coef has variables: Coef -> List(Symbol) and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA(FRAC(INT))
+--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 and(has(UTS,OrderedSet),has(Coef,Field))
 --R min : (%,%) -> % if and(has(UTS,OrderedSet),has(Coef,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 and(has(UTS,OrderedIntegralDomain),has(Coef,Field))
 --R nextItem : % -> Union(%,"failed") if and(has(UTS,StepThrough),has(Coef,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 and(has(UTS,PatternMatchable Integer),has(Coef,Field))
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if and(has(UTS,PatternMatchable Float),has(Coef,Field))
---R pi : () -> % if Coef has ALGEBRA FRAC INT
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if and(has(UTS,PatternMatchable(Integer)),has(Coef,Field))
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if and(has(UTS,PatternMatchable(Float)),has(Coef,Field))
+--R pi : () -> % if Coef has ALGEBRA(FRAC(INT))
 --R positive? : % -> Boolean if and(has(UTS,OrderedIntegralDomain),has(Coef,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 and(has(UTS,IntegerNumberSystem),has(Coef,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 and(has(UTS,LinearlyExplicitRingOver Integer),has(Coef,Field))
---R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if and(has(UTS,LinearlyExplicitRingOver Integer),has(Coef,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 and(has(UTS,LinearlyExplicitRingOver(Integer)),has(Coef,Field))
+--R reducedSystem : (Matrix(%),Vector(%)) -> Record(mat: Matrix(Integer),vec: Vector(Integer)) if and(has(UTS,LinearlyExplicitRingOver(Integer)),has(Coef,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 and(has(UTS,RetractableTo Symbol),has(Coef,Field))
---R retract : % -> Fraction Integer if and(has(UTS,RetractableTo Integer),has(Coef,Field))
---R retract : % -> Integer if and(has(UTS,RetractableTo Integer),has(Coef,Field))
---R retractIfCan : % -> Union(Symbol,"failed") if and(has(UTS,RetractableTo Symbol),has(Coef,Field))
---R retractIfCan : % -> Union(Fraction Integer,"failed") if and(has(UTS,RetractableTo Integer),has(Coef,Field))
---R retractIfCan : % -> Union(Integer,"failed") if and(has(UTS,RetractableTo Integer),has(Coef,Field))
+--R retract : % -> Symbol if and(has(UTS,RetractableTo(Symbol)),has(Coef,Field))
+--R retract : % -> Fraction(Integer) if and(has(UTS,RetractableTo(Integer)),has(Coef,Field))
+--R retract : % -> Integer if and(has(UTS,RetractableTo(Integer)),has(Coef,Field))
+--R retractIfCan : % -> Union(Symbol,"failed") if and(has(UTS,RetractableTo(Symbol)),has(Coef,Field))
+--R retractIfCan : % -> Union(Fraction(Integer),"failed") if and(has(UTS,RetractableTo(Integer)),has(Coef,Field))
+--R retractIfCan : % -> Union(Integer,"failed") if and(has(UTS,RetractableTo(Integer)),has(Coef,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 and(has(UTS,OrderedIntegralDomain),has(Coef,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 and(has(UTS,PolynomialFactorizationExplicit),has(Coef,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 and(has(UTS,PolynomialFactorizationExplicit),has(Coef,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 and(has(UTS,PolynomialFactorizationExplicit),has(Coef,Field))
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if and(has(UTS,PolynomialFactorizationExplicit),has(Coef,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 and(has(UTS,EuclideanDomain),has(Coef,Field))
 --R
 --E 1
@@ -71579,7 +71749,8 @@ digraph pic {
 
 --S 1 of 1
 )show UnivariatePuiseuxSeriesConstructorCategory
---R UnivariatePuiseuxSeriesConstructorCategory(Coef: Ring,ULS: UnivariateLaurentSeriesCategory t#1)  is a category constructor
+--R 
+--R UnivariatePuiseuxSeriesConstructorCategory(Coef: Ring,ULS: UnivariateLaurentSeriesCategory(t#1))  is a category constructor
 --R Abbreviation for UnivariatePuiseuxSeriesConstructorCategory is UPXSCCA 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for UPXSCCA 
@@ -71594,122 +71765,122 @@ digraph pic {
 --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 PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R D : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
+--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 PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
 --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 PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,List Symbol) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if Coef has PDRING SYMBOL and Coef has *: (Fraction Integer,Coef) -> Coef
+--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 PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,List(Symbol)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if Coef has PDRING(SYMBOL) and Coef has *: (Fraction(Integer),Coef) -> Coef
 --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 ACFS INT and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA FRAC INT or Coef has variables: Coef -> List Symbol and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA FRAC INT
---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 ACFS(INT) and Coef has PRIMCAT and Coef has TRANFUN and Coef has ALGEBRA(FRAC(INT)) or Coef has variables: Coef -> List(Symbol) and Coef has integrate: (Coef,Symbol) -> Coef and Coef has ALGEBRA(FRAC(INT))
+--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
 
@@ -72200,14 +72371,15 @@ digraph pic {
 
 --S 1 of 1
 )show FiniteAlgebraicExtensionField
---R FiniteAlgebraicExtensionField F: Field  is a category constructor
+--R 
+--R FiniteAlgebraicExtensionField(F: Field)  is a category constructor
 --R Abbreviation for FiniteAlgebraicExtensionField is FAXF 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FAXF 
 --R
 --R------------------------------- Operations --------------------------------
 --R ?*? : (F,%) -> %                      ?*? : (%,F) -> %
---R ?*? : (Fraction Integer,%) -> %       ?*? : (%,Fraction Integer) -> %
+--R ?*? : (Fraction(Integer),%) -> %      ?*? : (%,Fraction(Integer)) -> %
 --R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
 --R ?*? : (PositiveInteger,%) -> %        ?**? : (%,Integer) -> %
 --R ?**? : (%,PositiveInteger) -> %       ?+? : (%,%) -> %
@@ -72217,21 +72389,21 @@ digraph pic {
 --R 1 : () -> %                           0 : () -> %
 --R ?^? : (%,Integer) -> %                ?^? : (%,PositiveInteger) -> %
 --R algebraic? : % -> Boolean             associates? : (%,%) -> Boolean
---R basis : () -> Vector %                coerce : F -> %
---R coerce : Fraction Integer -> %        coerce : % -> %
+--R basis : () -> Vector(%)               coerce : F -> %
+--R coerce : Fraction(Integer) -> %       coerce : % -> %
 --R coerce : Integer -> %                 coerce : % -> OutputForm
---R coordinates : % -> Vector F           degree : % -> PositiveInteger
---R dimension : () -> CardinalNumber      factor : % -> Factored %
---R gcd : List % -> %                     gcd : (%,%) -> %
+--R coordinates : % -> Vector(F)          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 : % -> F                         one? : % -> Boolean
 --R prime? : % -> Boolean                 ?quo? : (%,%) -> %
 --R recip : % -> Union(%,"failed")        ?rem? : (%,%) -> %
---R represents : Vector F -> %            retract : % -> F
+--R represents : Vector(F) -> %           retract : % -> F
 --R sample : () -> %                      sizeLess? : (%,%) -> Boolean
---R squareFree : % -> Factored %          squareFreePart : % -> %
+--R squareFree : % -> Factored(%)         squareFreePart : % -> %
 --R trace : % -> F                        transcendent? : % -> Boolean
 --R unit? : % -> Boolean                  unitCanonical : % -> %
 --R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
@@ -72241,52 +72413,52 @@ digraph pic {
 --R Frobenius : (%,NonNegativeInteger) -> % if F has FINITE
 --R Frobenius : % -> % if F has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
---R basis : PositiveInteger -> Vector %
+--R basis : PositiveInteger -> Vector(%)
 --R characteristic : () -> NonNegativeInteger
 --R charthRoot : % -> Union(%,"failed") if F has CHARNZ or F has FINITE
 --R charthRoot : % -> % if F has FINITE
---R conditionP : Matrix % -> Union(Vector %,"failed") if F has FINITE
---R coordinates : Vector % -> Matrix F
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if F has FINITE
+--R coordinates : Vector(%) -> Matrix(F)
 --R createNormalElement : () -> % if F has FINITE
 --R createPrimitiveElement : () -> % if F has FINITE
---R definingPolynomial : () -> SparseUnivariatePolynomial F
---R degree : % -> OnePointCompletion PositiveInteger
+--R definingPolynomial : () -> SparseUnivariatePolynomial(F)
+--R degree : % -> OnePointCompletion(PositiveInteger)
 --R differentiate : (%,NonNegativeInteger) -> % if F has FINITE
 --R differentiate : % -> % if F has FINITE
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if F has CHARNZ or F has FINITE
 --R discreteLog : % -> NonNegativeInteger if F 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 F has FINITE
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if F has FINITE
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
 --R generator : () -> % if F has FINITE
 --R index : PositiveInteger -> % if F has FINITE
 --R init : () -> % if F has FINITE
---R linearAssociatedExp : (%,SparseUnivariatePolynomial F) -> % if F has FINITE
---R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial F,"failed") if F has FINITE
---R linearAssociatedLog : % -> SparseUnivariatePolynomial F if F has FINITE
---R linearAssociatedOrder : % -> SparseUnivariatePolynomial F if F has FINITE
+--R linearAssociatedExp : (%,SparseUnivariatePolynomial(F)) -> % if F has FINITE
+--R linearAssociatedLog : (%,%) -> Union(SparseUnivariatePolynomial(F),"failed") if F has FINITE
+--R linearAssociatedLog : % -> SparseUnivariatePolynomial(F) if F has FINITE
+--R linearAssociatedOrder : % -> SparseUnivariatePolynomial(F) if F has FINITE
 --R lookup : % -> PositiveInteger if F has FINITE
---R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial % if F has FINITE
---R minimalPolynomial : % -> SparseUnivariatePolynomial F
---R multiEuclidean : (List %,%) -> Union(List %,"failed")
+--R minimalPolynomial : (%,PositiveInteger) -> SparseUnivariatePolynomial(%) if F has FINITE
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(F)
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed")
 --R nextItem : % -> Union(%,"failed") if F has FINITE
 --R norm : (%,PositiveInteger) -> % if F has FINITE
 --R normal? : % -> Boolean if F has FINITE
 --R normalElement : () -> % if F has FINITE
---R order : % -> OnePointCompletion PositiveInteger if F has CHARNZ or F has FINITE
+--R order : % -> OnePointCompletion(PositiveInteger) if F has CHARNZ or F has FINITE
 --R order : % -> PositiveInteger if F has FINITE
 --R primeFrobenius : % -> % if F has CHARNZ or F has FINITE
 --R primeFrobenius : (%,NonNegativeInteger) -> % if F has CHARNZ or F has FINITE
 --R primitive? : % -> Boolean if F has FINITE
 --R primitiveElement : () -> % if F has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
 --R random : () -> % if F has FINITE
 --R representationType : () -> Union("prime",polynomial,normal,cyclic) if F has FINITE
 --R retractIfCan : % -> Union(F,"failed")
@@ -72969,7 +73141,8 @@ digraph pic {
 
 --S 1 of 1
 )show MonogenicAlgebra
---R MonogenicAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory t#1)  is a category constructor
+--R 
+--R MonogenicAlgebra(R: CommutativeRing,UP: UnivariatePolynomialCategory(t#1))  is a category constructor
 --R Abbreviation for MonogenicAlgebra is MONOGEN 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for MONOGEN 
@@ -72981,33 +73154,33 @@ digraph pic {
 --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 and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R D : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R D : (%,List Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R D : (%,Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R D : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R D : (%,List(Symbol)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R D : (%,Symbol) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
 --R D : (%,NonNegativeInteger) -> % if and(has(R,DifferentialRing),has(R,Field)) or R has FFIELDC
 --R D : % -> % if and(has(R,DifferentialRing),has(R,Field)) or R has FFIELDC
 --R ?^? : (%,Integer) -> % if R has FIELD
@@ -73017,75 +73190,75 @@ digraph pic {
 --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 and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R differentiate : (%,List Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
---R differentiate : (%,Symbol) -> % if and(has(R,PartialDifferentialRing Symbol),has(R,Field))
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R differentiate : (%,List(Symbol)) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
+--R differentiate : (%,Symbol) -> % if and(has(R,PartialDifferentialRing(Symbol)),has(R,Field))
 --R differentiate : (%,NonNegativeInteger) -> % if and(has(R,DifferentialRing),has(R,Field)) or R has FFIELDC
 --R differentiate : % -> % if and(has(R,DifferentialRing),has(R,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
@@ -73617,70 +73790,70 @@ digraph pic {
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACRATC 
 --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 %,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(%),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
@@ -73989,7 +74162,8 @@ digraph pic {
 
 --S 1 of 1
 )show ComplexCategory
---R ComplexCategory R: CommutativeRing  is a category constructor
+--R 
+--R ComplexCategory(R: CommutativeRing)  is a category constructor
 --R Abbreviation for ComplexCategory is COMPCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for COMPCAT 
@@ -74002,28 +74176,28 @@ digraph pic {
 --R -? : % -> %                           ?=? : (%,%) -> Boolean
 --R D : (%,(R -> R)) -> %                 1 : () -> %
 --R 0 : () -> %                           ?^? : (%,PositiveInteger) -> %
---R abs : % -> % if R has RNS             basis : () -> Vector %
+--R abs : % -> % if R has RNS             basis : () -> Vector(%)
 --R coerce : R -> %                       coerce : Integer -> %
 --R coerce : % -> OutputForm              complex : (R,R) -> %
---R conjugate : % -> %                    convert : Vector R -> %
---R convert : % -> Vector R               coordinates : % -> Vector R
---R discriminant : () -> R                discriminant : Vector % -> R
+--R conjugate : % -> %                    convert : Vector(R) -> %
+--R convert : % -> Vector(R)              coordinates : % -> Vector(R)
+--R discriminant : () -> R                discriminant : Vector(%) -> R
 --R generator : () -> %                   hash : % -> SingleInteger
 --R imag : % -> R                         imaginary : () -> %
 --R inv : % -> % if R has FIELD           latex : % -> String
 --R map : ((R -> R),%) -> %               norm : % -> R
 --R one? : % -> Boolean                   pi : () -> % if R has TRANFUN
 --R rank : () -> PositiveInteger          real : % -> R
---R recip : % -> Union(%,"failed")        represents : Vector R -> %
+--R recip : % -> Union(%,"failed")        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 ?**? : (%,%) -> % if R has TRANFUN
---R ?**? : (%,Fraction Integer) -> % if R has RADCAT and R has TRANFUN
+--R ?**? : (%,Fraction(Integer)) -> % if R has RADCAT and R has TRANFUN
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,%) -> % if R has FIELD
 --R ?<? : (%,%) -> Boolean if R has ORDSET
@@ -74032,10 +74206,10 @@ digraph pic {
 --R ?>=? : (%,%) -> Boolean if R has ORDSET
 --R D : % -> % if and(has(R,Field),has(R,DifferentialRing)) or R has DIFRING or and(has(R,DifferentialRing),has(R,Field))
 --R D : (%,NonNegativeInteger) -> % if and(has(R,Field),has(R,DifferentialRing)) or R has DIFRING or and(has(R,DifferentialRing),has(R,Field))
---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 ?^? : (%,Integer) -> % if R has FIELD
 --R ?^? : (%,NonNegativeInteger) -> %
@@ -74054,22 +74228,22 @@ digraph pic {
 --R atan : % -> % if R has TRANFUN
 --R atanh : % -> % if R has TRANFUN
 --R characteristic : () -> NonNegativeInteger
---R characteristicPolynomial : % -> SparseUnivariatePolynomial R
+--R characteristicPolynomial : % -> SparseUnivariatePolynomial(R)
 --R charthRoot : % -> Union(%,"failed") if and(has($,CharacteristicNonZero),AND(has(R,EuclideanDomain),has(R,PolynomialFactorizationExplicit))) or R has CHARNZ
 --R charthRoot : % -> % if R has FFIELDC
 --R coerce : % -> % if R has INTDOM or R has EUCDOM and R has PFECAT
---R coerce : Fraction Integer -> % if R has FIELD or R has RETRACT FRAC INT
---R conditionP : Matrix % -> Union(Vector %,"failed") if and(has($,CharacteristicNonZero),AND(has(R,EuclideanDomain),has(R,PolynomialFactorizationExplicit))) or R has FFIELDC
---R convert : % -> InputForm if R has KONVERT INFORM
---R convert : % -> Complex DoubleFloat if R has REAL
---R convert : % -> Complex Float if R has REAL
---R convert : % -> Pattern Float if R has KONVERT PATTERN FLOAT
---R convert : % -> Pattern Integer if R has KONVERT PATTERN INT
---R convert : SparseUnivariatePolynomial R -> %
---R convert : % -> SparseUnivariatePolynomial R
---R coordinates : Vector % -> Matrix R
---R coordinates : (Vector %,Vector %) -> Matrix R
---R coordinates : (%,Vector %) -> Vector R
+--R coerce : Fraction(Integer) -> % if R has FIELD or R has RETRACT(FRAC(INT))
+--R conditionP : Matrix(%) -> Union(Vector(%),"failed") if and(has($,CharacteristicNonZero),AND(has(R,EuclideanDomain),has(R,PolynomialFactorizationExplicit))) or R has FFIELDC
+--R convert : % -> InputForm if R has KONVERT(INFORM)
+--R convert : % -> Complex(DoubleFloat) if R has REAL
+--R convert : % -> Complex(Float) if R has REAL
+--R convert : % -> Pattern(Float) if R has KONVERT(PATTERN(FLOAT))
+--R convert : % -> Pattern(Integer) if R has KONVERT(PATTERN(INT))
+--R convert : SparseUnivariatePolynomial(R) -> %
+--R convert : % -> SparseUnivariatePolynomial(R)
+--R coordinates : Vector(%) -> Matrix(R)
+--R coordinates : (Vector(%),Vector(%)) -> Matrix(R)
+--R coordinates : (%,Vector(%)) -> Vector(R)
 --R cos : % -> % if R has TRANFUN
 --R cosh : % -> % if R has TRANFUN
 --R cot : % -> % if R has TRANFUN
@@ -74077,14 +74251,14 @@ digraph pic {
 --R createPrimitiveElement : () -> % if R has FFIELDC
 --R csc : % -> % if R has TRANFUN
 --R csch : % -> % if R has TRANFUN
---R definingPolynomial : () -> SparseUnivariatePolynomial R
---R derivationCoordinates : (Vector %,(R -> R)) -> Matrix R if R has FIELD
+--R definingPolynomial : () -> SparseUnivariatePolynomial(R)
+--R derivationCoordinates : (Vector(%),(R -> R)) -> Matrix(R) if R has FIELD
 --R differentiate : % -> % if and(has(R,Field),has(R,DifferentialRing)) or R has DIFRING or and(has(R,DifferentialRing),has(R,Field))
 --R differentiate : (%,NonNegativeInteger) -> % if and(has(R,Field),has(R,DifferentialRing)) or R has DIFRING or and(has(R,DifferentialRing),has(R,Field))
---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)) -> %
 --R differentiate : (%,(R -> R),NonNegativeInteger) -> %
 --R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if R has FFIELDC
@@ -74093,85 +74267,85 @@ digraph pic {
 --R ?.? : (%,R) -> % if R has ELTAB(R,R)
 --R euclideanSize : % -> NonNegativeInteger if R has EUCDOM
 --R eval : (%,Symbol,R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Symbol,List R) -> % if R has IEVALAB(SYMBOL,R)
---R eval : (%,List Equation R) -> % if R has EVALAB R
---R eval : (%,Equation R) -> % if R has EVALAB R
---R eval : (%,R,R) -> % if R has EVALAB R
---R eval : (%,List R,List R) -> % if R has EVALAB R
+--R eval : (%,List(Symbol),List(R)) -> % if R has IEVALAB(SYMBOL,R)
+--R eval : (%,List(Equation(R))) -> % if R has EVALAB(R)
+--R eval : (%,Equation(R)) -> % if R has EVALAB(R)
+--R eval : (%,R,R) -> % if R has EVALAB(R)
+--R eval : (%,List(R),List(R)) -> % if R has EVALAB(R)
 --R exp : % -> % if R has TRANFUN
---R expressIdealMember : (List %,%) -> Union(List %,"failed") if R has EUCDOM
+--R expressIdealMember : (List(%),%) -> Union(List(%),"failed") if R has EUCDOM
 --R exquo : (%,%) -> Union(%,"failed") if R has INTDOM or R has EUCDOM and R has PFECAT
 --R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
 --R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has EUCDOM
 --R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") if R has EUCDOM
---R factor : % -> Factored % if R has EUCDOM and R has PFECAT or R has FIELD
---R factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has EUCDOM and R has PFECAT
---R factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has EUCDOM and R has PFECAT
---R factorsOfCyclicGroupSize : () -> List Record(factor: Integer,exponent: Integer) if R has FFIELDC
+--R factor : % -> Factored(%) if R has EUCDOM and R has PFECAT or R has FIELD
+--R factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has EUCDOM and R has PFECAT
+--R factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has EUCDOM and R has PFECAT
+--R factorsOfCyclicGroupSize : () -> List(Record(factor: Integer,exponent: Integer)) if R has FFIELDC
 --R gcd : (%,%) -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
---R gcd : List % -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
---R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has EUCDOM or R has EUCDOM and R has PFECAT
+--R gcd : List(%) -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
+--R gcdPolynomial : (SparseUnivariatePolynomial(%),SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has EUCDOM or R has EUCDOM and R has PFECAT
 --R index : PositiveInteger -> % if R has FINITE
 --R init : () -> % if R has FFIELDC
 --R lcm : (%,%) -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
---R lcm : List % -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
---R lift : % -> SparseUnivariatePolynomial R
+--R lcm : List(%) -> % if R has EUCDOM or R has EUCDOM and R has PFECAT
+--R lift : % -> SparseUnivariatePolynomial(R)
 --R log : % -> % if R has TRANFUN
 --R lookup : % -> PositiveInteger if R has FINITE
 --R max : (%,%) -> % if R has ORDSET
 --R min : (%,%) -> % if R has ORDSET
---R minimalPolynomial : % -> SparseUnivariatePolynomial R if R has FIELD
---R multiEuclidean : (List %,%) -> Union(List %,"failed") if R has EUCDOM
+--R minimalPolynomial : % -> SparseUnivariatePolynomial(R) if R has FIELD
+--R multiEuclidean : (List(%),%) -> Union(List(%),"failed") if R has EUCDOM
 --R nextItem : % -> Union(%,"failed") if R has FFIELDC
 --R nthRoot : (%,Integer) -> % if R has RADCAT and R has TRANFUN
---R order : % -> OnePointCompletion PositiveInteger if R has FFIELDC
+--R order : % -> OnePointCompletion(PositiveInteger) if R has FFIELDC
 --R order : % -> PositiveInteger if R has FFIELDC
---R patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB FLOAT
---R patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB INT
+--R patternMatch : (%,Pattern(Float),PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if R has PATMAB(FLOAT)
+--R patternMatch : (%,Pattern(Integer),PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if R has PATMAB(INT)
 --R polarCoordinates : % -> Record(r: R,phi: R) if R has RNS and R has TRANFUN
 --R prime? : % -> Boolean if R has EUCDOM and R has PFECAT or 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 EUCDOM
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %) if R has EUCDOM
 --R ?quo? : (%,%) -> % if R has EUCDOM
 --R random : () -> % if R has FINITE
---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 reduce : Fraction SparseUnivariatePolynomial R -> Union(%,"failed") if R has FIELD
---R reduce : SparseUnivariatePolynomial R -> %
---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 rationalIfCan : % -> Union(Fraction(Integer),"failed") if R has INS
+--R reduce : Fraction(SparseUnivariatePolynomial(R)) -> Union(%,"failed") if R has FIELD
+--R reduce : SparseUnivariatePolynomial(R) -> %
+--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 EUCDOM
 --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 sec : % -> % if R has TRANFUN
 --R sech : % -> % if R has TRANFUN
 --R sin : % -> % if R has TRANFUN
 --R sinh : % -> % if R has TRANFUN
 --R size : () -> NonNegativeInteger if R has FINITE
 --R sizeLess? : (%,%) -> Boolean if R has EUCDOM
---R solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has EUCDOM and R has PFECAT
+--R solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)),SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)),"failed") if R has EUCDOM and R has PFECAT
 --R sqrt : % -> % if R has RADCAT and R has TRANFUN
---R squareFree : % -> Factored % if R has EUCDOM and R has PFECAT or R has FIELD
+--R squareFree : % -> Factored(%) if R has EUCDOM and R has PFECAT or R has FIELD
 --R squareFreePart : % -> % if R has EUCDOM and R has PFECAT or R has FIELD
---R squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has EUCDOM and R has PFECAT
+--R squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has EUCDOM and R has PFECAT
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R tableForDiscreteLogarithm : Integer -> Table(PositiveInteger,NonNegativeInteger) if R has FFIELDC
 --R tan : % -> % if R has TRANFUN
 --R tanh : % -> % if R has TRANFUN
---R traceMatrix : Vector % -> Matrix R
+--R traceMatrix : Vector(%) -> Matrix(R)
 --R unit? : % -> Boolean if R has INTDOM or R has EUCDOM and R has PFECAT
 --R unitCanonical : % -> % if R has INTDOM or R has EUCDOM and R has PFECAT
 --R unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM or R has EUCDOM and R has PFECAT
@@ -75137,160 +75311,162 @@ digraph pic {
 
 --S 1 of 1
 )show FunctionFieldCategory
---R FunctionFieldCategory(F: UniqueFactorizationDomain,UP: UnivariatePolynomialCategory t#1,UPUP: UnivariatePolynomialCategory Fraction t#2)  is a category constructor
+--R 
+--R FunctionFieldCategory(F: UniqueFactorizationDomain,UP: UnivariatePolynomialCategory(t#1),UPUP: UnivariatePolynomialCategory(Fraction(t#2)))  is a category constructor
 --R Abbreviation for FunctionFieldCategory is FFCAT 
 --R This constructor is exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for FFCAT 
 --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 and(has(Fraction UP,Field),has(Fraction UP,DifferentialRing)) or and(has(Fraction UP,DifferentialRing),has(Fraction UP,Field)) or Fraction UP has FFIELDC
---R D : (%,NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,DifferentialRing)) or and(has(Fraction UP,DifferentialRing),has(Fraction UP,Field)) or Fraction UP has FFIELDC
---R D : (%,Symbol) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R D : (%,List Symbol) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R D : (%,Symbol,NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R D : (%,List Symbol,List NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---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 and(has(Fraction(UP),Field),has(Fraction(UP),DifferentialRing)) or and(has(Fraction(UP),DifferentialRing),has(Fraction(UP),Field)) or Fraction(UP) has FFIELDC
+--R D : (%,NonNegativeInteger) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),DifferentialRing)) or and(has(Fraction(UP),DifferentialRing),has(Fraction(UP),Field)) or Fraction(UP) has FFIELDC
+--R D : (%,Symbol) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R D : (%,List(Symbol)) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R D : (%,Symbol,NonNegativeInteger) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R D : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--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 and(has(Fraction UP,Field),has(Fraction UP,DifferentialRing)) or and(has(Fraction UP,DifferentialRing),has(Fraction UP,Field)) or Fraction UP has FFIELDC
---R differentiate : (%,NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,DifferentialRing)) or and(has(Fraction UP,DifferentialRing),has(Fraction UP,Field)) or Fraction UP has FFIELDC
---R differentiate : (%,Symbol) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R differentiate : (%,List Symbol) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
---R differentiate : (%,List Symbol,List NonNegativeInteger) -> % if and(has(Fraction UP,Field),has(Fraction UP,PartialDifferentialRing Symbol)) or and(has(Fraction UP,PartialDifferentialRing Symbol),has(Fraction UP,Field))
+--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 and(has(Fraction(UP),Field),has(Fraction(UP),DifferentialRing)) or and(has(Fraction(UP),DifferentialRing),has(Fraction(UP),Field)) or Fraction(UP) has FFIELDC
+--R differentiate : (%,NonNegativeInteger) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),DifferentialRing)) or and(has(Fraction(UP),DifferentialRing),has(Fraction(UP),Field)) or Fraction(UP) has FFIELDC
+--R differentiate : (%,Symbol) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R differentiate : (%,List(Symbol)) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R differentiate : (%,Symbol,NonNegativeInteger) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
+--R differentiate : (%,List(Symbol),List(NonNegativeInteger)) -> % if and(has(Fraction(UP),Field),has(Fraction(UP),PartialDifferentialRing(Symbol))) or and(has(Fraction(UP),PartialDifferentialRing(Symbol)),has(Fraction(UP),Field))
 --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
 
@@ -76301,85 +76477,86 @@ digraph pic {
 
 --S 1 of 1
 )show PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory
+--R 
 --R PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory  is a category constructor
 --R Abbreviation for PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory is PACEXTC 
 --R This constructor is not exposed in this frame.
 --R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACEXTC 
 --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 ?*? : (%,PseudoAlgebraicClosureOfRationalNumber) -> %
 --R ?*? : (PseudoAlgebraicClosureOfRationalNumber,%) -> %
 --R ?*? : (NonNegativeInteger,%) -> %
 --R ?**? : (%,NonNegativeInteger) -> %
 --R ?/? : (%,PseudoAlgebraicClosureOfRationalNumber) -> %
---R Frobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE
---R Frobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE
+--R Frobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has FINITE
+--R Frobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has FINITE
 --R ?^? : (%,NonNegativeInteger) -> %
 --R characteristic : () -> NonNegativeInteger
---R charthRoot : % -> Union(%,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE
+--R charthRoot : % -> Union(%,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
 --R coerce : PseudoAlgebraicClosureOfRationalNumber -> %
 --R coerce : PseudoAlgebraicClosureOfRationalNumber -> %
---R definingPolynomial : % -> SparseUnivariatePolynomial %
---R definingPolynomial : () -> SparseUnivariatePolynomial %
---R degree : % -> OnePointCompletion PositiveInteger
---R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List %
+--R definingPolynomial : % -> SparseUnivariatePolynomial(%)
+--R definingPolynomial : () -> SparseUnivariatePolynomial(%)
+--R degree : % -> OnePointCompletion(PositiveInteger)
+--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or 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 %,Symbol) -> %
---R newElement : (SparseUnivariatePolynomial %,%,Symbol) -> %
---R order : % -> OnePointCompletion PositiveInteger if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R primeFrobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R primeFrobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE
---R principalIdeal : List % -> Record(coef: List %,generator: %)
---R reduce : SparseUnivariatePolynomial % -> %
+--R extensionDegree : () -> OnePointCompletion(PositiveInteger)
+--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 order : % -> OnePointCompletion(PositiveInteger) if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R primeFrobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R primeFrobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction(Integer) has CHARNZ or Fraction(Integer) has FINITE
+--R principalIdeal : List(%) -> Record(coef: List(%),generator: %)
+--R reduce : SparseUnivariatePolynomial(%) -> %
 --R retract : % -> PseudoAlgebraicClosureOfRationalNumber
 --R retract : % -> PseudoAlgebraicClosureOfRationalNumber
 --R retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed")
 --R retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed")
---R retractIfCan : % -> Union(Fraction Integer,"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
+--R retractIfCan : % -> Union(Fraction(Integer),"failed")
 --R retractIfCan : % -> Union(Integer,"failed")
 --R subtractIfCan : (%,%) -> Union(%,"failed")
 --R transcendenceDegree : () -> NonNegativeInteger
diff --git a/changelog b/changelog
index df33128..700f1e1 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+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
 20120302 tpd src/input/schaum9.input fix bug 7217
 20120302 tpd src/input/schaum8.input fix bug 7217
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 6989d21..e4a2765 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3838,5 +3838,7 @@ books/bookvol0 add )tangle and )regress commands<br/>
 buglist add bugs found during regression test review<br/>
 <a href="patches/20120302.03.tpd.patch">20120302.03.tpd.patch</a>
 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/>
  </body>
 </html>
