@c -*-texinfo-*-
@c This is part of the GNU G-Golf Reference Manual.
@c Copyright (C) 2016 - 2023 Free Software Foundation, Inc.
@c See the file g-golf.texi for copying conditions.


@node Goops
@subsection Goops


@subheading Syntax, Procedures and Methods

@indentedblock
@table @code
@item @ref{class-direct-virtual-slots}
@item @ref{class-virtual-slots}
@item @ref{class-direct-g-property-slots}
@item @ref{class-g-property-slots}
@item @ref{class-direct-child-id-slots}
@item @ref{class-child-id-slots}
@item @ref{class-direct-g-param-slots}
@item @ref{class-g-param-slots}
@item @ref{mslot-set!}
@item @ref{generic?}
@end table
@end indentedblock


@anchor{class-direct-virtual-slots}
@deffn Method class-direct-virtual-slots (self <class>)

Returns a list.

Obtains and returns the list of the class direct slots for @var{self}
that satisfy the @code{(eq? (slot-definition-allocation slot)
#:virtual)} predicate.
@end deffn


@anchor{class-virtual-slots}
@deffn Method class-virtual-slots (self <class>)

Returns a list.

Obtains and returns the list of the class slots for @var{self} that
satisfy the @code{(eq? (slot-definition-allocation slot) #:virtual)}
predicate.
@end deffn


@anchor{class-direct-g-property-slots}
@deffn Method class-direct-g-property-slots (self <class>)

Returns a list.

Obtains and returns the list of the class direct slots for @var{self}
that satisfy the @code{(eq? (slot-definition-allocation slot)
#:g-property)} predicate.
@end deffn


@anchor{class-g-property-slots}
@deffn Method class-g-property-slots (self <class>)

Returns a list.

Obtains and returns the list of the class slots for @var{self} that
satisfy the @code{(eq? (slot-definition-allocation slot) #:g-property)}
predicate.
@end deffn


@anchor{class-direct-child-id-slots}
@deffn Method class-direct-child-id-slots (self <class>)

Returns a list.

Obtains and returns the list of the class direct slots for @var{self}
that contain a @code{#:child-id} slot definition option.
@end deffn


@anchor{class-child-id-slots}
@deffn Method class-child-id-slots (self <class>)

Returns a list.

Obtains and returns the list of the class slots for @var{self} that
contain a @code{#:child-id} slot definition option.
@end deffn


@anchor{class-direct-g-param-slots}
@deffn Method class-direct-g-param-slots (self <class>)

Returns a list.

Obtains and returns the list of the class direct slots for @var{self}
that contain a @code{#:g-param} slot definition option.
@end deffn


@anchor{class-g-param-slots}
@deffn Method class-g-param-slots (self <class>)

Returns a list.

Obtains and returns the list of the class slots for @var{self} that
contain a @code{#:g-param} slot definition option.
@end deffn


@anchor{mslot-set!}
@deffn Procedure mslot-set! inst s1 v1 s2 v2 s3 v3 @dots{}

Returns nothing.

Performs a multiple @code{slot-set!} for @var{inst}, setting its slot
named @var{s1} to the value @var{v1}, @var{s2} to @var{v2}, @var{s3} to
@var{v3} @dots{}
@end deffn


@anchor{generic?}
@deffn Procedure generic? value

Returns @code{#t} if @var{value} is a @var{<generic>} instance.
Otherwise, it returns @code{#f}.
@end deffn
