diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index f86ff21..35010f3 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -17841,81 +17841,79 @@ o )show Character
Character: OrderedFinite() with
ord: % -> Integer
- ++ ord(c) provides an integral code corresponding to the
- ++ character c. It is always true that \spad{char ord c = c}.
+ ++ord(c) provides an integral code corresponding to the
+ ++character c. It is always true that \spad{char ord c = c}.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [ord c for c in chars]
char: Integer -> %
- ++ char(i) provides a character corresponding to the integer
- ++ code i. It is always true that \spad{ord char i = i}.
+ ++char(i) provides a character corresponding to the integer
+ ++code i. It is always true that \spad{ord char i = i}.
++
++X [char c for c in [97,65,88,56,43]]
char: String -> %
- ++ char(s) provides a character from a string s of length one.
+ ++char(s) provides a character from a string s of length one.
++
++X [char c for c in ["a","A","X","8","+"]]
space: () -> %
- ++ space() provides the blank character.
+ ++space() provides the blank character.
++
++X space()
quote: () -> %
- ++ quote() provides the string quote character, \spad{"}.
+ ++quote() provides the string quote character, \spad{"}.
++
++X quote()
escape: () -> %
- ++ escape() provides the escape character, \spad{_}, which
- ++ is used to allow quotes and other characters within
- ++ strings.
+ ++escape() provides the escape character, \spad{_}, which
+ ++is used to allow quotes and other characters within strings.
++
++X escape()
upperCase: % -> %
- ++ upperCase(c) converts a lower case letter to the corresponding
- ++ upper case letter. If c is not a lower case letter, then
- ++ it is returned unchanged.
+ ++upperCase(c) converts a lower case letter to the corresponding
+ ++upper case letter. If c is not a lower case letter, then
+ ++it is returned unchanged.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [upperCase c for c in chars]
lowerCase: % -> %
- ++ lowerCase(c) converts an upper case letter to the corresponding
- ++ lower case letter. If c is not an upper case letter, then
- ++ it is returned unchanged.
+ ++lowerCase(c) converts an upper case letter to the corresponding
+ ++lower case letter. If c is not an upper case letter, then
+ ++it is returned unchanged.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [lowerCase c for c in chars]
digit?: % -> Boolean
- ++ digit?(c) tests if c is a digit character,
- ++ i.e. one of 0..9.
+ ++digit?(c) tests if c is a digit character, for example, one of 0..9.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [digit? c for c in chars]
hexDigit?: % -> Boolean
- ++ hexDigit?(c) tests if c is a hexadecimal numeral,
- ++ i.e. one of 0..9, a..f or A..F.
+ ++hexDigit?(c) tests if c is a hexadecimal numeral,
+ ++for example, one of 0..9, a..f or A..F.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [hexDigit? c for c in chars]
alphabetic?: % -> Boolean
- ++ alphabetic?(c) tests if c is a letter,
- ++ i.e. one of a..z or A..Z.
+ ++alphabetic?(c) tests if c is a letter,
+ ++for example, one of a..z or A..Z.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [alphabetic? c for c in chars]
upperCase?: % -> Boolean
- ++ upperCase?(c) tests if c is an upper case letter,
- ++ i.e. one of A..Z.
+ ++upperCase?(c) tests if c is an upper case letter,
+ ++for example, one of A..Z.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [upperCase? c for c in chars]
lowerCase?: % -> Boolean
- ++ lowerCase?(c) tests if c is an lower case letter,
- ++ i.e. one of a..z.
+ ++lowerCase?(c) tests if c is an lower case letter,
+ ++for example, one of a..z.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [lowerCase? c for c in chars]
alphanumeric?: % -> Boolean
- ++ alphanumeric?(c) tests if c is either a letter or number,
- ++ i.e. one of 0..9, a..z or A..Z.
+ ++alphanumeric?(c) tests if c is either a letter or number,
+ ++for example, one of 0..9, a..z or A..Z.
++
++X chars := [char "a", char "A", char "X", char "8", char "+"]
++X [alphanumeric? c for c in chars]
diff --git a/buglist b/buglist
index 099838f..f68c18d 100644
--- a/buglist
+++ b/buglist
@@ -5274,59 +5274,6 @@ typos 40023:
"This is an \\spadtype{AbelianMonoid} with the cancellation property, \\spadignore{i.e.} \\tab{5}\\spad{ a+b = a+c \\spad{=>} \\spad{b=c} }.\\br This is formalised by the partial subtraction operator, which satisfies the Axioms\\br \\tab{5}\\spad{c = a+b \\spad{<=>} \\spad{c-b} = a}"
=========================================================================
-typos 40022:
-
->compiling CHAR.spad to CHAR.nrlib
-
---->bookvol10.3.pamphlet-->Character((ord ((Integer) %))): Improper first word in comments:
-"\\indented{1}{ord(c) provides an integral code corresponding to the} \\indented{1}{character c.\\space{2}It is always \\spad{true} that \\spad{char ord \\spad{c} = c}.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [ord \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((char (% (Integer)))): Improper first word in comments:
-"\\indented{1}{char(i) provides a character corresponding to the integer} \\indented{1}{code i. It is always \\spad{true} that \\spad{ord char \\spad{i} = i}.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [97,65,88,56,43]]"
-
---->bookvol10.3.pamphlet-->Character((char (% (String)))): Improper first word in comments:
-"\\indented{1}{char(s) provides a character from a string \\spad{s} of length one.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [\"a\",\"A\",\"X\",\"8\",\"+\"]]"
-
---->bookvol10.3.pamphlet-->Character((space (%))): Improper first word in comments:
-"\\indented{1}{space() provides the blank character.} \\blankline \\spad{X} space()"
-
---->bookvol10.3.pamphlet-->Character((quote (%))): Improper first word in comments:
-"\\indented{1}{quote() provides the string quote character, \\spad{\"}.} \\blankline \\spad{X} quote()"
-
---->bookvol10.3.pamphlet-->Character((escape (%))): Improper first word in comments:
-"\\indented{1}{escape() provides the escape character, \\spad{_}, which} \\indented{1}{is used to allow quotes and other characters within} \\indented{1}{strings.} \\blankline \\spad{X} escape()"
-
---->bookvol10.3.pamphlet-->Character((upperCase (% %))): Improper first word in comments:
-"\\indented{1}{upperCase(c) converts a lower case letter to the corresponding} \\indented{1}{upper case letter.\\space{2}If \\spad{c} is not a lower case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((lowerCase (% %))): Improper first word in comments:
-"\\indented{1}{lowerCase(c) converts an upper case letter to the corresponding} \\indented{1}{lower case letter.\\space{2}If \\spad{c} is not an upper case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Missing left brace
-"\\indented{1}{digit?(c) tests if \\spad{c} is a digit character,} \\indented{1}{\\spadignore{i.e.} one of 0..9.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [digit? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Missing left brace
-"\\indented{1}{hexDigit?(c) tests if \\spad{c} is a hexadecimal numeral,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..f or A..F.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [hexDigit? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Missing left brace
-"\\indented{1}{alphabetic?(c) tests if \\spad{c} is a letter,} \\indented{1}{\\spadignore{i.e.} one of a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphabetic? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Missing left brace
-"\\indented{1}{upperCase?(c) tests if \\spad{c} is an upper case letter,} \\indented{1}{\\spadignore{i.e.} one of A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Missing left brace
-"\\indented{1}{lowerCase?(c) tests if \\spad{c} is an lower case letter,} \\indented{1}{\\spadignore{i.e.} one of a..z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Improper first word in comments:
---->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Missing left brace
-"\\indented{1}{alphanumeric?(c) tests if \\spad{c} is either a letter or number,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphanumeric? \\spad{c} for \\spad{c} in chars]"
-
-=========================================================================
typos 40020:
>compiling COMRING.spad to COMRING.nrlib
@@ -40537,3 +40484,57 @@ typos 40021:
--->bookvol10.2.pamphlet-->Collection(constructor): Missing left brace
"A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However, each collection provides its own special function with the same name as the data type, except with an initial lower case letter, \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List}, \\spadfun{flexibleArray} for \\spadtype{FlexibleArray}, and so on."
+fixed 20130316.01.tpd.patch
+=========================================================================
+typos 40022:
+
+>compiling CHAR.spad to CHAR.nrlib
+
+--->bookvol10.3.pamphlet-->Character((ord ((Integer) %))): Improper first word in comments:
+"\\indented{1}{ord(c) provides an integral code corresponding to the} \\indented{1}{character c.\\space{2}It is always \\spad{true} that \\spad{char ord \\spad{c} = c}.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [ord \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((char (% (Integer)))): Improper first word in comments:
+"\\indented{1}{char(i) provides a character corresponding to the integer} \\indented{1}{code i. It is always \\spad{true} that \\spad{ord char \\spad{i} = i}.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [97,65,88,56,43]]"
+
+--->bookvol10.3.pamphlet-->Character((char (% (String)))): Improper first word in comments:
+"\\indented{1}{char(s) provides a character from a string \\spad{s} of length one.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [\"a\",\"A\",\"X\",\"8\",\"+\"]]"
+
+--->bookvol10.3.pamphlet-->Character((space (%))): Improper first word in comments:
+"\\indented{1}{space() provides the blank character.} \\blankline \\spad{X} space()"
+
+--->bookvol10.3.pamphlet-->Character((quote (%))): Improper first word in comments:
+"\\indented{1}{quote() provides the string quote character, \\spad{\"}.} \\blankline \\spad{X} quote()"
+
+--->bookvol10.3.pamphlet-->Character((escape (%))): Improper first word in comments:
+"\\indented{1}{escape() provides the escape character, \\spad{_}, which} \\indented{1}{is used to allow quotes and other characters within} \\indented{1}{strings.} \\blankline \\spad{X} escape()"
+
+--->bookvol10.3.pamphlet-->Character((upperCase (% %))): Improper first word in comments:
+"\\indented{1}{upperCase(c) converts a lower case letter to the corresponding} \\indented{1}{upper case letter.\\space{2}If \\spad{c} is not a lower case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((lowerCase (% %))): Improper first word in comments:
+"\\indented{1}{lowerCase(c) converts an upper case letter to the corresponding} \\indented{1}{lower case letter.\\space{2}If \\spad{c} is not an upper case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Missing left brace
+"\\indented{1}{digit?(c) tests if \\spad{c} is a digit character,} \\indented{1}{\\spadignore{i.e.} one of 0..9.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [digit? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Missing left brace
+"\\indented{1}{hexDigit?(c) tests if \\spad{c} is a hexadecimal numeral,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..f or A..F.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [hexDigit? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Missing left brace
+"\\indented{1}{alphabetic?(c) tests if \\spad{c} is a letter,} \\indented{1}{\\spadignore{i.e.} one of a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphabetic? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Missing left brace
+"\\indented{1}{upperCase?(c) tests if \\spad{c} is an upper case letter,} \\indented{1}{\\spadignore{i.e.} one of A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Missing left brace
+"\\indented{1}{lowerCase?(c) tests if \\spad{c} is an lower case letter,} \\indented{1}{\\spadignore{i.e.} one of a..z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Improper first word in comments:
+--->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Missing left brace
+"\\indented{1}{alphanumeric?(c) tests if \\spad{c} is either a letter or number,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphanumeric? \\spad{c} for \\spad{c} in chars]"
+
diff --git a/changelog b/changelog
index bb6699f..a1ee150 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20130316 tpd src/axiom-website/patches.html 20130316.01.tpd.patch
+20130316 tpd buglist CHAR fix 40022
+20130316 tpd books/bookvol10.3 CHAR fix 40022
20130315 tpd src/axiom-website/patches.html 20130315.09.tpd.patch
20130315 tpd buglist CLAGG fixed 40021
20130315 tpd books/bookvol10.2 CLAGG fixed 40021
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 5d13b3f..c734287 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4069,5 +4069,7 @@ books/bookvol0 add linebreak on p988
books/bookvol10.3 DFLOAT fixed 40019
20130315.09.tpd.patch
books/bookvol10.2 CLAGG fixed 40021
+20130316.01.tpd.patch
+books/bookvol10.3 CHAR fix 40022