From 130fdb0c8d6f84e3d476fd88e1d4bacc15ca2cc7 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Thu, 27 Jun 2024 16:18:51 +0200 Subject: doc: Document #:hide. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/ref/api-modules.texi (Using Guile Modules): Document #:hide. Signed-off-by: Ludovic Courtès --- doc/ref/api-modules.texi | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi index 9f2bba02d..efe739a25 100644 --- a/doc/ref/api-modules.texi +++ b/doc/ref/api-modules.texi @@ -196,25 +196,32 @@ whose public interface is found and used. @cindex binding renamer @lisp (MODULE-NAME [#:select SELECTION] + [#:hide HIDE] [#:prefix PREFIX] [#:renamer RENAMER]) @end lisp in which case a custom interface is newly created and used. @var{module-name} is a list of symbols, as above; @var{selection} is a -list of selection-specs; @var{prefix} is a symbol that is prepended to -imported names; and @var{renamer} is a procedure that takes a symbol and -returns its new name. A selection-spec is either a symbol or a pair of -symbols @code{(ORIG . SEEN)}, where @var{orig} is the name in the used -module and @var{seen} is the name in the using module. Note that -@var{seen} is also modified by @var{prefix} and @var{renamer}. - -The @code{#:select}, @code{#:prefix}, and @code{#:renamer} clauses are -optional. If all are omitted, the returned interface has no bindings. -If the @code{#:select} clause is omitted, @var{prefix} and @var{renamer} -operate on the used module's public interface. - -In addition to the above, @var{spec} can also include a @code{#:version} +list of selection-specs; @var{hide} is a list of bindings which should +not be imported; @var{prefix} is a symbol that is prepended to imported +names; and @var{renamer} is a procedure that takes a symbol and returns +its new name. A selection-spec is either a symbol or a pair of symbols +@code{(ORIG . SEEN)}, where @var{orig} is the name in the used module +and @var{seen} is the name in the using module. Note that @var{seen} is +also modified by @var{prefix} and @var{renamer}. + +The @code{#:select}, @code{#:hide}, @code{#:prefix}, and +@code{#:renamer} clauses are optional. If all are omitted, the returned +interface has no bindings. If the @code{#:select} clause is omitted, +@var{prefix} and @var{renamer} operate on the used module's public +interface. + +The @code{#:hide} operates on list of bindings in the module being +imported, before any renaming is performed. If both @code{#:select} and +@code{#:hide} contain a binding, the @code{#:hide} wins. + +In addition to the above, @var{spec} can also include a @code{#:version} clause, of the form: @lisp -- cgit v1.2.3