API for package: example

This is a small library which includes a few functions with docstrings and a documentation
for the system and all included packages.

The purpose is to demonstrate core features of the
CL-API (https://common-lisp.net/project/cl-api/) library.

The repository can be used as a template for new libraries if you've choosen CL-API
for documenting your library.

-Variables
number-one: ((EXAMPLE::A EXAMPLE::B EXAMPLE::C)) variable
UNDOCUMENTED
-Classes
admin (user) class
Admins should have additional priveleges.
user (standard-object) class
All users in the system have this class.

Last login slot is updated automatically.
SLOTS
name reader: name
A full username.
email reader: email
Correct email address.
last-login-at reader: last-login-at writer: last-login-at
UNDOCUMENTED
-Functions
defrule name &body body function
This is a fake macro just to see if documentation
extractor is able to extract docs from custom forms.
do-the-job first second function
The function does the job.

It *concatenates* first and second arguments
calling internal function concat.

On this multiline we'll check how does documentation
system processes docstrings. It does not deindent
subsequent lines and I have to shift them to the left
in the code.
email object standard-generic-function
:undocumented
foo first &key (other 100500) function
This is example function.

Internally it calls EXAMPLE:DO-THE-JOB)
to do the real job.

CL-API does not support any markup and you can
put links into the docstrings.
last-login-at object standard-generic-function
:undocumented
(setf last-login-at) new-value object standard-generic-function
:undocumented
name object standard-generic-function
:undocumented
-Macros
defrule name &body body macro
This is a fake macro just to see if documentation
extractor is able to extract docs from custom forms.