documentation fixes

parent 54e5f113
......@@ -1729,13 +1729,14 @@ Then to reset the parser and prolog flags use,
@findex reset-char-conversion
@findex reset-flags
@findex reset-prolog
@findex prolog-run
@code{(reset-operator-map)}
@code{(reset-char-conversion)}
@code{(reset-flags)}
@code{(rest-prolog)}, will do all of the above rest functions.
@code{(reset-prolog)}, will do all of the above rest functions.
To run a prolog program one need to use a special program that essentially will
setup an suitable error handler for prolog and issue a guile-log @code{<run>} command e.g.,
......@@ -1767,18 +1768,18 @@ This will have the namespce @code{guile-user}, so we need to import the prolog
code bt
@verbatim
prolog@(guile-user)> [use-modules (logic guile-log iso-prolog)]
prolog@(guile-user)> .[use-modules (logic guile-log iso-prolog)]
prolog@(guile-user)>
@end verbatim
This is pretty hackable, you will have all guile and all prolog in the same environment. If you want to be more prolog centring, you can do
This is pretty hackable, you will have all guile and all prolog in the same environment. If you want to be more prolog centric environment, you can in case the is-prolog is loaded do
@verbatim
prolog@(guile-user)> default_module().
prolog@(prolog-user)>
@end verbatim
This will make sure that we hack in a module where all scheme is preficed by @code{scm-} this together with the naming conventiion in prolog to use @code{'_'} in stead of @code{'-'} we risk less mixups.
This will make sure that we hack in a module where all scheme is preficed by @code{scm-} this together with the naming convention in prolog to use @code{'_'} in stead of @code{'-'} we risk less mixups.
As we saw, if the first character is @code{'['}, then in everything until the next @code{]} will be treated as a scheme expression. This is handy to evaluate scheme without switching the language. What's nice is that all shell commands that guile has (prefixed with @code{','}) is preserved so that one can basically do all of
As we saw, if the first character is @code{'.['}, then in everything until the next @code{]} will be treated as a scheme expression. This is handy to evaluate scheme without switching the language. What's nice is that all shell commands that guile has (prefixed with @code{','}) is preserved so that one can basically do all of
@verbatim
prolog@(guile-user)> ,h all
Help Commands [abbrev]:
......@@ -1868,16 +1869,15 @@ HELP FOR PROLOG COMMANDS
(.once | .1 ) try to find one solution
(.mute | .m ) no value output is written.
---------------------------------------------------------------------
(.save | .s ) <ref> associate current state with ref
(.load | .l ) <ref> restore associate state with ref
(.save | .s ) <ref> associate current state with name ref
(.load | .l ) <ref> restore associate state with name ref
(.cont | .c ) continue the execution from last stall point
(.lold | .lo) restore the last state at a stall
(.clear ) clear the prolog stack and state
---------------------------------------------------------------------
(.ref ) <ref> get value of reference user variable ref
(.set ) <ref> <val> set user variable ref to value val
---------------------------------------------------------------------
(.clear ) clear the prolog stack and state
---------------------------------------------------------------------
prolog@(guile-user)>
@end verbatim
......@@ -1896,7 +1896,7 @@ There is an api that can be used with convinience goals to be used in code to ta
@subsection state
It is possible to store a state interactively and later retrieve the state through a mechansim that brings back control to the interpreter. You do that with
@findex stall
@code{prolog stall/0}. This will escape the program and return control to the shell.
in the shell you can store the state, retrieve a state and continue the execution from the actual state. Then by using global variables or user variables (preserved when storing the state) it is possible to create very nice interactive conversations for e.g. proof solvers and such. Also by using the dynamic feature framework one can contoll very fine grained how the state should be stored and restored.
......@@ -1904,6 +1904,8 @@ in the shell you can store the state, retrieve a state and continue the executio
@subsection user variables.
It is possible to use a special global variable in code and in the interactive prolog shell. They differ from global variables in that they are stored and restored relative the state. To use normal global variables just use the scheme globals and the @code{scm[...]} idiom to get the value. Ther is an accompanion
@findex usr_ref
@findex usr_set
@code{prolog user_ref(name,Var)} To ref a user variable called @code{name} int @code{Var}.
@code{prolog user_set(name,val)} To set a user variable @code{name} to @code{val}
......@@ -1963,6 +1965,11 @@ subsubsection Example
@subsection Controling module unification
Sigilling a variable with @code{X@@module_a} means that we will validate the curent data of the variable. It is desireable e.g. in sandboxing that the module environment cannot change. In the future we will be able to produce sandboxing, but in the current version it is not safe to use it, but we have prepared a little with the current codebase. To control this we can use the api that can be reached from,
@findex error_on_namespace_switch
@findex fail_on_namespace_switch
@findex ok_on_namespece_switch
@findex get_namespace_switch_handle
@code{scheme (use-modules (logic guile-log prolog namespace)).}
@code{prolog error_on_namespace_switch/0, fail_on_namespace_switch/0, ok_on_namespece_switch/0}, with the obvious semantic.
......@@ -1974,6 +1981,10 @@ Also to get an handle to restrict and guard this information one may use,
then if handle can be used by the dynamic features framework and make sure that we will never success although we move from state to state friously and a value can be guaranteed to be fixed inside a code segment.
It's possible to specify a whitelist to handle if one allow changes of namespaces in a unification that include namespacing e.g.
@findex set_no_whitelist
@findex namespace_white_list_set
@findex namespace_white_list_ref
@findex namespace_white_list_handle
@code{prolog set_no_whitelist/0}
......@@ -1987,7 +1998,11 @@ Here @code{Local = true/0 or false/0} specifies that the directory is allows ref
@node scheme
@section hooking in scheme expressions,
We can insert scheme expressions with the construct @code{scm[sexp]}. You can insert it like
We can insert scheme expressions with the construct @code{scm[sexp]}. You can insert it like, remember that this ideam is always executed at the composition of a list e.g. they are not lazy by any means.
@findex scm[]
@findex do[]
@findex with[]
1) directives
@code{:- scm[(export a b c)]}
......@@ -1999,6 +2014,9 @@ We can insert scheme expressions with the construct @code{scm[sexp]}. You can in
3) In expression constructs
@code{f(X) :- X is scm[(dub X)]}.
It's possible to execute a scheme expression in a goal for secondary effects by e.g. @code{do[...]}, the value of the scheme expression inside the bracket will never be exposed and, it's fine to put the do expressions inside a list, they will be constructed a lazy expression and only evaluated if it later is executed as a goal. Another variant if this is @code{with[...]}, the difference is that the value of the scheme expression inside a bracked will guide the success of the goal if it is false then the goal failes.
To note is that currently we have no way of protecting code that are read by e.g. @code{read_term} to include any of these expressions, hence there it is not safe to read in code and execute it, beware. A feature request is an ability to turn off this feature when reading in terms. There is two other holes left in order to safely be able to execute code inside a sandbox. First namespacing has to be controlled and secondly namespaced code that are read in, that refers to a macro inside the guile code base will run. The solution to the first is already implemented, we can specify which namespaces we allow for the code read in. And for the second issue we can add code that checks that the read in functions does not refer to a macro, again included in our Todo.
@node closures
@section closures in prolog
......@@ -2022,12 +2040,20 @@ Then @code{a} is local and @code{b} will create a parent name of the closure whi
To control the behavior of unification of closed closures, we will have the following api found in @code{[use-modules (logic guile-log prolog closed)]}.,
@findex error_at_closed_p_handle
@findex close_error_true
@findex close_error_false
@code{prolog error_at_closed_p_handle(Handle)}, this predicate fetches a handle that represent the predicate of issuing a fail at non matching unification of the codes part of a closed closure. This handle can be guarded by the ideoms in the section about dynamic features so it is really simple to restrict the value to just one part of the code. For a @code{true} value of the handle, error will happen at a code missmatch in a unification with at least one closed closure, and else if @code{false}, backtracking will result.
@code{prolog close_error_true/0 close_error_false/0}, use these funcitons to turn on/off the throwing of error at unification missmatcehs of closed closures code part.
To reflect the closure we have from @code{[use-modules (logic guile-log guile-prolog closures)]}, and api.
@findex closure_p
@findex closure_state_ref
@findex closure_is_closed
@findex closure_code_ref
@code{prolog closure_p(Cl)}, true if @code{Cl} is a closure.
@code{prolog closure_state_ref(Cl,L)}, will expose the state of the closure @code{Cl} into @code{L}.
......@@ -2049,6 +2075,9 @@ There is a section about the scheme part of this interface, here we concentrate
@subsubsection handles
Use the below accessors to get a handle of various prolog aspects like operator table char conversion table and prolog flags table for defining dynamic features on them.
@findex get_prolog_operators_handle
@findex get_prolog_flags_handle
@findex get_prolog_conversion_handle
@code{get_prolog_operators_handle(Handle)}
......@@ -2057,6 +2086,10 @@ Use the below accessors to get a handle of various prolog aspects like operator
@code{get_prolog_conversion_handle(Handle)}
@subsubsection backtracking versions
@findex backtrack_dynamic_object
@findex not_backtrack_dynamic_object
@findex with_backtrack_dynamic_object
@findex with_not_backtrack_dynamic_object
@code{backtrack_dynamic_object(o, ...)} Make sure that after this position and forward in the execution @code{o,...} will follow any backtracking and also backtrack to the value that they had at the junction unless a new dynamic feature is encountered.
......@@ -2067,6 +2100,12 @@ Use the below accessors to get a handle of various prolog aspects like operator
@code{with_not_backtrack_dynamic_object(o, ...,code)} Make sure that inside @code{code} the execution @code{o,...} will not follow any backtracking unless a new dynamic feature is encountered
@subsubsection guarding states
@findex state_guard_dynamic_object
@findex state_guard_dynamic_object_zip
@findex always_state_guard_dynamic_object
@findex with_state_guard_dynamic_object
@findex with_state_guard_dynamic_object_zip
@findex with_always_state_guard_dynamic_object
@code{state_guard_dynamic_object(o, ...)}, A left limit for which state is restored if the state reinstated over the guard, unless other guards are encountered after this guard.
......@@ -2082,6 +2121,9 @@ Use the below accessors to get a handle of various prolog aspects like operator
@subsubsection guarding values
@findex fluid_guard_dynamic_object
@findex with_fluid_guard_dynamic_object
@findex with_fluid_guard_dynamic_object_once
@code{fluid_guard_dynamic_object(o,...)}, this will make sure that @code{o,...} is resetted to the value they had when the program passed over the guard, and reset to the value it had when control backttraced over it at reinstation over the guard.
......@@ -2091,6 +2133,8 @@ Use the below accessors to get a handle of various prolog aspects like operator
@subsubsection utils,
There are a few general util funcitons used to manage the state of the dynamic objects in a safe way.
@findex set_dynamic_object
@findex copy_dynamic_object
@code{set_dynamic_object(m1 -> m2)}, the state @code{m1} state is transferd to @code{m2}
......@@ -2116,6 +2160,10 @@ There are a few interesting datastructures and algorithm taken from guile-log th
Generally prolog empowers a depth first search. But with the interleaving constructs it is at least in principle possible to do a wide search. Especially if there is branches that are huge or infinite, a solver can get stuck in that branch, missing a simple shallow solution in another branch. The interleaving constructs can cure this.
@subsubsection Api
@findex or_i
@findex and_i
@findex or_union
@code{or_i(branch,...)}, will execute @code{branch...} cyclically e.g. first try @code{branch1}, if that fails, then try @code{branch2} and if @code{branch-n}, the end branch fails, then start all over from the beginning with the next try of @code{branch1} and so on.
@code{and_i(factor,...)}, will interleave the backtracking of @code{factor...} when the whole expression backtracks.
......@@ -2154,6 +2202,10 @@ $3 = (0 2 1 3 4 5 6 7 8 9)
Continuations are a freezed state that is encapsulated by a lambda and can resstart at the stored location when one executes the lambda. Delimited continuations means that one can compose the continuations freely and basically mean thta from a control point the continuation evaluation returns what the lambda inside the control point returns, delimited continuations can therefore be construted and used like any other funciton in a composable way, normal continuatins can be more difficult to handle and does not compose nicely. The delimited continuation goal will fail if the enclosing code fails and it will fail according to the new setup. Also when a delimeted continuation goal succeeds if the continuated enclosed code suceeds (that we restarted in) and the goal works just like any other goal.
@subsubsection Api
@findex with_prompt
@findex call_k
@findex abort_to_pompt
@findex re_prompt
@code{with_prompt(tag,code,handler_data,handler)}, The enclosing code is @code{code}, which will first executed, if inside this, a @code{abort_to_prompt} is executed with a @code{tag}, matching this ideoms @code{tag}, then the @code{handler} will be executed with @code{handler_data} unified to,
@code{handler_data = [intag,next,kont,data_from_abort]}, The actual intag will be @code{intag}. A goal, @code{next()}, will be supplied which can be used to instruct the code to search for the next handler if executed. The actual continuation goal @code{kont}, is supplied as well as data send from the @code{abort_to_prompt} in @code{data_from_abort}. @code{kont} is a term with one argument and is executed like @code{call_k(kont,Arg)}, sending an @code{Arg} to the restart to the continuation. @code{kont} is live for the rest of the execution and the handler will at backtracking fail the whole @code{with_promt} ideom.
......@@ -2217,6 +2269,10 @@ pr(F,S) :- next(F,X,FF) -> feed(S,X,SS), pr(FF,SS).
This is a construct that let you execute several goals in paralell. currently this is not the same as executing it on multiple threads or processors, it's more that you want to synch solutions to several goal at the same time. The interface sports two commands, one simpler @code{zip}, for use, when the goal's are synchronized, and another one @code{usr_zip}, for the case when one would like to test the output and in depending on the outcome take the next solution for a subset of the branches.
@subsubsection Api
@findex zip
@findex usr_zip
@findex update
@code{zip(lane(V,Goal),...)}, will execute @code{Goal ...}, in parallel and output the values of the variables @code{V...}, for the different branches.
@code{usr_zip(lane(tag,V,Goal),...,guard)}, this is the same as @code{zip}, but we will tag the @code{lane} as well. Inside @code{guard}, one can execute a command
......@@ -2251,6 +2307,11 @@ $2 = ((1 100) (3 102) (5 104) (7 106) (9 108))
The main hash datastructure is a vhash datastructure which is a assoc like hash with good lookup properties.
@subsubsection API.
@findex make_vhash
@findex vhashp
@findex vhash_ref
@findex vhash_cons
@findex vhash_fo_each
@code{make_vhash(Handle)}, Constructor, generate a dynamic featured vhash unified to @code{Handle}.
......@@ -2265,6 +2326,8 @@ The main hash datastructure is a vhash datastructure which is a assoc like hash
@node prolog postpone
@subsection Postpone.
@findex postpone_frame
The basic documentation is tha same as the postpone section for guile-log in the main section. The only addition is that this module exposes @code{postpone_frame} with an underscore.
@node Index
......
......@@ -15,7 +15,7 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<link href="index.html#Top" rel="start" title="Top">
<link href="#Index" rel="index" title="Index">
<link href="index.html#Top" rel="up" title="Top">
<link href="internals.html#internals" rel="previous" title="internals">
<link href="prolog-postpone.html#prolog-postpone" rel="previous" title="prolog postpone">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
......@@ -71,6 +71,8 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<br>
<a class="summary-letter" href="#Index_fn_letter-A"><b>A</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-B"><b>B</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-C"><b>C</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-D"><b>D</b></a>
......@@ -87,6 +89,10 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-M"><b>M</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-N"><b>N</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-O"><b>O</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-P"><b>P</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-Q"><b>Q</b></a>
......@@ -103,6 +109,8 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-W"><b>W</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-Z"><b>Z</b></a>
&nbsp;
</td></tr></table>
<table class="index-fn" border="0">
<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> Section</th></tr>
......@@ -241,22 +249,36 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td></td><td valign="top"><a href="kanren.html#index-_005f"><code>_</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-A">A</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="prolog-continuations.html#index-abort_005fto_005fpompt"><code>abort_to_pompt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-continuations.html#prolog-continuations">prolog continuations</a></td></tr>
<tr><td></td><td valign="top"><a href="expressions.html#index-add_002doperator"><code>add-operator</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="expressions.html#expressions">expressions</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-all"><code>all</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-all_0021"><code>all!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-all_0021_0021"><code>all!!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-all_002dinterleave"><code>all-interleave</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-always_005fstate_005fguard_005fdynamic_005fobject"><code>always_state_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-and_002dinterleave"><code>and-interleave</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-interleaving.html#index-and_005fi"><code>and_i</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-interleaving.html#prolog-interleaving">prolog interleaving</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-any"><code>any</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-any_002dinterleave"><code>any-interleave</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-any_002dunion"><code>any-union</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-B">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-backtrack_005fdynamic_005fobject"><code>backtrack_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-C">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="prolog-continuations.html#index-call_005fk"><code>call_k</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-continuations.html#prolog-continuations">prolog continuations</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-case"><code>case</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-CC"><code>CC</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-close_005ferror_005ffalse"><code>close_error_false</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-close_005ferror_005ftrue"><code>close_error_true</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-closure_005fcode_005fref"><code>closure_code_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-closure_005fis_005fclosed"><code>closure_is_closed</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-closure_005fp"><code>closure_p</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-closure_005fstate_005fref"><code>closure_state_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="running.html#index-compile_002dprolog_002dfile"><code>compile-prolog-file</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="running.html#index-compile_002dprolog_002dstring"><code>compile-prolog-string</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-cond"><code>cond</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-copy_005fdynamic_005fobject"><code>copy_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-CUT"><code>CUT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-D">D</a></th><td></td><td></td></tr>
......@@ -264,9 +286,12 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td></td><td valign="top"><a href="dynamic_002dfunctions.html#index-define_002ddynamic"><code>define-dynamic</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfunctions.html#dynamic_002dfunctions">dynamic-functions</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-define_002dguile_002dlog"><code>define-guile-log</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="stream-ideom.html#index-define_002dguile_002dlog_002dparser"><code>define-guile-log-parser</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="stream-ideom.html#stream-ideom">stream ideom</a></td></tr>
<tr><td></td><td valign="top"><a href="scheme.html#index-do_005b_005d"><code>do[]</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="scheme.html#scheme">scheme</a></td></tr>
<tr><td></td><td valign="top"><a href="parser-combinators.html#index-Ds"><code>Ds</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="parser-combinators.html#parser-combinators">parser combinators</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-E">E</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-error_005fat_005fclosed_005fp_005fhandle"><code>error_at_closed_p_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-error_005fon_005fnamespace_005fswitch"><code>error_on_namespace_switch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-extend_002drelation"><code>extend-relation</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-extend_002drelation_002dwith_002drecur_002dlimit"><code>extend-relation-with-recur-limit</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
......@@ -299,9 +324,15 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td></td><td valign="top"><a href="kanren.html#index-fact"><code>fact</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-fail"><code>fail</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-fails"><code>fails</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-fail_005fon_005fnamespace_005fswitch"><code>fail_on_namespace_switch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-fluid_005fguard_005fdynamic_005fobject"><code>fluid_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="parser-combinators.html#index-fn"><code>fn</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="parser-combinators.html#parser-combinators">parser combinators</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-G">G</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-get_005fnamespace_005fswitch_005fhandle"><code>get_namespace_switch_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-get_005fprolog_005fconversion_005fhandle"><code>get_prolog_conversion_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-get_005fprolog_005fflags_005fhandle"><code>get_prolog_flags_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-get_005fprolog_005foperators_005fhandle"><code>get_prolog_operators_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-gp_002d_003escm"><code>gp-&gt;scm</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-gp_002dbudy"><code>gp-budy</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-gp_002dcar"><code>gp-car</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
......@@ -357,9 +388,21 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-M">M</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="expressions.html#index-make_002dopdata"><code>make-opdata</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="expressions.html#expressions">expressions</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-hash.html#index-make_005fvhash"><code>make_vhash</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-hash.html#prolog-hash">prolog hash</a></td></tr>
<tr><td></td><td valign="top"><a href="expressions.html#index-mk_002doperator_002dexpression"><code>mk-operator-expression</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="expressions.html#expressions">expressions</a></td></tr>
<tr><td></td><td valign="top"><a href="parser-combinators.html#index-mk_002dtoken"><code>mk-token</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="parser-combinators.html#parser-combinators">parser combinators</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-N">N</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-namespace_005fwhite_005flist_005fhandle"><code>namespace_white_list_handle</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-namespace_005fwhite_005flist_005fref"><code>namespace_white_list_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-namespace_005fwhite_005flist_005fset"><code>namespace_white_list_set</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-not_005fbacktrack_005fdynamic_005fobject"><code>not_backtrack_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-O">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-ok_005fon_005fnamespece_005fswitch"><code>ok_on_namespece_switch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-interleaving.html#index-or_005fi"><code>or_i</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-interleaving.html#prolog-interleaving">prolog interleaving</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-interleaving.html#index-or_005funion"><code>or_union</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-interleaving.html#prolog-interleaving">prolog interleaving</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-P">P</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-P"><code>P</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="parser-combinators.html#index-p_002dfreeze"><code>p-freeze</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="parser-combinators.html#parser-combinators">parser combinators</a></td></tr>
......@@ -368,9 +411,11 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td></td><td valign="top"><a href="kanren.html#index-partially_002deval_002dsgl"><code>partially-eval-sgl</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="postpone.html#index-postpone"><code>postpone</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="postpone.html#postpone">postpone</a></td></tr>
<tr><td></td><td valign="top"><a href="postpone.html#index-postpone_002dframe"><code>postpone-frame</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="postpone.html#postpone">postpone</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-postpone.html#index-postpone_005fframe"><code>postpone_frame</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-postpone.html#prolog-postpone">prolog postpone</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-predicate"><code>predicate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-project"><code>project</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-project_002fno_002dcheck"><code>project/no-check</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="running.html#index-prolog_002drun"><code>prolog-run</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-push_002dsetup"><code>push-setup</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-Q">Q</a></th><td></td><td></td></tr>
......@@ -385,12 +430,19 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td></td><td valign="top"><a href="running.html#index-reset_002dflags"><code>reset-flags</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="running.html#index-reset_002doperator_002dmap"><code>reset-operator-map</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="running.html#index-reset_002dprolog"><code>reset-prolog</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="running.html#running">running</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-continuations.html#index-re_005fprompt"><code>re_prompt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-continuations.html#prolog-continuations">prolog continuations</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-S">S</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-S"><code>S</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="scheme.html#index-scm_005b_005d"><code>scm[]</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="scheme.html#scheme">scheme</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-set_005fdynamic_005fobject"><code>set_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="modules.html#index-set_005fno_005fwhitelist"><code>set_no_whitelist</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="modules.html#modules">modules</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-sfail"><code>sfail</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-solution"><code>solution</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-solve"><code>solve</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="interpreter.html#index-stall"><code>stall</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="interpreter.html#interpreter">interpreter</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-state_005fguard_005fdynamic_005fobject"><code>state_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-state_005fguard_005fdynamic_005fobject_005fzip"><code>state_guard_dynamic_object_zip</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-succeed"><code>succeed</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-succeeds"><code>succeeds</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
......@@ -402,13 +454,33 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-U">U</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-umatch"><code>umatch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-zip.html#index-update"><code>update</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-zip.html#prolog-zip">prolog zip</a></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-use_002dlogical"><code>use-logical</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td></td><td valign="top"><a href="interpreter.html#index-usr_005fref"><code>usr_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="interpreter.html#interpreter">interpreter</a></td></tr>
<tr><td></td><td valign="top"><a href="interpreter.html#index-usr_005fset"><code>usr_set</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="interpreter.html#interpreter">interpreter</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-zip.html#index-usr_005fzip"><code>usr_zip</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-zip.html#prolog-zip">prolog zip</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-V">V</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="kanren.html#index-var_003f"><code>var?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="kanren.html#kanren">kanren</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-hash.html#index-vhashp"><code>vhashp</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-hash.html#prolog-hash">prolog hash</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-hash.html#index-vhash_005fcons"><code>vhash_cons</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-hash.html#prolog-hash">prolog hash</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-hash.html#index-vhash_005ffo_005feach"><code>vhash_fo_each</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-hash.html#prolog-hash">prolog hash</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-hash.html#index-vhash_005fref"><code>vhash_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-hash.html#prolog-hash">prolog hash</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-W">W</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="umatch.html#index-with_002dgp_002dvars"><code>with-gp-vars</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="umatch.html#umatch">umatch</a></td></tr>
<tr><td></td><td valign="top"><a href="scheme.html#index-with_005b_005d"><code>with[]</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="scheme.html#scheme">scheme</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005falways_005fstate_005fguard_005fdynamic_005fobject"><code>with_always_state_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005fbacktrack_005fdynamic_005fobject"><code>with_backtrack_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005ffluid_005fguard_005fdynamic_005fobject"><code>with_fluid_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005ffluid_005fguard_005fdynamic_005fobject_005fonce"><code>with_fluid_guard_dynamic_object_once</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005fnot_005fbacktrack_005fdynamic_005fobject"><code>with_not_backtrack_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="prolog-continuations.html#index-with_005fprompt"><code>with_prompt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-continuations.html#prolog-continuations">prolog continuations</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005fstate_005fguard_005fdynamic_005fobject"><code>with_state_guard_dynamic_object</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamic_002dfeatures.html#index-with_005fstate_005fguard_005fdynamic_005fobject_005fzip"><code>with_state_guard_dynamic_object_zip</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamic_002dfeatures.html#dynamic_002dfeatures">dynamic-features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Index_fn_letter-Z">Z</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="prolog-zip.html#index-zip"><code>zip</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-zip.html#prolog-zip">prolog zip</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Index_fn_symbol-1"><b>*</b></a>
......@@ -422,6 +494,8 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
<br>
<a class="summary-letter" href="#Index_fn_letter-A"><b>A</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-B"><b>B</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-C"><b>C</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-D"><b>D</b></a>
......@@ -438,6 +512,10 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-M"><b>M</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-N"><b>N</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-O"><b>O</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-P"><b>P</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-Q"><b>Q</b></a>
......@@ -454,6 +532,8 @@ Previous: <a href="prolog.html#prolog" accesskey="p" rel="previous">prolog</a>,
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-W"><b>W</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-Z"><b>Z</b></a>
&nbsp;
</td></tr></table>
<hr>
......
......@@ -79,8 +79,6 @@ Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: <
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="prolog_002dlibraries.html#prolog_002dlibraries" accesskey="9">prolog-libraries</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Libraries that exposes guile-log features
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="internals.html#internals">internals</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A short discussion of the prolog internals used.
</td></tr>
</table>
<hr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment