diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 7f4b248..91981b1 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -5012,6 +5012,8 @@ BasicOperatorFunctions1(A:SetCategory): Exports == Implementation where
   EVAL    ==> "%eval"
   CONST   ==> "%constant"
   DIFF    ==> "%diff"
+  OUT     ==> OutputForm
+  IN      ==> InputForm
 
   Exports ==> with
     evaluate        : (OP, List A)      -> Union(A, "failed")
@@ -5052,7 +5054,8 @@ BasicOperatorFunctions1(A:SetCategory): Exports == Implementation where
         ++ nullary operator always returning \spad{a}, "failed" otherwise.
 
   Implementation ==> add
-    evaluate(op:OP, func:A -> A) == evaluate(op, func first #1)
+    evaluate(op:OP, func:A -> A) == 
+       evaluate(op, (ll:List(A)):A +-> func first ll)
 
     evaluate op ==
       (func := property(op, EVAL)) case "failed" => "failed"
@@ -5074,12 +5077,12 @@ BasicOperatorFunctions1(A:SetCategory): Exports == Implementation where
 
     derivative(op:OP, f:A -> A) ==
       unary? op or nary? op =>
-        derivative(op, [f first #1]$List(List A -> A))
+        derivative(op, [(ll:List(A)):A +-> f first ll]$List(List A -> A))
       error "Operator is not unary"
 
     if A has OrderedSet then
-      cdisp   : (OutputForm, List OutputForm) -> OutputForm
-      csex    : (InputForm,  List InputForm) -> InputForm
+      cdisp   : (OUT, List OUT) -> OUT
+      csex    : (IN,  List IN) -> IN
       eqconst?: (OP, OP) -> Boolean
       ltconst?: (OP, OP) -> Boolean
       constOp : A -> OP
@@ -5102,16 +5105,18 @@ BasicOperatorFunctions1(A:SetCategory): Exports == Implementation where
            ((va::None) pretend A) < ((vb::None) pretend A)
 
       constOp a ==
-        setProperty(display(copy opconst, cdisp(a::OutputForm, #1)),
-                                                  CONST, a pretend None)
+        setProperty(
+          display(copy opconst, (ll:List(OUT)):OUT +-> cdisp(a::OUT, ll)),
+            CONST, a pretend None)
 
       constantOpIfCan op ==
         is?(op, "constant"::Symbol) and
           ((u := property(op, CONST)) case None) => (u::None) pretend A
         "failed"
 
-      if A has ConvertibleTo InputForm then
-        constantOperator a == input(constOp a, csex(convert a, #1))
+      if A has ConvertibleTo IN then
+        constantOperator a == 
+          input(constOp a, (ll:List(IN)):IN +-> csex(convert a, ll))
       else
         constantOperator a == constOp a
 
diff --git a/changelog b/changelog
index db1058a..677da4f 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090510 tpd src/axiom-website/patches.html 20090510.20.tpd.patch
+20090501 tpd books/bookvol10.4 BOP1 +-> conversion
 20090510 tpd src/axiom-website/patches.html 20090510.19.tpd.patch
 20090510 tpd books/bookvol10.2 AMR +-> conversion
 20090510 tpd src/axiom-website/patches.html 20090510.18.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 32c142c..855d298 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1198,5 +1198,7 @@ bookvol10.2 DIFEXT +-> conversion<br/>
 bookvol10.3 D01ASFA +-> conversion<br/>
 <a href="patches/20090510.19.tpd.patch">20090510.19.tpd.patch</a>
 bookvol10.2 AMR +-> conversion<br/>
+<a href="patches/20090510.20.tpd.patch">20090510.20.tpd.patch</a>
+bookvol10.4 BOP1 +-> conversion<br/>
  </body>
 </html>
