<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/xoper.sgml,v 1.27 2003/10/21 22:51:14 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/xoper.sgml,v 1.28 2003/10/22 03:50:27 tgl Exp $
 -->
 
  <sect1 id="xoper">
 CREATE FUNCTION complex_add(complex, complex)
     RETURNS complex
     AS '<replaceable>filename</replaceable>', 'complex_add'
-    LANGUAGE C;
+    LANGUAGE C IMMUTABLE STRICT;
 
 CREATE OPERATOR + (
     leftarg = complex,
     </para>
 
     <para>
-     The left operand type of a commuted operator is the same as the
+     The left operand type of a commutable operator is the same as the
      right operand type of its commutator, and vice versa.  So the name of
      the commutator operator is all that <ProductName>PostgreSQL</ProductName>
      needs to be given to look up the commutator, and that's all that needs to
      <literal>tab2.y = tab1.x</>, because the indexscan machinery expects
      to see the indexed column on the left of the operator it is given.
      <ProductName>PostgreSQL</ProductName> will <emphasis>not</> simply
-     assume that this is a valid transformation --- the definer of the
+     assume that this is a valid transformation --- the creator of the
      <literal>=</> operator must specify that it is valid, by marking the
      operator with commutator information.
     </para>