.. index:: user
.. _user/0:

.. rst-class:: right

**object**

``user``
========

Pseudo-object representing the plain Prolog database. Can be used as a monitor by defining ``before/3`` and ``after/3`` predicates. Can be used as a hook object by defining ``term_expansion/2`` and ``goal_expansion/2`` multifile and dynamic predicates.

| **Availability:** 
|    ``built_in``

| **Author:** Paulo Moura
| **Version:** 1:5:0
| **Date:** 2022-10-12

| **Compilation flags:**
|    ``static, built_in, context_switching_calls, dynamic_declarations, threaded``


| **Implements:**
|    ``public`` :ref:`expanding <expanding/0>`
|    ``public`` :ref:`forwarding <forwarding/0>`
|    ``public`` :ref:`monitoring <monitoring/0>`
| **Uses:**
|    :ref:`user <user/0>`

| **Remarks:**
|    (none)

| **Inherited public predicates:**
|     :ref:`monitoring/0::after/3`  :ref:`monitoring/0::before/3`  :ref:`forwarding/0::forward/1`  :ref:`expanding/0::goal_expansion/2`  :ref:`expanding/0::term_expansion/2`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

(no local declarations; see entity ancestors if any)

Operators
---------

(none)

