Last (for a little while) GOOPs doc fix
[bpt/guile.git] / doc / ref / goops.texi
index fc114f2..95e71da 100644 (file)
@@ -1777,7 +1777,7 @@ as the Guile primitive @code{write} and @code{display} functions.
 
 In addition to the cases mentioned, you can of course define
 @code{write} and @code{display} methods for your own classes, to
-customize how they are printed.
+customize how instances of those classes are printed.
 
 
 @node The Metaobject Protocol
@@ -2387,15 +2387,14 @@ calls@dots{}
 @item
 @code{compute-getter-method @var{class} @var{gns}} (generic)
 
-@code{initialize} calls @code{compute-getter-method} for each of the class's
-slots (as determined by @code{compute-slots}) that includes a
+@code{initialize} calls @code{compute-getter-method} for each of the
+class's slots (as determined by @code{compute-slots}) that includes a
 @code{#:getter} or @code{#:accessor} slot option.  @var{gns} is the
-element of the @var{class} metaobject's @code{getters-n-setters} slot that
-specifies how the slot in question is referenced and set, as described
-above under @code{compute-get-n-set}.  The applied method should create
-and return a method that is specialized for instances of type @var{class}
-and uses the get closure to retrieve the slot's value.  [ *fixme  Need
-to insert something here about checking that the value is not unbound. ]
+element of the @var{class} metaobject's @code{getters-n-setters} slot
+that specifies how the slot in question is referenced and set, as
+described above under @code{compute-get-n-set}.  The applied method
+should create and return a method that is specialized for instances of
+type @var{class} and uses the get closure to retrieve the slot's value.
 @code{initialize} uses @code{add-method!} to add the returned method to
 the generic function named by the slot definition's @code{#:getter} or
 @code{#:accessor} option.
@@ -2522,7 +2521,9 @@ and/or after calling @code{(next-method)} for the standard behaviour.
 @itemize @bullet
 @item
 @code{add-method! @var{target} @var{method}} (generic)
+@end itemize
 
+@noindent
 @code{define-method} invokes the @code{add-method!} generic function to
 handle adding the new method to a variety of possible targets.  GOOPS
 includes methods to handle @var{target} as
@@ -2540,12 +2541,12 @@ a primitive generic (@pxref{Extending Primitives})
 
 By defining further methods for @code{add-method!}, you can
 theoretically handle adding methods to further types of target.
-@end itemize
+
 
 @node Method Definition Internals
 @subsection Method Definition Internals
 
-@code{define-method}
+@code{define-method}:
 
 @itemize @bullet
 @item
@@ -2575,7 +2576,8 @@ The @var{parameter} and @var{body} parameters should be as for
 define-method}).
 @end deffn
 
-@code{method}
+@noindent
+@code{method}:
 
 @itemize @bullet
 @item
@@ -2601,6 +2603,7 @@ parameter combinations to which this method will be applicable.
 function parameters when this method is invoked.
 @end deffn
 
+@noindent
 @code{make-method} is a simple wrapper around @code{make} with metaclass
 @code{<method>}.
 
@@ -2701,48 +2704,48 @@ accessor, passing the setter generic function as the value of the
 @node Generic Function Invocation
 @subsection Generic Function Invocation
 
-[ *fixme* Description required here. ]
+There is a detailed and customizable protocol involved in the process of
+invoking a generic function --- i.e., in the process of deciding which
+of the generic function's methods are applicable to the current
+arguments, and which one of those to apply.  Here is a summary diagram
+of the generic functions involved.
 
-@code{apply-generic}
+@noindent
+@code{apply-generic} (generic)
 
 @itemize @bullet
 @item
-@code{no-method}
-
-@item
-@code{compute-applicable-methods}
+@code{no-method} (generic)
 
 @item
-@code{sort-applicable-methods}
+@code{compute-applicable-methods} (generic)
 
 @item
-@code{apply-methods}
+@code{sort-applicable-methods} (generic)
 
+@itemize @bullet
 @item
-@code{no-applicable-method}
+@code{method-more-specific?} (generic)
 @end itemize
 
-@code{sort-applicable-methods}
+@item
+@code{apply-methods} (generic)
 
 @itemize @bullet
 @item
-@code{method-more-specific?}
-@end itemize
-
-@code{apply-methods}
+@code{apply-method} (generic)
 
-@itemize @bullet
 @item
-@code{apply-method}
+@code{no-next-method} (generic)
 @end itemize
 
-@code{next-method}
-
-@itemize @bullet
 @item
-@code{no-next-method}
+@code{no-applicable-method}
 @end itemize
 
+We do not yet have full documentation for these.  Please refer to the
+code (@file{oop/goops.scm}) for details.
+
 
 @node Redefining a Class
 @section Redefining a Class