-The first argument is the function's name, the second, third and fourth
-bind the corresponding methods to this objects and the fifth is a slot
-for inserting a method for series expansion. (If set to @code{NULL} it
-defaults to simple Taylor expansion, which is correct if there are no
-poles involved. The way GiNaC handles poles in case there are any is
-best understood by studying one of the examples, like the Gamma function
-for instance. In essence the function first checks if there is a pole
-at the evaluation point and falls back to Taylor expansion if there
-isn't. Then, the pole is regularized by some suitable transformation.)
-Also, the new function needs to be declared somewhere. This may also be
-done by a convenient preprocessor macro:
+The first argument is the function's name used for calling it and for
+output. The second binds the corresponding methods as options to this
+object. Options are separated by a dot and can be given in an arbitrary
+order. GiNaC functions understand several more options which are always
+specified as @code{.option(params)}, for example a method for series
+expansion @code{.series_func(cos_series)}. Again, if no series
+expansion method is given, GiNaC defaults to simple Taylor expansion,
+which is correct if there are no poles involved as is the case for the
+@code{cos} function. The way GiNaC handles poles in case there are any
+is best understood by studying one of the examples, like the Gamma
+function for instance. (In essence the function first checks if there
+is a pole at the evaluation point and falls back to Taylor expansion if
+there isn't. Then, the pole is regularized by some suitable
+transformation.) Also, the new function needs to be declared somewhere.
+This may also be done by a convenient preprocessor macro: