From d1b7972ef28a0f605205cb459d5e61bb88a0669f Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Wed, 23 Oct 2019 23:25:06 +0200
Subject: [PATCH] Doc: track the odoc generate html files instead of generating
 them in the CI

Because currently, the docker image that  builds the pages via the CI
can not run odoc as it require a more recent dune version. It is because
this image used opam 1

using opam 2 would fix this. will do latter
---
 .gitlab-ci.yml                                |   1 -
 guides/users/_html/algo/Algo/.dune-keep       |   0
 guides/users/_html/algo/Algo/index.html       |   8 +
 guides/users/_html/algo/index.html            |   2 +
 guides/users/_html/highlight.pack.js          |   2 +
 guides/users/_html/index.html                 |  21 +
 guides/users/_html/odoc.css                   | 764 ++++++++++++++++++
 guides/users/_html/sasa/Sasa/.dune-keep       |   0
 .../users/_html/sasa/Sasa/SasaRun/index.html  |   2 +
 guides/users/_html/sasa/Sasa/index.html       |   2 +
 .../users/_html/sasa/Sasa__SasaRun/.dune-keep |   0
 .../users/_html/sasa/Sasa__SasaRun/index.html |   2 +
 guides/users/_html/sasa/index.html            |   2 +
 .../users/_html/sasacore/Sasacore/.dune-keep  |   0
 .../_html/sasacore/Sasacore/Demon/index.html  |   2 +
 .../sasacore/Sasacore/Diameter/index.html     |   2 +
 .../_html/sasacore/Sasacore/Env/index.html    |   2 +
 .../sasacore/Sasacore/GenLutin/index.html     |   2 +
 .../sasacore/Sasacore/GenOracle/index.html    |   2 +
 .../sasacore/Sasacore/GenRegister/index.html  |   2 +
 .../_html/sasacore/Sasacore/Main/index.html   |   2 +
 .../sasacore/Sasacore/Process/index.html      |   2 +
 .../sasacore/Sasacore/Register/index.html     |   2 +
 .../sasacore/Sasacore/RifRead/index.html      |   2 +
 .../_html/sasacore/Sasacore/SasArg/index.html |   2 +
 .../sasacore/Sasacore/SasaState/index.html    |   2 +
 .../sasacore/Sasacore/SasaVersion/index.html  |   2 +
 .../sasacore/Sasacore/StringOf/index.html     |   2 +
 .../sasacore/Sasacore/Topology/index.html     |   2 +
 .../users/_html/sasacore/Sasacore/index.html  |   2 +
 .../_html/sasacore/Sasacore__Demon/.dune-keep |   0
 .../_html/sasacore/Sasacore__Demon/index.html |   2 +
 .../sasacore/Sasacore__Diameter/.dune-keep    |   0
 .../sasacore/Sasacore__Diameter/index.html    |   2 +
 .../_html/sasacore/Sasacore__Env/.dune-keep   |   0
 .../_html/sasacore/Sasacore__Env/index.html   |   2 +
 .../sasacore/Sasacore__GenLutin/.dune-keep    |   0
 .../sasacore/Sasacore__GenLutin/index.html    |   2 +
 .../sasacore/Sasacore__GenOracle/.dune-keep   |   0
 .../sasacore/Sasacore__GenOracle/index.html   |   2 +
 .../sasacore/Sasacore__GenRegister/.dune-keep |   0
 .../sasacore/Sasacore__GenRegister/index.html |   2 +
 .../_html/sasacore/Sasacore__Main/.dune-keep  |   0
 .../_html/sasacore/Sasacore__Main/index.html  |   2 +
 .../sasacore/Sasacore__Process/.dune-keep     |   0
 .../sasacore/Sasacore__Process/index.html     |   2 +
 .../sasacore/Sasacore__Register/.dune-keep    |   0
 .../sasacore/Sasacore__Register/index.html    |   2 +
 .../sasacore/Sasacore__RifRead/.dune-keep     |   0
 .../sasacore/Sasacore__RifRead/index.html     |   2 +
 .../sasacore/Sasacore__SasArg/.dune-keep      |   0
 .../sasacore/Sasacore__SasArg/index.html      |   2 +
 .../sasacore/Sasacore__SasaState/.dune-keep   |   0
 .../sasacore/Sasacore__SasaState/index.html   |   2 +
 .../sasacore/Sasacore__SasaVersion/.dune-keep |   0
 .../sasacore/Sasacore__SasaVersion/index.html |   2 +
 .../sasacore/Sasacore__StringOf/.dune-keep    |   0
 .../sasacore/Sasacore__StringOf/index.html    |   2 +
 .../sasacore/Sasacore__Topology/.dune-keep    |   0
 .../sasacore/Sasacore__Topology/index.html    |   2 +
 guides/users/_html/sasacore/index.html        |   2 +
 61 files changed, 869 insertions(+), 1 deletion(-)
 create mode 100644 guides/users/_html/algo/Algo/.dune-keep
 create mode 100644 guides/users/_html/algo/Algo/index.html
 create mode 100644 guides/users/_html/algo/index.html
 create mode 100644 guides/users/_html/highlight.pack.js
 create mode 100644 guides/users/_html/index.html
 create mode 100644 guides/users/_html/odoc.css
 create mode 100644 guides/users/_html/sasa/Sasa/.dune-keep
 create mode 100644 guides/users/_html/sasa/Sasa/SasaRun/index.html
 create mode 100644 guides/users/_html/sasa/Sasa/index.html
 create mode 100644 guides/users/_html/sasa/Sasa__SasaRun/.dune-keep
 create mode 100644 guides/users/_html/sasa/Sasa__SasaRun/index.html
 create mode 100644 guides/users/_html/sasa/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore/Demon/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Diameter/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Env/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/GenLutin/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/GenOracle/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/GenRegister/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Main/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Process/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Register/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/RifRead/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/SasArg/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/SasaState/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/SasaVersion/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/StringOf/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/Topology/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Demon/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Demon/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Diameter/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Diameter/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Env/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Env/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenLutin/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenLutin/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenOracle/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenOracle/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenRegister/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__GenRegister/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Main/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Main/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Process/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Process/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Register/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Register/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__RifRead/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__RifRead/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasArg/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasArg/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasaState/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasaState/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasaVersion/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__StringOf/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__StringOf/index.html
 create mode 100644 guides/users/_html/sasacore/Sasacore__Topology/.dune-keep
 create mode 100644 guides/users/_html/sasacore/Sasacore__Topology/index.html
 create mode 100644 guides/users/_html/sasacore/index.html

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8d799fc..c81b2f55 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -32,7 +32,6 @@ pages:
   image: jahierwan/verimag-sync-tools
   stage: deploy
   script:
-    - make odoc
     - mkdir public
     - cd guides/users
     - make
diff --git a/guides/users/_html/algo/Algo/.dune-keep b/guides/users/_html/algo/Algo/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/algo/Algo/index.html b/guides/users/_html/algo/Algo/index.html
new file mode 100644
index 00000000..5c03aa2c
--- /dev/null
+++ b/guides/users/_html/algo/Algo/index.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Algo (algo.Algo)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">algo</a> &#x00BB; Algo</nav><h1>Module <code>Algo</code></h1><h2 id="the-algorithm-programming-interface."><a href="#the-algorithm-programming-interface." class="anchor"></a>The Algorithm programming Interface.</h2><nav class="toc"><ul><li><a href="#what's-need-to-be-provided-by-users.">What's need to be provided by users.</a></li><li><a href="#access-to-topological-information">Access to Topological Information</a></li><li><a href="#code-registration">Code Registration</a></li><li><a href="#automatic-generation-of-registration-code">Automatic Generation of Registration Code</a></li></ul></nav></header><section><header><h2 id="what's-need-to-be-provided-by-users."><a href="#what's-need-to-be-provided-by-users." class="anchor"></a>What's need to be provided by users.</h2><p>A SASA process is an instance of an algorithm defined via this module.</p><p>In order to define a SASA algorithm, one need to provide an enable and a step function:</p><ul><li>the enable function states which actions can be triggered;</li><li>the step function triggers an enable action.</li></ul><p>The enable and the step functions should be of the type <code> 's enable_fun </code> and <code> 's step_fun </code> respectively.</p></header><dl><dt class="spec type" id="type-neighbor"><a href="#type-neighbor" class="anchor"></a><code><span class="keyword">type</span> <span>'s neighbor</span></code></dt><dt class="spec type" id="type-action"><a href="#type-action" class="anchor"></a><code><span class="keyword">type</span> action</code><code> = string</code></dt><dt class="spec type" id="type-enable_fun"><a href="#type-enable_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s enable_fun</span></code><code> = <span class="type-var">'s</span> <span>&#45;&gt;</span> <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span></code></dt><dt class="spec type" id="type-step_fun"><a href="#type-step_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s step_fun</span></code><code> = <span class="type-var">'s</span> <span>&#45;&gt;</span> <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <a href="index.html#type-action">action</a> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dd><p>The first argument holds the current state of the process. As it is polymorphic (<code>'s</code>), algorithms designers can put anything they need into this state (an integer, a structure, etc.). The only constraint is that all algorithms should use the same type.</p><p>The second argument holds the process neighbors. Note that SASA processes, that live in graph nodes, can only access to their immediate neighbors. From each neighbor, a process can access to various information thanks to the functions below.</p></dd></dl><dl><dt class="spec type" id="type-state_init_fun"><a href="#type-state_init_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s state_init_fun</span></code><code> = int <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dd><p>The initial value of the local state can be set using an initialization function that takes as unique argument the number of neighbors of the node.</p></dd></dl><dl><dt class="spec exception" id="exception-Not_available"><a href="#exception-Not_available" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">Not_available</span></code></dt><dd><p>When a neighbor information can not be accessed (e.g., the pid anonymous networks) the Not_available exception is raised.</p></dd></dl><dl><dt class="spec value" id="val-state"><a href="#val-state" class="anchor"></a><code><span class="keyword">val</span> state : <span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dd><p>Returns the processes local state</p></dd></dl><dl><dt class="spec value" id="val-pid"><a href="#val-pid" class="anchor"></a><code><span class="keyword">val</span> pid : <span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> <span>&#45;&gt;</span> string</code></dt><dd><p>Returns the process id of the current process neighbor. This info is not available in all simulation modes.</p></dd></dl><dl><dt class="spec value" id="val-spid"><a href="#val-spid" class="anchor"></a><code><span class="keyword">val</span> spid : <span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> <span>&#45;&gt;</span> string</code></dt><dd><p>Returns the process id of the current process</p><p>“To see ourselves as others see us is a most salutary gift. Hardly less important is the capacity to see others as they see themselves.” ― Aldous Huxley, The Doors of Perception.</p></dd></dl><dl><dt class="spec value" id="val-reply"><a href="#val-reply" class="anchor"></a><code><span class="keyword">val</span> reply : <span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> <span>&#45;&gt;</span> int</code></dt><dd><p>Returns the channel number that let this neighbor access to the content of the process, if it neighbor can access it. Returns -1 if the neigbor can not access to the process, which may happen in directed graphs only. This info is not available in all simulation modes.</p></dd></dl><dl><dt class="spec value" id="val-weight"><a href="#val-weight" class="anchor"></a><code><span class="keyword">val</span> weight : <span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> <span>&#45;&gt;</span> int</code></dt><dd><p>Returns the weight decoration the current node and it neighbor (which makes sense in directed graphs only)</p></dd></dl></section><section><header><h2 id="access-to-topological-information"><a href="#access-to-topological-information" class="anchor"></a>Access to Topological Information</h2><p>When writing algorithms, one can also have acces to topological information (i.e., information that are relative to the graph)</p></header><dl><dt class="spec value" id="val-card"><a href="#val-card" class="anchor"></a><code><span class="keyword">val</span> card : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-min_degree"><a href="#val-min_degree" class="anchor"></a><code><span class="keyword">val</span> min_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-mean_degree"><a href="#val-mean_degree" class="anchor"></a><code><span class="keyword">val</span> mean_degree : unit <span>&#45;&gt;</span> float</code></dt><dt class="spec value" id="val-max_degree"><a href="#val-max_degree" class="anchor"></a><code><span class="keyword">val</span> max_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-is_directed"><a href="#val-is_directed" class="anchor"></a><code><span class="keyword">val</span> is_directed : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_cyclic"><a href="#val-is_cyclic" class="anchor"></a><code><span class="keyword">val</span> is_cyclic : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_connected"><a href="#val-is_connected" class="anchor"></a><code><span class="keyword">val</span> is_connected : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_tree"><a href="#val-is_tree" class="anchor"></a><code><span class="keyword">val</span> is_tree : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-height"><a href="#val-height" class="anchor"></a><code><span class="keyword">val</span> height : unit <span>&#45;&gt;</span> <span><span>(string <span>&#45;&gt;</span> int)</span> option</span></code></dt><dt class="spec value" id="val-links_number"><a href="#val-links_number" class="anchor"></a><code><span class="keyword">val</span> links_number : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-diameter"><a href="#val-diameter" class="anchor"></a><code><span class="keyword">val</span> diameter : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_graph_attribute"><a href="#val-get_graph_attribute" class="anchor"></a><code><span class="keyword">val</span> get_graph_attribute : string <span>&#45;&gt;</span> string</code></dt><dd><p>It is possible to set some global parameters in the dot file using graph attributes. This function allows one the get their values.</p></dd></dl></section><section><header><h2 id="code-registration"><a href="#code-registration" class="anchor"></a>Code Registration</h2><p>The <code>register: 's to_register -&gt; unit</code> function must be called once in the user code.</p></header><dl><dt class="spec type" id="type-algo_to_register"><a href="#type-algo_to_register" class="anchor"></a><code><span class="keyword">type</span> <span>'s algo_to_register</span></code><code> = </code><code>{</code><table class="record"><tr id="type-algo_to_register.algo_id" class="anchored"><td class="def field"><a href="#type-algo_to_register.algo_id" class="anchor"></a><code>algo_id : string;</code></td></tr><tr id="type-algo_to_register.init_state" class="anchored"><td class="def field"><a href="#type-algo_to_register.init_state" class="anchor"></a><code>init_state : <span><span class="type-var">'s</span> <a href="index.html#type-state_init_fun">state_init_fun</a></span>;</code></td></tr><tr id="type-algo_to_register.enab" class="anchored"><td class="def field"><a href="#type-algo_to_register.enab" class="anchor"></a><code>enab : <span><span class="type-var">'s</span> <a href="index.html#type-enable_fun">enable_fun</a></span>;</code></td></tr><tr id="type-algo_to_register.step" class="anchored"><td class="def field"><a href="#type-algo_to_register.step" class="anchor"></a><code>step : <span><span class="type-var">'s</span> <a href="index.html#type-step_fun">step_fun</a></span>;</code></td></tr><tr id="type-algo_to_register.actions" class="anchored"><td class="def field"><a href="#type-algo_to_register.actions" class="anchor"></a><code>actions : <span><span><a href="index.html#type-action">action</a> list</span> option</span>;</code></td><td class="doc"><p>Mandatory in custom demon mode</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-to_register"><a href="#type-to_register" class="anchor"></a><code><span class="keyword">type</span> <span>'s to_register</span></code><code> = </code><code>{</code><table class="record"><tr id="type-to_register.algo" class="anchored"><td class="def field"><a href="#type-to_register.algo" class="anchor"></a><code>algo : <span><span><span class="type-var">'s</span> <a href="index.html#type-algo_to_register">algo_to_register</a></span> list</span>;</code></td></tr><tr id="type-to_register.state_to_string" class="anchored"><td class="def field"><a href="#type-to_register.state_to_string" class="anchor"></a><code>state_to_string : <span class="type-var">'s</span> <span>&#45;&gt;</span> string;</code></td></tr><tr id="type-to_register.state_of_string" class="anchored"><td class="def field"><a href="#type-to_register.state_of_string" class="anchor"></a><code>state_of_string : <span><span>(string <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> option</span>;</code></td></tr><tr id="type-to_register.copy_state" class="anchored"><td class="def field"><a href="#type-to_register.copy_state" class="anchor"></a><code>copy_state : <span class="type-var">'s</span> <span>&#45;&gt;</span> <span class="type-var">'s</span>;</code></td></tr></table><code>}</code></dt><dd><ul><li>For the <code>state_to_string</code> field, the idea is to print the raw values contained in <code>'s</code>. If a value is omitted, one won't see it in the simulation outputs. If one prepend a value with &quot;some_id&quot;, some_id will we used in the simulation outputs. Otherwise, an id will be invented by sasa.</li></ul><ul><li>For the <code>state_of_string</code> field, if some function is provided, sasa should be able to parse state init values in the dot.</li></ul></dd></dl><dl><dt class="spec value" id="val-register"><a href="#val-register" class="anchor"></a><code><span class="keyword">val</span> register : <span><span class="type-var">'s</span> <a href="index.html#type-to_register">to_register</a></span> <span>&#45;&gt;</span> unit</code></dt><dd><p>To be called once</p></dd></dl></section><section><header><h2 id="automatic-generation-of-registration-code"><a href="#automatic-generation-of-registration-code" class="anchor"></a>Automatic Generation of Registration Code</h2><p>Once enable and step functions are defined, they need to be registred by calling the register function.</p><p>An alternative to writing this registration code is to let sasa generate it with the &quot;--gen-register&quot; (or &quot;-reg&quot;) option. In this case, one needs to follow some naming conventions (w.r.t file and function names):</p><p>(1) The internal state (i.e. the 's shared by all algos) should be defined in a file named &quot;state.ml&quot; that defines the following 4 entities:</p><pre><code class="ml">type t = define_me
+let (to_string: t -&gt; string) = fun _ -&gt; &quot;define_me&quot;
+let (of_string: string -&gt; t option) = fun _ -&gt; None
+let (copy : t -&gt; t) = fun x -&gt; x</code></pre><p>If one does not want/need to provide the of_string state parser, returning None is fine. This is mandatory only if one wants to define initial values in the dot file.</p><p>Defining a copy that is not the identity is necessary if the state is not functionnal (e.g., if it contains an array or an Hashtbl).</p><p>In the file &quot;state.ml&quot; does not exist in the current directory, a skeleton is generated.</p><p>(2) All the algos mentionned in the dot file should define the following functions:</p><pre><code class="ml">let (init_state: int -&gt; State.t) = xxx
+let (enable_f: State.t neighbor list -&gt; State.t -&gt; action list) = xxx
+let (step_f : State.t neighbor list -&gt; State.t -&gt; action -&gt; State.t ) = xxx
+let actions = Some [&quot;action1&quot;;&quot;action2&quot;];</code></pre></header></section></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/algo/index.html b/guides/users/_html/algo/index.html
new file mode 100644
index 00000000..cd47cf58
--- /dev/null
+++ b/guides/users/_html/algo/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (algo.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – algo</nav><h1 id="algo-index"><a href="#algo-index" class="anchor"></a>algo index</h1><nav class="toc"><ul><li><a href="#library-algo">Library algo</a></li></ul></nav></header><h2 id="library-algo"><a href="#library-algo" class="anchor"></a>Library algo</h2><p>The entry point of this library is the module: <a href="Algo/index.html"><code>Algo</code></a>.</p></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/highlight.pack.js b/guides/users/_html/highlight.pack.js
new file mode 100644
index 00000000..2e55d491
--- /dev/null
+++ b/guides/users/_html/highlight.pack.js
@@ -0,0 +1,2 @@
+/*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */
+!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="</span>",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i<e.length;i++){var o=r,c=s(e[i]);for(0<i&&(a+=n);0<c.length;){var u=t.exec(c);if(null==u){a+=c;break}a+=c.substring(0,u.index),c=c.substring(u.index+u[0].length),"\\"==u[0][0]&&u[1]?a+="\\"+String(Number(u[1])+o):(a+=u[0],"("==u[0]&&r++)}}return a}(i,"|"),!0):{exec:function(){return null}}}}(o)}function C(e,n,i,t){function c(e,n,t,r){var a='<span class="'+(r?"":h.classPrefix);return e?(a+=e+'">')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0<l.r&&(R+=n.r),e&&(f[l.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!l.k)return _(g);for(r="",n=0,l.lR.lastIndex=0,t=l.lR.exec(g);t;)r+=_(g.substring(n,t.index)),a=l,i=t,void 0,o=s.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(R+=e[1],r+=c(e[0],_(t[0]))):r+=_(t[0]),n=l.lR.lastIndex,t=l.lR.exec(g);return r+_(g.substr(n))}(),g=""}function u(e){E+=e.cN?c(e.cN,"",!0):"",l=Object.create(e,{parent:{value:l}})}function r(e,n){if(g+=e,null==n)return o(),0;var t=function(e,n){var t,r,a;for(t=0,r=n.c.length;t<r;t++)if(v(n.c[t].bR,e))return n.c[t].endSameAsBegin&&(n.c[t].eR=(a=n.c[t].bR.exec(e)[0],new RegExp(a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m"))),n.c[t]}(n,l);if(t)return t.skip?g+=n:(t.eB&&(g+=n),o(),t.rB||t.eB||(g=n)),u(t),t.rB?0:n.length;var r=function e(n,t){if(v(n.eR,t)){for(;n.endsParent&&n.parent;)n=n.parent;return n}if(n.eW)return e(n.parent,t)}(l,n);if(r){var a=l;for(a.skip?g+=n:(a.rE||a.eE||(g+=n),o(),a.eE&&(g=n));l.cN&&(E+=b),l.skip||l.sL||(R+=l.r),(l=l.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}if(function(e,n){return!i&&v(n.iR,e)}(n,l))throw new Error('Illegal lexeme "'+n+'" for mode "'+(l.cN||"<unnamed>")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"<br>":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n<r;n++)if(l(a=i[n])||B(a))return a}(e);l(o)||(h.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function c(e){a+="<"+E(e)+f.map.call(e.attributes,function(e){return" "+e.nodeName+'="'+_(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function u(e){a+="</"+E(e)+">"}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("ocaml",function(e){return{aliases:["ml"],k:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)",r:0},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"type",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*",r:0},e.inherit(e.ASM,{cN:"string",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("reasonml",function(r){var e="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",c="("+["||","&&","++","**","+.","*","/","*.","/.","...","|>"].map(function(r){return r.split("").map(function(r){return"\\"+r}).join("")}).join("|")+"|==|===)",n="\\s+"+c+"\\s+",t={keyword:"and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",literal:"true false"},i="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",s={cN:"number",r:0,v:[{b:i},{b:"\\(\\-"+i+"\\)"}]},b={cN:"operator",r:0,b:c},o=[{cN:"identifier",r:0,b:e},b,s],l=[r.QSM,b,{cN:"module",b:"\\b"+a,rB:!0,e:".",c:[{cN:"identifier",b:a,r:0}]}],u=[{cN:"module",b:"\\b"+a,rB:!0,e:".",r:0,c:[{cN:"identifier",b:a,r:0}]}],_={cN:"function",r:0,k:t,v:[{b:"\\s(\\(\\.?.*?\\)|"+e+")\\s*=>",e:"\\s*=>",rB:!0,r:0,c:[{cN:"params",v:[{b:e},{b:"~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?"},{b:/\(\s*\)/}]}]},{b:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",e:"\\s=>",rB:!0,r:0,c:[{cN:"params",r:0,v:[{b:e,e:"(,|\\n|\\))",r:0,c:[b,{cN:"typing",b:":",e:"(,|\\n)",rB:!0,r:0,c:u}]}]}]},{b:"\\(\\.\\s"+e+"\\)\\s*=>"}]};l.push(_);var N={cN:"constructor",b:a+"\\(",e:"\\)",i:"\\n",k:t,c:[r.QSM,b,{cN:"params",b:"\\b"+e}]},d={cN:"pattern-match",b:"\\|",rB:!0,k:t,e:"=>",r:0,c:[N,b,{r:0,cN:"constructor",b:a}]},z={cN:"module-access",k:t,rB:!0,v:[{b:"\\b("+a+"\\.)+"+e},{b:"\\b("+a+"\\.)+\\(",e:"\\)",rB:!0,c:[_,{b:"\\(",e:"\\)",skip:!0}].concat(l)},{b:"\\b("+a+"\\.)+{",e:"}"}],c:l};return u.push(z),{aliases:["re"],k:t,i:"(:\\-|:=|\\${|\\+=)",c:[r.C("/\\*","\\*/",{i:"^(\\#,\\/\\/)"}),{cN:"character",b:"'(\\\\[^']+|[^'])'",i:"\\n",r:0},r.QSM,{cN:"literal",b:"\\(\\)",r:0},{cN:"literal",b:"\\[\\|",e:"\\|\\]",r:0,c:o},{cN:"literal",b:"\\[",e:"\\]",r:0,c:o},N,{cN:"operator",b:n,i:"\\-\\->",r:0},s,r.CLCM,d,_,{cN:"module-def",b:"\\bmodule\\s+"+e+"\\s+"+a+"\\s+=\\s+{",e:"}",rB:!0,k:t,r:0,c:[{cN:"module",r:0,b:a},{b:"{",e:"}",skip:!0}].concat(l)},z]}});
\ No newline at end of file
diff --git a/guides/users/_html/index.html b/guides/users/_html/index.html
new file mode 100644
index 00000000..d0d52564
--- /dev/null
+++ b/guides/users/_html/index.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>index</title>
+    <link rel="stylesheet" href="./odoc.css"/>
+    <meta charset="utf-8"/>
+    <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
+  </head>
+  <body>
+    <main class="content">
+      <div class="by-name">
+      <h2>OCaml package documentation</h2>
+      <ol>
+      <li><a href="algo/index.html">algo</a></li>
+      <li><a href="sasa/index.html">sasa</a></li>
+      <li><a href="sasacore/index.html">sasacore</a></li>
+      </ol>
+      </div>
+    </main>
+  </body>
+</html>
\ No newline at end of file
diff --git a/guides/users/_html/odoc.css b/guides/users/_html/odoc.css
new file mode 100644
index 00000000..c80edffa
--- /dev/null
+++ b/guides/users/_html/odoc.css
@@ -0,0 +1,764 @@
+@charset "UTF-8";
+/* Copyright (c) 2016 The odoc contributors. All rights reserved.
+   Distributed under the ISC license, see terms at the end of the file.
+   odoc 1.4.2 */
+
+/* Fonts */
+@import url('https://fonts.googleapis.com/css?family=Fira+Mono:400,500');
+@import url('https://fonts.googleapis.com/css?family=Noticia+Text:400,400i,700');
+@import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,400i,500,500i,600,600i,700,700i');
+
+
+/* Reset a few things. */
+
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: inherit;
+  font: inherit;
+  line-height: inherit;
+  vertical-align: baseline;
+  text-align: inherit;
+  color: inherit;
+  background: transparent;
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+*, *:before, *:after {
+  box-sizing: border-box;
+}
+
+html {
+  font-size: 15px;
+}
+
+body {
+  font-family: "Fira Sans", Helvetica, Arial, sans-serif;
+  text-align: left;
+  color: #333;
+  background: #FFFFFF;
+}
+
+.content {
+  max-width: 90ex;
+  margin-left: calc(10vw + 20ex);
+  margin-right: 4ex;
+  margin-top: 20px;
+  margin-bottom: 50px;
+  font-family: "Noticia Text", Georgia, serif;
+  line-height: 1.5;
+}
+
+.content>header {
+  margin-bottom: 30px;
+}
+
+.content>header nav {
+  font-family: "Fira Sans", Helvetica, Arial, sans-serif;
+}
+
+/* Basic markup elements */
+
+b, strong {
+  font-weight: 500;
+}
+
+i, em {
+  font-style: italic;
+}
+
+sup {
+  vertical-align: super;
+}
+
+sub {
+  vertical-align: sub;
+}
+
+sup, sub {
+  font-size: 12px;
+  line-height: 0;
+  margin-left: 0.2ex;
+}
+
+pre {
+  margin-top: 0.8em;
+  margin-bottom: 1.2em;
+}
+
+p, ul, ol {
+  margin-top: 0.5em;
+  margin-bottom: 1em;
+}
+ul, ol {
+  list-style-position: outside
+}
+
+ul>li {
+  margin-left: 22px;
+}
+
+ol>li {
+  margin-left: 27.2px;
+}
+
+li>*:first-child {
+  margin-top: 0
+}
+
+/* Text alignements, this should be forbidden. */
+
+.left {
+  text-align: left;
+}
+
+.right {
+  text-align: right;
+}
+
+.center {
+  text-align: center;
+}
+
+/* Links and anchors */
+
+a {
+  text-decoration: none;
+  color: #2C5CBD;
+}
+
+a:hover {
+  box-shadow: 0 1px 0 0 #2C5CBD;
+}
+
+/* Linked highlight */
+*:target {
+  background-color: rgba(187,239,253,0.3) !important;
+  box-shadow: 0 0px 0 1px rgba(187,239,253,0.8) !important;
+  border-radius: 1px;
+}
+
+*:hover>a.anchor {
+  visibility: visible;
+}
+
+a.anchor:before {
+  content: "#"
+}
+
+a.anchor:hover {
+  box-shadow: none;
+  text-decoration: none;
+  color: #555;
+}
+
+a.anchor {
+  visibility: hidden;
+  position: absolute;
+  /* top: 0px; */
+  /* margin-left: -3ex; */
+  margin-left: -1.3em;
+  font-weight: normal;
+  font-style: normal;
+  padding-right: 0.4em;
+  padding-left: 0.4em;
+  /* To remain selectable */
+  color: #d5d5d5;
+}
+
+.spec > a.anchor {
+  margin-left: -2.3em;
+  padding-right: 0.9em;
+}
+
+.xref-unresolved {
+  color: #2C5CBD;
+}
+.xref-unresolved:hover {
+  box-shadow: 0 1px 0 0 #CC6666;
+}
+
+/* Section and document divisions.
+   Until at least 4.03 many of the modules of the stdlib start at .h7,
+   we restart the sequence there like h2  */
+
+h1, h2, h3, h4, h5, h6, .h7, .h8, .h9, .h10 {
+  font-family: "Fira Sans", Helvetica, Arial, sans-serif;
+  font-weight: 400;
+  margin: 0.5em 0 0.5em 0;
+  padding-top: 0.1em;
+  line-height: 1.2;
+  overflow-wrap: break-word;
+}
+
+h1 {
+  font-weight: 500;
+  font-size: 2.441em;
+  margin-top: 1.214em;
+}
+
+h1 {
+  font-weight: 500;
+  font-size: 1.953em;
+  box-shadow: 0 1px 0 0 #ddd;
+}
+
+h2 {
+  font-size: 1.563em;
+}
+
+h3 {
+  font-size: 1.25em;
+}
+
+small, .font_small {
+  font-size: 0.8em;
+}
+
+h1 code, h1 tt {
+  font-size: inherit;
+  font-weight: inherit;
+}
+
+h2 code, h2 tt {
+  font-size: inherit;
+  font-weight: inherit;
+}
+
+h3 code, h3 tt {
+  font-size: inherit;
+  font-weight: inherit;
+}
+
+h3 code, h3 tt {
+  font-size: inherit;
+  font-weight: inherit;
+}
+
+h4 {
+  font-size: 1.12em;
+}
+
+
+/* Preformatted and code */
+
+tt, code, pre {
+  font-family: "Fira Mono", courier;
+  font-weight: 400;
+}
+
+pre {
+  padding: 0.1em;
+  border: 1px solid #eee;
+  border-radius: 5px;
+  overflow-x: auto;
+}
+
+p code, li code {
+  background-color: #f6f8fa;
+  color: #0d2b3e;
+  border-radius: 3px;
+  padding: 0 0.3ex;
+}
+
+p a > code {
+  color: #2C5CBD;
+}
+
+/* Code blocks (e.g. Examples) */
+
+pre code {
+  font-size: 0.893rem;
+}
+
+/* Code lexemes */
+
+.keyword {
+  font-weight: 500;
+}
+
+/* Module member specification */
+
+.spec:not(.include), .spec.include details summary {
+  background-color: #f6f8fa;
+  border-radius: 3px;
+  border-left: 4px solid #5c9cf5;
+  border-right: 5px solid transparent;
+  padding: 0.35em 0.5em;
+}
+
+.spec.include details summary:hover {
+  background-color: #ebeff2;
+}
+
+dl, div.spec, .doc, aside {
+  margin-bottom: 20px;
+}
+
+dl > dd {
+  padding: 0.5em;
+}
+
+dd> :first-child {
+  margin-top: 0;
+}
+
+dl:last-child, dd> :last-child, aside:last-child, article:last-child {
+  margin-bottom: 0;
+}
+
+dt+dt {
+  margin-top: 15px;
+}
+
+section+section, section > header + dl {
+  margin-top: 25px;
+}
+
+.spec.type .variant {
+  margin-left: 2ch;
+}
+.spec.type .variant p {
+  margin: 0;
+  font-style: italic;
+}
+.spec.type .record {
+  margin-left: 2ch;
+}
+.spec.type .record p {
+  margin: 0;
+  font-style: italic;
+}
+
+div.def {
+  margin-top: 0;
+  text-indent: -2ex;
+  padding-left: 2ex;
+}
+
+div.def+div.doc {
+  margin-left: 1ex;
+  margin-top: 2.5px
+}
+
+div.doc>*:first-child {
+  margin-top: 0;
+}
+
+/* The elements other than heading should be wrapped in <aside> elements. */
+/* heading, body>p, body>ul, body>ol, h3, h4, body>pre { */
+/*   margin-bottom: 30px; */
+/* } */
+
+/* Collapsible inlined include and module */
+
+.spec.include details {
+  position: relative;
+}
+
+.spec.include details:after {
+  z-index: -100;
+  display: block;
+  content: " ";
+  position: absolute;
+  border-radius: 0 1ex 1ex 0;
+  right: -20px;
+  top: 1px;
+  bottom: 1px;
+  width: 15px;
+  background: rgba(0, 4, 15, 0.05);
+  box-shadow: 0 0px 0 1px rgba(204, 204, 204, 0.53);
+}
+
+.spec.include details summary {
+  position: relative;
+  margin-bottom: 20px;
+  cursor: pointer;
+  outline: none;
+}
+
+/* FIXME: Does not work in Firefox. */
+details summary::-webkit-details-marker {
+  color: #888;
+  transform: scaleX(-1);
+  position: absolute;
+  top: calc(50% - 5px);
+  height: 11px;
+  right: -29px;
+}
+
+/* Records and variants FIXME */
+
+div.def table {
+  text-indent: 0em;
+  padding: 0;
+  margin-left: -2ex;
+}
+
+td.def {
+  padding-right: 2ex
+}
+
+.record td.def {
+  padding-left: 2ex;
+}
+
+td.doc *:first-child {
+  margin-top: 0em
+}
+
+/* @ tags */
+
+ul.at-tag {
+  list-style-type: none;
+  margin-left: 0;
+  padding: 0;
+}
+
+ul.at-tag li {
+  margin-left: 0;
+  padding: 0;
+}
+
+ul.at-tag li p:first-child {
+  margin-top: 0
+}
+
+/* FIXME remove */
+
+span.at-tag {
+  font-weight: bold
+}
+
+.at-tag.deprecated {
+  font-weight: normal;
+  color: crimson
+}
+
+.at-tag.raise {
+  font-weight: bold;
+}
+
+/* FIXME random other things to review. */
+
+.heading {
+  margin-top: 10px;
+  border-bottom: solid;
+  border-width: 1px;
+  border-color: #DDD;
+  text-align: right;
+  font-weight: normal;
+  font-style: italic;
+}
+
+.heading+.sig {
+  margin-top: -20px;
+}
+
+.heading+.parameters {
+  margin-top: -20px;
+}
+
+/* Odig package index */
+
+.by-name ol, .by-tag ol, .errors ol {
+  list-style-type: none;
+  margin-left: 0;
+}
+
+.by-name ol ol, .by-tag ol ol {
+  margin-top: 0;
+  margin-bottom: 0
+}
+
+.by-name li, .by-tag li, .errors li {
+  margin-left: 0;
+}
+
+.by-name .version {
+  font-size: 10px;
+  color: #AAA
+}
+
+.by-name nav {
+  margin-bottom: 10px
+}
+
+.by-name nav a {
+  text-transform: uppercase;
+  font-size: 18px;
+  margin-right: 1ex;
+  color: #222;
+  display: inline-block;
+}
+
+.by-tag nav a {
+  margin-right: 1ex;
+  color: #222;
+  display: inline-block;
+}
+
+.by-tag>ol>li {
+  margin-top: 10px;
+}
+
+.by-tag>ol>li>span, .by-tag>ol>li>ol, .by-tag>ol>li>ol>li {
+  display: inline-block;
+  margin-right: 1ex;
+}
+
+/* Odig package page */
+
+.package nav {
+  display: inline;
+  font-size: 14px;
+  font-weight: normal;
+}
+
+.package .version {
+  font-size: 14px;
+}
+
+h1+.modules, h1+.sel {
+  margin-top: 10px
+}
+
+.sel {
+  font-weight: normal;
+  font-style: italic;
+  font-size: 14px;
+  margin-top: 20px;
+}
+
+.sel+.modules {
+  margin-top: 10px;
+  margin-bottom: 20px;
+  margin-left: 1ex;
+}
+
+.modules {
+  margin: 0;
+}
+
+.modules .module {
+  min-width: 8ex;
+  padding-right: 2ex
+}
+
+.package.info {
+  margin: 0;
+}
+
+.package.info td:first-child {
+  font-style: italic;
+  padding-right: 2ex;
+}
+
+.package.info ul {
+  list-style-type: none;
+  display: inline;
+  margin: 0;
+}
+
+.package.info li {
+  display: inline-block;
+  margin: 0;
+  margin-right: 1ex;
+}
+
+#info-authors li, #info-maintainers li {
+  display: block;
+}
+
+/* Sidebar and TOC */
+
+.toc:before {
+  display: block;
+  content: "Contents";
+  text-transform: uppercase;
+  font-size: 1em;
+  margin: 1.414em 0 0.5em;
+  font-weight: 500;
+  color: #777;
+  line-height: 1.2;
+}
+
+.toc {
+  position: fixed;
+  top: 0px;
+  bottom: 0px;
+  left: 0px;
+  max-width: 30ex;
+  min-width: 26ex;
+  width: 20%;
+  background: #f6f8fa;
+  overflow: auto;
+  color: #1F2D3D;
+  padding-left: 2ex;
+  padding-right: 2ex;
+}
+
+.toc ul li a {
+  font-family: "Fira Sans", sans-serif;
+  font-size: 0.95em;
+  color: #333;
+  font-weight: 400;
+  line-height: 1.6em;
+  display: block;
+}
+
+.toc ul li a:hover {
+  box-shadow: none;
+  text-decoration: underline;
+}
+
+/* First level titles */
+
+.toc>ul>li>a {
+  font-weight: 500;
+}
+
+.toc li ul {
+  margin: 0px;
+}
+
+.toc ul {
+  list-style-type: none;
+}
+
+.toc ul li {
+  margin: 0;
+}
+.toc>ul>li {
+  margin-bottom: 0.3em;
+}
+
+.toc ul li li {
+  border-left: 1px solid #ccc;
+  margin-left: 5px;
+  padding-left: 12px;
+}
+
+/* Mobile adjustements. */
+
+@media only screen and (max-width: 95ex) {
+  .content {
+    margin: auto;
+    padding: 2.0em;
+  }
+  .toc {
+    position: static;
+    width: auto;
+    min-width: unset;
+    max-width: unset;
+    border: none;
+    padding: 0.2em 1em;
+    border-radius: 5px;
+  }
+}
+
+/* Print adjustements. */
+
+@media print {
+  body {
+    color: black;
+    background: white;
+  }
+  body nav:first-child {
+    visibility: hidden;
+  }
+}
+
+/* Syntax highlighting (based on github-gist) */
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #a71d5d;
+}
+
+.hljs-type,
+.hljs-class .hljs-title {
+  color: #458;
+  font-weight: 500;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #795da3;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+/*---------------------------------------------------------------------------
+   Copyright (c) 2016 The odoc contributors
+
+   Permission to use, copy, modify, and/or distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
+
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+  ---------------------------------------------------------------------------*/
diff --git a/guides/users/_html/sasa/Sasa/.dune-keep b/guides/users/_html/sasa/Sasa/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasa/Sasa/SasaRun/index.html b/guides/users/_html/sasa/Sasa/SasaRun/index.html
new file mode 100644
index 00000000..6172574d
--- /dev/null
+++ b/guides/users/_html/sasa/Sasa/SasaRun/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SasaRun (sasa.Sasa.SasaRun)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasa</a> &#x00BB; <a href="../index.html">Sasa</a> &#x00BB; SasaRun</nav><h1>Module <code>Sasa.SasaRun</code></h1></header><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : <span>string array</span> <span>&#45;&gt;</span> RdbgPlugin.t</code></dt><dd><p>rdbg plugin for sasa</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasa/Sasa/index.html b/guides/users/_html/sasa/Sasa/index.html
new file mode 100644
index 00000000..e2b53dec
--- /dev/null
+++ b/guides/users/_html/sasa/Sasa/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasa (sasa.Sasa)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasa</a> &#x00BB; Sasa</nav><h1>Module <code>Sasa</code></h1></header><dl><dt class="spec module" id="module-SasaRun"><a href="#module-SasaRun" class="anchor"></a><code><span class="keyword">module</span> <a href="SasaRun/index.html">SasaRun</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasa/Sasa__SasaRun/.dune-keep b/guides/users/_html/sasa/Sasa__SasaRun/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasa/Sasa__SasaRun/index.html b/guides/users/_html/sasa/Sasa__SasaRun/index.html
new file mode 100644
index 00000000..1407ed40
--- /dev/null
+++ b/guides/users/_html/sasa/Sasa__SasaRun/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasa__SasaRun (sasa.Sasa__SasaRun)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasa</a> &#x00BB; Sasa__SasaRun</nav><h1>Module <code>Sasa__SasaRun</code></h1></header><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : <span>string array</span> <span>&#45;&gt;</span> RdbgPlugin.t</code></dt><dd><p>rdbg plugin for sasa</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasa/index.html b/guides/users/_html/sasa/index.html
new file mode 100644
index 00000000..c37ed617
--- /dev/null
+++ b/guides/users/_html/sasa/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sasa.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – sasa</nav><h1 id="sasa-index"><a href="#sasa-index" class="anchor"></a>sasa index</h1><nav class="toc"><ul><li><a href="#library-sasa">Library sasa</a></li></ul></nav></header><h2 id="library-sasa"><a href="#library-sasa" class="anchor"></a>Library sasa</h2><p>The entry point of this library is the module: <a href="Sasa/index.html"><code>Sasa</code></a>.</p></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/.dune-keep b/guides/users/_html/sasacore/Sasacore/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore/Demon/index.html b/guides/users/_html/sasacore/Sasacore/Demon/index.html
new file mode 100644
index 00000000..6bcfeae1
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Demon/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Demon (sasacore.Sasacore.Demon)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Demon</nav><h1>Module <code>Sasacore.Demon</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Synchronous" class="anchored"><td class="def constructor"><a href="#type-t.Synchronous" class="anchor"></a><code>| </code><code><span class="constructor">Synchronous</span></code></td></tr><tr id="type-t.Central" class="anchored"><td class="def constructor"><a href="#type-t.Central" class="anchor"></a><code>| </code><code><span class="constructor">Central</span></code></td></tr><tr id="type-t.LocallyCentral" class="anchored"><td class="def constructor"><a href="#type-t.LocallyCentral" class="anchor"></a><code>| </code><code><span class="constructor">LocallyCentral</span></code></td></tr><tr id="type-t.Distributed" class="anchored"><td class="def constructor"><a href="#type-t.Distributed" class="anchor"></a><code>| </code><code><span class="constructor">Distributed</span></code></td></tr><tr id="type-t.Custom" class="anchored"><td class="def constructor"><a href="#type-t.Custom" class="anchor"></a><code>| </code><code><span class="constructor">Custom</span></code></td></tr></table></dt><dt class="spec type" id="type-pna"><a href="#type-pna" class="anchor"></a><code><span class="keyword">type</span> <span>'v pna</span></code><code> = <span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Register/index.html#type-neighbor">Register.neighbor</a></span> list</span> * <a href="../Register/index.html#type-action">Register.action</a></code></dt></dl><aside><p>f dummy_input_flag verbose_mode demon pl actions_ll enab</p><p>inputs:</p><ul><li>dummy_input_flag: true when used with --ignore-first-inputs</li><li>verbose_mode: true when the verbose level is &gt; 0</li><li>demon:</li><li>pl:</li><li>actions_ll: list of list of existing actions</li><li>enab_ll: list of list of enabled actions</li></ul><p>At the inner list level, exactly one action ougth to be chosen. At the outter list level, the number of chosen actions depends on the kind of demons.</p><p>In custom mode, as a side-effect, read on stdin which actions should be activated.</p><p>returns:</p><ul><li>a string containing the values (in RIF) of activating variables</li><li>the list of activated actions</li></ul><p>nb: it is possible that we read on stdin that an action should be activated even if it is not enabled (which would be a demon &quot;error&quot;). For the time being, we ignore the demon &quot;error&quot; and inhibit the activation.</p></aside><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : bool <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span><span><span class="type-var">'v</span> <a href="index.html#type-pna">pna</a></span> list</span> list</span> <span>&#45;&gt;</span> <span><span>bool list</span> list</span> <span>&#45;&gt;</span> <span>(string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <span><span>bool list</span> list</span> * <span><span><span class="type-var">'v</span> <a href="index.html#type-pna">pna</a></span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Diameter/index.html b/guides/users/_html/sasacore/Sasacore/Diameter/index.html
new file mode 100644
index 00000000..8bae4fb2
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Diameter/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Diameter (sasacore.Sasacore.Diameter)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Diameter</nav><h1>Module <code>Sasacore.Diameter</code></h1></header><dl><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <a href="../Topology/index.html#type-t">Topology.t</a> <span>&#45;&gt;</span> int</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Env/index.html b/guides/users/_html/sasacore/Sasacore/Env/index.html
new file mode 100644
index 00000000..9a00fc52
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Env/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Env (sasacore.Sasacore.Env)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Env</nav><h1>Module <code>Sasacore.Env</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code></dt></dl><dl><dt class="spec value" id="val-init"><a href="#val-init" class="anchor"></a><code><span class="keyword">val</span> init : unit <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dt class="spec value" id="val-set"><a href="#val-set" class="anchor"></a><code><span class="keyword">val</span> set : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>set env process_id var_name var_value</code></p></dd></dl><dl><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span></code></dt><dd><p><code>get env process_id var_name</code></p></dd></dl><dl><dt class="spec value" id="val-get_copy"><a href="#val-get_copy" class="anchor"></a><code><span class="keyword">val</span> get_copy : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span></code></dt><dd><p>Use registered copy function to returns an (hopefully) fresh copy</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/GenLutin/index.html b/guides/users/_html/sasacore/Sasacore/GenLutin/index.html
new file mode 100644
index 00000000..951531e7
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/GenLutin/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>GenLutin (sasacore.Sasacore.GenLutin)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; GenLutin</nav><h1>Module <code>Sasacore.GenLutin</code></h1></header><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dd><p>generates various Lutin demons (distributed, synchronous, etc.)</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/GenOracle/index.html b/guides/users/_html/sasacore/Sasacore/GenOracle/index.html
new file mode 100644
index 00000000..0520c00a
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/GenOracle/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>GenOracle (sasacore.Sasacore.GenOracle)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; GenOracle</nav><h1>Module <code>Sasacore.GenOracle</code></h1></header><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <a href="../Topology/index.html#type-t">Topology.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dd><p>generates oracle skeletons</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/GenRegister/index.html b/guides/users/_html/sasacore/Sasacore/GenRegister/index.html
new file mode 100644
index 00000000..86f15bee
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/GenRegister/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>GenRegister (sasacore.Sasacore.GenRegister)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; GenRegister</nav><h1>Module <code>Sasacore.GenRegister</code></h1></header><aside><p>Takes as input some ocaml files and the output file name, and generates 2 ocaml files</p><ul><li>1 that defines a skeleton ocaml program for dealing with algo states</li><li>1 that (Algo.)register(s) the (input) algorithms.</li></ul><p>Existing output file won't be overrided (a warning is printed).</p><p>The input files ougth to define a module implementing the following interface:</p><p>val name: string val actions : string list option; val init_state: int -&gt; state val enable_f: state Algo.neighbor list -&gt; state -&gt; Algo.action list val step_f : state Algo.neighbor list -&gt; state -&gt; Algo.action -&gt; state val state_to_string: state -&gt; string</p><p>The algo state definition file implements the following interface:</p><p>type state val state_copy : state -&gt; state val state_of_string: (string -&gt; state) option val copy_state: state -&gt; state</p></aside><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <span>string list</span> <span>&#45;&gt;</span> <span>(string * string)</span> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Main/index.html b/guides/users/_html/sasacore/Sasacore/Main/index.html
new file mode 100644
index 00000000..cd81ac59
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Main/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Main (sasacore.Sasacore.Main)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Main</nav><h1>Module <code>Sasacore.Main</code></h1></header><dl><dt class="spec type" id="type-layout"><a href="#type-layout" class="anchor"></a><code><span class="keyword">type</span> <span>'v layout</span></code><code> = <span><span>(<span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Register/index.html#type-neighbor">Register.neighbor</a></span> list</span>)</span> list</span></code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code><code> = <a href="../SasArg/index.html#type-t">SasArg.t</a> * <span><span class="type-var">'v</span> <a href="index.html#type-layout">layout</a></span> * <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span></code></dt></dl><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : bool <span>&#45;&gt;</span> <span>string array</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt></dl><dl><dt class="spec type" id="type-enable_processes"><a href="#type-enable_processes" class="anchor"></a><code><span class="keyword">type</span> <span>'v enable_processes</span></code><code> = <span><span><span>(<span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Register/index.html#type-neighbor">Register.neighbor</a></span> list</span> * <a href="../Register/index.html#type-action">Register.action</a>)</span> list</span> list</span> * <span><span>bool list</span> list</span></code></dt></dl><dl><dt class="spec value" id="val-get_enable_processes"><a href="#val-get_enable_processes" class="anchor"></a><code><span class="keyword">val</span> get_enable_processes : <span><span class="type-var">'v</span> <a href="index.html#type-layout">layout</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-enable_processes">enable_processes</a></span></code></dt><dt class="spec value" id="val-do_step"><a href="#val-do_step" class="anchor"></a><code><span class="keyword">val</span> do_step : <span><span>(<span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Register/index.html#type-neighbor">Register.neighbor</a></span> list</span> * <a href="../Register/index.html#type-action">Register.action</a>)</span> list</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span></code></dt><dt class="spec value" id="val-get_inputs_rif_decl"><a href="#val-get_inputs_rif_decl" class="anchor"></a><code><span class="keyword">val</span> get_inputs_rif_decl : <a href="../SasArg/index.html#type-t">SasArg.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt><dt class="spec value" id="val-get_outputs_rif_decl"><a href="#val-get_outputs_rif_decl" class="anchor"></a><code><span class="keyword">val</span> get_outputs_rif_decl : <a href="../SasArg/index.html#type-t">SasArg.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Process/index.html b/guides/users/_html/sasacore/Sasacore/Process/index.html
new file mode 100644
index 00000000..78b6c7d5
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Process/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (sasacore.Sasacore.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Process</nav><h1>Module <code>Sasacore.Process</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code><code> = </code><code>{</code><table class="record"><tr id="type-t.pid" class="anchored"><td class="def field"><a href="#type-t.pid" class="anchor"></a><code>pid : string;</code></td></tr><tr id="type-t.actions" class="anchored"><td class="def field"><a href="#type-t.actions" class="anchor"></a><code>actions : <span><a href="../Register/index.html#type-action">Register.action</a> list</span>;</code></td></tr><tr id="type-t.init" class="anchored"><td class="def field"><a href="#type-t.init" class="anchor"></a><code>init : <span class="type-var">'v</span>;</code></td></tr><tr id="type-t.enable" class="anchored"><td class="def field"><a href="#type-t.enable" class="anchor"></a><code>enable : <span><span class="type-var">'v</span> <a href="../Register/index.html#type-enable_fun">Register.enable_fun</a></span>;</code></td></tr><tr id="type-t.step" class="anchored"><td class="def field"><a href="#type-t.step" class="anchor"></a><code>step : <span><span class="type-var">'v</span> <a href="../Register/index.html#type-step_fun">Register.step_fun</a></span>;</code></td></tr></table><code>}</code></dt><dd><p>There is such a Process.t per node in the dot file.</p></dd></dl><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : bool <span>&#45;&gt;</span> <a href="../Topology/index.html#type-node">Topology.node</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>make custom_mode_flag node init_state</code> builds a process out of a dot node. To do that, it retreives the registered functions by Dynamic linking of the cmxs file specified in the &quot;algo&quot; field of the dot node.</p><p>nb: it provides variable initial values if not done in the dot (via the init field) nor in the Algo (via Algo.reg_init_vars)</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Register/index.html b/guides/users/_html/sasacore/Sasacore/Register/index.html
new file mode 100644
index 00000000..3f0cd98e
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Register/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Register (sasacore.Sasacore.Register)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Register</nav><h1>Module <code>Sasacore.Register</code></h1></header><aside><p>This module duplicates and extends the Algo module with get_* functions.</p><p>The rationale for defining such a module is to be able to hide the get_* functions from the Algo interface. Indeed, they are only called by the sasa engine, and it is dangerous and useless to expose them to algorithms designers.</p></aside><dl><dt class="spec type" id="type-neighbor"><a href="#type-neighbor" class="anchor"></a><code><span class="keyword">type</span> <span>'s neighbor</span></code><code> = </code><code>{</code><table class="record"><tr id="type-neighbor.state" class="anchored"><td class="def field"><a href="#type-neighbor.state" class="anchor"></a><code>state : <span class="type-var">'s</span>;</code></td></tr><tr id="type-neighbor.pid" class="anchored"><td class="def field"><a href="#type-neighbor.pid" class="anchor"></a><code>pid : unit <span>&#45;&gt;</span> string;</code></td></tr><tr id="type-neighbor.spid" class="anchored"><td class="def field"><a href="#type-neighbor.spid" class="anchor"></a><code>spid : unit <span>&#45;&gt;</span> string;</code></td></tr><tr id="type-neighbor.reply" class="anchored"><td class="def field"><a href="#type-neighbor.reply" class="anchor"></a><code>reply : unit <span>&#45;&gt;</span> int;</code></td></tr><tr id="type-neighbor.weight" class="anchored"><td class="def field"><a href="#type-neighbor.weight" class="anchor"></a><code>weight : unit <span>&#45;&gt;</span> <span>int option</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-algo_id"><a href="#type-algo_id" class="anchor"></a><code><span class="keyword">type</span> algo_id</code><code> = string</code></dt><dt class="spec type" id="type-action"><a href="#type-action" class="anchor"></a><code><span class="keyword">type</span> action</code><code> = string</code></dt><dt class="spec type" id="type-enable_fun"><a href="#type-enable_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s enable_fun</span></code><code> = <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span></code></dt><dt class="spec type" id="type-step_fun"><a href="#type-step_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s step_fun</span></code><code> = <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <a href="index.html#type-action">action</a> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt></dl><dl><dt class="spec value" id="val-reg_init_state"><a href="#val-reg_init_state" class="anchor"></a><code><span class="keyword">val</span> reg_init_state : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span>(int <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_enable"><a href="#val-reg_enable" class="anchor"></a><code><span class="keyword">val</span> reg_enable : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-enable_fun">enable_fun</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_step"><a href="#val-reg_step" class="anchor"></a><code><span class="keyword">val</span> reg_step : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-step_fun">step_fun</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_actions"><a href="#val-reg_actions" class="anchor"></a><code><span class="keyword">val</span> reg_actions : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_value_to_string"><a href="#val-reg_value_to_string" class="anchor"></a><code><span class="keyword">val</span> reg_value_to_string : <span>(<span class="type-var">'s</span> <span>&#45;&gt;</span> string)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_value_of_string"><a href="#val-reg_value_of_string" class="anchor"></a><code><span class="keyword">val</span> reg_value_of_string : <span>(string <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_copy_value"><a href="#val-reg_copy_value" class="anchor"></a><code><span class="keyword">val</span> reg_copy_value : <span>(<span class="type-var">'s</span> <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-card"><a href="#val-card" class="anchor"></a><code><span class="keyword">val</span> card : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-min_degree"><a href="#val-min_degree" class="anchor"></a><code><span class="keyword">val</span> min_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-mean_degree"><a href="#val-mean_degree" class="anchor"></a><code><span class="keyword">val</span> mean_degree : unit <span>&#45;&gt;</span> float</code></dt><dt class="spec value" id="val-max_degree"><a href="#val-max_degree" class="anchor"></a><code><span class="keyword">val</span> max_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-is_cyclic"><a href="#val-is_cyclic" class="anchor"></a><code><span class="keyword">val</span> is_cyclic : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_connected"><a href="#val-is_connected" class="anchor"></a><code><span class="keyword">val</span> is_connected : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_tree"><a href="#val-is_tree" class="anchor"></a><code><span class="keyword">val</span> is_tree : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_directed"><a href="#val-is_directed" class="anchor"></a><code><span class="keyword">val</span> is_directed : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-height"><a href="#val-height" class="anchor"></a><code><span class="keyword">val</span> height : unit <span>&#45;&gt;</span> <span><span>(string <span>&#45;&gt;</span> int)</span> option</span></code></dt><dd><p>If height () = None, then the graph doesn't have a height (because it isn't a tree) Otherwise, height () = Some h.</p></dd></dl><dl><dt class="spec value" id="val-links_number"><a href="#val-links_number" class="anchor"></a><code><span class="keyword">val</span> links_number : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-diameter"><a href="#val-diameter" class="anchor"></a><code><span class="keyword">val</span> diameter : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-verbose_level"><a href="#val-verbose_level" class="anchor"></a><code><span class="keyword">val</span> verbose_level : <span>int Stdlib.ref</span></code></dt><dt class="spec value" id="val-get_graph_attribute"><a href="#val-get_graph_attribute" class="anchor"></a><code><span class="keyword">val</span> get_graph_attribute : string <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-get_enable"><a href="#val-get_enable" class="anchor"></a><code><span class="keyword">val</span> get_enable : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-enable_fun">enable_fun</a></span></code></dt><dt class="spec value" id="val-get_step"><a href="#val-get_step" class="anchor"></a><code><span class="keyword">val</span> get_step : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-step_fun">step_fun</a></span></code></dt><dt class="spec value" id="val-get_init_state"><a href="#val-get_init_state" class="anchor"></a><code><span class="keyword">val</span> get_init_state : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dt class="spec value" id="val-get_actions"><a href="#val-get_actions" class="anchor"></a><code><span class="keyword">val</span> get_actions : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span></code></dt><dt class="spec value" id="val-get_value_to_string"><a href="#val-get_value_to_string" class="anchor"></a><code><span class="keyword">val</span> get_value_to_string : unit <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-get_value_of_string"><a href="#val-get_value_of_string" class="anchor"></a><code><span class="keyword">val</span> get_value_of_string : unit <span>&#45;&gt;</span> <span><span>(string <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> option</span></code></dt><dt class="spec value" id="val-get_copy_value"><a href="#val-get_copy_value" class="anchor"></a><code><span class="keyword">val</span> get_copy_value : unit <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dt class="spec value" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span class="keyword">val</span> to_string : <span class="type-var">'s</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-set_card"><a href="#val-set_card" class="anchor"></a><code><span class="keyword">val</span> set_card : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_degrees"><a href="#val-set_degrees" class="anchor"></a><code><span class="keyword">val</span> set_degrees : <span>(unit <span>&#45;&gt;</span> int * int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_mean_deg"><a href="#val-set_mean_deg" class="anchor"></a><code><span class="keyword">val</span> set_mean_deg : <span>(unit <span>&#45;&gt;</span> float)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_is_connected_cyclic"><a href="#val-set_is_connected_cyclic" class="anchor"></a><code><span class="keyword">val</span> set_is_connected_cyclic : <span>(unit <span>&#45;&gt;</span> bool * bool)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_is_directed"><a href="#val-set_is_directed" class="anchor"></a><code><span class="keyword">val</span> set_is_directed : <span>(unit <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec type" id="type-node_id"><a href="#type-node_id" class="anchor"></a><code><span class="keyword">type</span> node_id</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-set_height"><a href="#val-set_height" class="anchor"></a><code><span class="keyword">val</span> set_height : <span>(<a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_links_number"><a href="#val-set_links_number" class="anchor"></a><code><span class="keyword">val</span> set_links_number : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_diameter"><a href="#val-set_diameter" class="anchor"></a><code><span class="keyword">val</span> set_diameter : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_graph_attribute"><a href="#val-set_graph_attribute" class="anchor"></a><code><span class="keyword">val</span> set_graph_attribute : string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-graph_attribute_list"><a href="#val-graph_attribute_list" class="anchor"></a><code><span class="keyword">val</span> graph_attribute_list : unit <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/RifRead/index.html b/guides/users/_html/sasacore/Sasacore/RifRead/index.html
new file mode 100644
index 00000000..4a96a6ae
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/RifRead/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>RifRead (sasacore.Sasacore.RifRead)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; RifRead</nav><h1>Module <code>Sasacore.RifRead</code></h1></header><aside><p>Reads on stdin a bool</p></aside><dl><dt class="spec value" id="val-bool"><a href="#val-bool" class="anchor"></a><code><span class="keyword">val</span> bool : bool <span>&#45;&gt;</span> string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/SasArg/index.html b/guides/users/_html/sasacore/Sasacore/SasArg/index.html
new file mode 100644
index 00000000..6b22c1d8
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/SasArg/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SasArg (sasacore.Sasacore.SasArg)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; SasArg</nav><h1>Module <code>Sasacore.SasArg</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>{</code><table class="record"><tr id="type-t.topo" class="anchored"><td class="def field"><a href="#type-t.topo" class="anchor"></a><code><span class="keyword">mutable</span> topo : string;</code></td></tr><tr id="type-t.length" class="anchored"><td class="def field"><a href="#type-t.length" class="anchor"></a><code><span class="keyword">mutable</span> length : int;</code></td></tr><tr id="type-t.verbose" class="anchored"><td class="def field"><a href="#type-t.verbose" class="anchor"></a><code><span class="keyword">mutable</span> verbose : int;</code></td></tr><tr id="type-t.demon" class="anchored"><td class="def field"><a href="#type-t.demon" class="anchor"></a><code><span class="keyword">mutable</span> demon : <a href="../Demon/index.html#type-t">Demon.t</a>;</code></td></tr><tr id="type-t.rif" class="anchored"><td class="def field"><a href="#type-t.rif" class="anchor"></a><code><span class="keyword">mutable</span> rif : bool;</code></td></tr><tr id="type-t.no_data_file" class="anchored"><td class="def field"><a href="#type-t.no_data_file" class="anchor"></a><code><span class="keyword">mutable</span> no_data_file : bool;</code></td></tr><tr id="type-t.seed" class="anchored"><td class="def field"><a href="#type-t.seed" class="anchor"></a><code><span class="keyword">mutable</span> seed : <span>int option</span>;</code></td></tr><tr id="type-t.replay_seed" class="anchored"><td class="def field"><a href="#type-t.replay_seed" class="anchor"></a><code><span class="keyword">mutable</span> replay_seed : bool;</code></td></tr><tr id="type-t.ifi" class="anchored"><td class="def field"><a href="#type-t.ifi" class="anchor"></a><code><span class="keyword">mutable</span> ifi : bool;</code></td></tr><tr id="type-t.gen_lutin" class="anchored"><td class="def field"><a href="#type-t.gen_lutin" class="anchor"></a><code><span class="keyword">mutable</span> gen_lutin : bool;</code></td></tr><tr id="type-t.gen_oracle" class="anchored"><td class="def field"><a href="#type-t.gen_oracle" class="anchor"></a><code><span class="keyword">mutable</span> gen_oracle : bool;</code></td></tr><tr id="type-t.dummy_input" class="anchored"><td class="def field"><a href="#type-t.dummy_input" class="anchor"></a><code><span class="keyword">mutable</span> dummy_input : bool;</code></td></tr><tr id="type-t.output_algos" class="anchored"><td class="def field"><a href="#type-t.output_algos" class="anchor"></a><code><span class="keyword">mutable</span> output_algos : bool;</code></td></tr><tr id="type-t.gen_register" class="anchored"><td class="def field"><a href="#type-t.gen_register" class="anchor"></a><code><span class="keyword">mutable</span> gen_register : bool;</code></td></tr><tr id="type-t._args" class="anchored"><td class="def field"><a href="#type-t._args" class="anchor"></a><code><span class="keyword">mutable</span> _args : <span><span>(string * Stdlib.Arg.spec * string)</span> list</span>;</code></td></tr><tr id="type-t._user_man" class="anchored"><td class="def field"><a href="#type-t._user_man" class="anchor"></a><code><span class="keyword">mutable</span> _user_man : <span><span>(string * <span>string list</span>)</span> list</span>;</code></td></tr><tr id="type-t._hidden_man" class="anchored"><td class="def field"><a href="#type-t._hidden_man" class="anchor"></a><code><span class="keyword">mutable</span> _hidden_man : <span><span>(string * <span>string list</span>)</span> list</span>;</code></td></tr><tr id="type-t._others" class="anchored"><td class="def field"><a href="#type-t._others" class="anchor"></a><code><span class="keyword">mutable</span> _others : <span>string list</span>;</code></td></tr><tr id="type-t._margin" class="anchored"><td class="def field"><a href="#type-t._margin" class="anchor"></a><code><span class="keyword">mutable</span> _margin : int;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-seed_get"><a href="#val-seed_get" class="anchor"></a><code><span class="keyword">val</span> seed_get : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-usage_msg"><a href="#val-usage_msg" class="anchor"></a><code><span class="keyword">val</span> usage_msg : string <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-parse"><a href="#val-parse" class="anchor"></a><code><span class="keyword">val</span> parse : <span>string array</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/SasaState/index.html b/guides/users/_html/sasacore/Sasacore/SasaState/index.html
new file mode 100644
index 00000000..e3fac285
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/SasaState/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SasaState (sasacore.Sasacore.SasaState)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; SasaState</nav><h1>Module <code>Sasacore.SasaState</code></h1></header><dl><dt class="spec type" id="type-pid"><a href="#type-pid" class="anchor"></a><code><span class="keyword">type</span> pid</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-to_var_names"><a href="#val-to_var_names" class="anchor"></a><code><span class="keyword">val</span> to_var_names : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span>string list</span></code></dt><dt class="spec value" id="val-to_rif_decl"><a href="#val-to_rif_decl" class="anchor"></a><code><span class="keyword">val</span> to_rif_decl : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span>(string * Data.t)</span> list</span></code></dt><dd><p>used to produce RIF</p></dd></dl><dl><dt class="spec value" id="val-to_rif_data"><a href="#val-to_rif_data" class="anchor"></a><code><span class="keyword">val</span> to_rif_data : <span class="type-var">'v</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-to_rdbg_subst"><a href="#val-to_rdbg_subst" class="anchor"></a><code><span class="keyword">val</span> to_rdbg_subst : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span>(string * Data.v)</span> list</span></code></dt><dd><p>used to interact with rdbg</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/SasaVersion/index.html b/guides/users/_html/sasacore/Sasacore/SasaVersion/index.html
new file mode 100644
index 00000000..ab237b19
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/SasaVersion/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SasaVersion (sasacore.Sasacore.SasaVersion)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; SasaVersion</nav><h1>Module <code>Sasacore.SasaVersion</code></h1></header><dl><dt class="spec value" id="val-str"><a href="#val-str" class="anchor"></a><code><span class="keyword">val</span> str : string</code></dt><dt class="spec value" id="val-sha"><a href="#val-sha" class="anchor"></a><code><span class="keyword">val</span> sha : string</code></dt><dt class="spec value" id="val-branch"><a href="#val-branch" class="anchor"></a><code><span class="keyword">val</span> branch : string</code></dt><dt class="spec value" id="val-maintainer"><a href="#val-maintainer" class="anchor"></a><code><span class="keyword">val</span> maintainer : string</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/StringOf/index.html b/guides/users/_html/sasacore/Sasacore/StringOf/index.html
new file mode 100644
index 00000000..92ba5492
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/StringOf/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>StringOf (sasacore.Sasacore.StringOf)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; StringOf</nav><h1>Module <code>Sasacore.StringOf</code></h1></header><dl><dt class="spec value" id="val-algo_neighbor"><a href="#val-algo_neighbor" class="anchor"></a><code><span class="keyword">val</span> algo_neighbor : <span><span class="type-var">'v</span> <a href="../Register/index.html#type-neighbor">Register.neighbor</a></span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-env"><a href="#val-env" class="anchor"></a><code><span class="keyword">val</span> env : <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-env_rif"><a href="#val-env_rif" class="anchor"></a><code><span class="keyword">val</span> env_rif : <span><span class="type-var">'v</span> <a href="../Env/index.html#type-t">Env.t</a></span> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Process/index.html#type-t">Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/Topology/index.html b/guides/users/_html/sasacore/Sasacore/Topology/index.html
new file mode 100644
index 00000000..c45d8a3f
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/Topology/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Topology (sasacore.Sasacore.Topology)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">sasacore</a> &#x00BB; <a href="../index.html">Sasacore</a> &#x00BB; Topology</nav><h1>Module <code>Sasacore.Topology</code></h1></header><dl><dt class="spec type" id="type-node_id"><a href="#type-node_id" class="anchor"></a><code><span class="keyword">type</span> node_id</code><code> = string</code></dt><dt class="spec type" id="type-node"><a href="#type-node" class="anchor"></a><code><span class="keyword">type</span> node</code><code> = </code><code>{</code><table class="record"><tr id="type-node.id" class="anchored"><td class="def field"><a href="#type-node.id" class="anchor"></a><code>id : <a href="index.html#type-node_id">node_id</a>;</code></td><td class="doc"><p>The id of the node as stated in the dot file</p></td></tr><tr id="type-node.file" class="anchored"><td class="def field"><a href="#type-node.file" class="anchor"></a><code>file : string;</code></td><td class="doc"><p>the content of the algo field (a ml file)</p></td></tr><tr id="type-node.init" class="anchored"><td class="def field"><a href="#type-node.init" class="anchor"></a><code>init : string;</code></td><td class="doc"><p>store the content of the init field</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>{</code><table class="record"><tr id="type-t.nodes" class="anchored"><td class="def field"><a href="#type-t.nodes" class="anchor"></a><code>nodes : <span><a href="index.html#type-node">node</a> list</span>;</code></td></tr><tr id="type-t.succ" class="anchored"><td class="def field"><a href="#type-t.succ" class="anchor"></a><code>succ : <a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> <span><span>(<span>int option</span> * <a href="index.html#type-node_id">node_id</a>)</span> list</span>;</code></td><td class="doc"><p>get neighbors, with weigth if any</p></td></tr><tr id="type-t.of_id" class="anchored"><td class="def field"><a href="#type-t.of_id" class="anchor"></a><code>of_id : <a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> <a href="index.html#type-node">node</a>;</code></td></tr><tr id="type-t.directed" class="anchored"><td class="def field"><a href="#type-t.directed" class="anchor"></a><code>directed : bool;</code></td><td class="doc"><p>true if the graph is directed</p></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-read"><a href="#val-read" class="anchor"></a><code><span class="keyword">val</span> read : string <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Parse a sasa dot file</p></dd></dl><aside><p>Various eponymous utils</p></aside><dl><dt class="spec value" id="val-to_adjency"><a href="#val-to_adjency" class="anchor"></a><code><span class="keyword">val</span> to_adjency : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>bool array</span> array</span></code></dt><dt class="spec value" id="val-get_nb_link"><a href="#val-get_nb_link" class="anchor"></a><code><span class="keyword">val</span> get_nb_link : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_mean_degree"><a href="#val-get_mean_degree" class="anchor"></a><code><span class="keyword">val</span> get_mean_degree : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> float</code></dt><dt class="spec value" id="val-is_connected_and_cyclic"><a href="#val-is_connected_and_cyclic" class="anchor"></a><code><span class="keyword">val</span> is_connected_and_cyclic : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool * bool</code></dt><dt class="spec value" id="val-height"><a href="#val-height" class="anchor"></a><code><span class="keyword">val</span> height : <span>string list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_height"><a href="#val-get_height" class="anchor"></a><code><span class="keyword">val</span> get_height : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_degree"><a href="#val-get_degree" class="anchor"></a><code><span class="keyword">val</span> get_degree : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int * int</code></dt><dd><p>Watch out, computing the degree is expensive</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore/index.html b/guides/users/_html/sasacore/Sasacore/index.html
new file mode 100644
index 00000000..c5f3d716
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore (sasacore.Sasacore)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore</nav><h1>Module <code>Sasacore</code></h1></header><dl><dt class="spec module" id="module-Demon"><a href="#module-Demon" class="anchor"></a><code><span class="keyword">module</span> <a href="Demon/index.html">Demon</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Diameter"><a href="#module-Diameter" class="anchor"></a><code><span class="keyword">module</span> <a href="Diameter/index.html">Diameter</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Env"><a href="#module-Env" class="anchor"></a><code><span class="keyword">module</span> <a href="Env/index.html">Env</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-GenLutin"><a href="#module-GenLutin" class="anchor"></a><code><span class="keyword">module</span> <a href="GenLutin/index.html">GenLutin</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-GenOracle"><a href="#module-GenOracle" class="anchor"></a><code><span class="keyword">module</span> <a href="GenOracle/index.html">GenOracle</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-GenRegister"><a href="#module-GenRegister" class="anchor"></a><code><span class="keyword">module</span> <a href="GenRegister/index.html">GenRegister</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Main"><a href="#module-Main" class="anchor"></a><code><span class="keyword">module</span> <a href="Main/index.html">Main</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Process"><a href="#module-Process" class="anchor"></a><code><span class="keyword">module</span> <a href="Process/index.html">Process</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Register"><a href="#module-Register" class="anchor"></a><code><span class="keyword">module</span> <a href="Register/index.html">Register</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-RifRead"><a href="#module-RifRead" class="anchor"></a><code><span class="keyword">module</span> <a href="RifRead/index.html">RifRead</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-SasArg"><a href="#module-SasArg" class="anchor"></a><code><span class="keyword">module</span> <a href="SasArg/index.html">SasArg</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-SasaState"><a href="#module-SasaState" class="anchor"></a><code><span class="keyword">module</span> <a href="SasaState/index.html">SasaState</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-SasaVersion"><a href="#module-SasaVersion" class="anchor"></a><code><span class="keyword">module</span> <a href="SasaVersion/index.html">SasaVersion</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-StringOf"><a href="#module-StringOf" class="anchor"></a><code><span class="keyword">module</span> <a href="StringOf/index.html">StringOf</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Topology"><a href="#module-Topology" class="anchor"></a><code><span class="keyword">module</span> <a href="Topology/index.html">Topology</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Demon/.dune-keep b/guides/users/_html/sasacore/Sasacore__Demon/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Demon/index.html b/guides/users/_html/sasacore/Sasacore__Demon/index.html
new file mode 100644
index 00000000..ac1bb831
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Demon/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Demon (sasacore.Sasacore__Demon)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Demon</nav><h1>Module <code>Sasacore__Demon</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Synchronous" class="anchored"><td class="def constructor"><a href="#type-t.Synchronous" class="anchor"></a><code>| </code><code><span class="constructor">Synchronous</span></code></td></tr><tr id="type-t.Central" class="anchored"><td class="def constructor"><a href="#type-t.Central" class="anchor"></a><code>| </code><code><span class="constructor">Central</span></code></td></tr><tr id="type-t.LocallyCentral" class="anchored"><td class="def constructor"><a href="#type-t.LocallyCentral" class="anchor"></a><code>| </code><code><span class="constructor">LocallyCentral</span></code></td></tr><tr id="type-t.Distributed" class="anchored"><td class="def constructor"><a href="#type-t.Distributed" class="anchor"></a><code>| </code><code><span class="constructor">Distributed</span></code></td></tr><tr id="type-t.Custom" class="anchored"><td class="def constructor"><a href="#type-t.Custom" class="anchor"></a><code>| </code><code><span class="constructor">Custom</span></code></td></tr></table></dt><dt class="spec type" id="type-pna"><a href="#type-pna" class="anchor"></a><code><span class="keyword">type</span> <span>'v pna</span></code><code> = <span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-neighbor">Sasacore.Register.neighbor</a></span> list</span> * <a href="../Sasacore/Register/index.html#type-action">Sasacore.Register.action</a></code></dt></dl><aside><p>f dummy_input_flag verbose_mode demon pl actions_ll enab</p><p>inputs:</p><ul><li>dummy_input_flag: true when used with --ignore-first-inputs</li><li>verbose_mode: true when the verbose level is &gt; 0</li><li>demon:</li><li>pl:</li><li>actions_ll: list of list of existing actions</li><li>enab_ll: list of list of enabled actions</li></ul><p>At the inner list level, exactly one action ougth to be chosen. At the outter list level, the number of chosen actions depends on the kind of demons.</p><p>In custom mode, as a side-effect, read on stdin which actions should be activated.</p><p>returns:</p><ul><li>a string containing the values (in RIF) of activating variables</li><li>the list of activated actions</li></ul><p>nb: it is possible that we read on stdin that an action should be activated even if it is not enabled (which would be a demon &quot;error&quot;). For the time being, we ignore the demon &quot;error&quot; and inhibit the activation.</p></aside><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : bool <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span><span><span class="type-var">'v</span> <a href="index.html#type-pna">pna</a></span> list</span> list</span> <span>&#45;&gt;</span> <span><span>bool list</span> list</span> <span>&#45;&gt;</span> <span>(string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <span><span>bool list</span> list</span> * <span><span><span class="type-var">'v</span> <a href="index.html#type-pna">pna</a></span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Diameter/.dune-keep b/guides/users/_html/sasacore/Sasacore__Diameter/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Diameter/index.html b/guides/users/_html/sasacore/Sasacore__Diameter/index.html
new file mode 100644
index 00000000..e900524b
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Diameter/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Diameter (sasacore.Sasacore__Diameter)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Diameter</nav><h1>Module <code>Sasacore__Diameter</code></h1></header><dl><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <a href="../Sasacore/Topology/index.html#type-t">Sasacore.Topology.t</a> <span>&#45;&gt;</span> int</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Env/.dune-keep b/guides/users/_html/sasacore/Sasacore__Env/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Env/index.html b/guides/users/_html/sasacore/Sasacore__Env/index.html
new file mode 100644
index 00000000..f809523d
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Env/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Env (sasacore.Sasacore__Env)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Env</nav><h1>Module <code>Sasacore__Env</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code></dt></dl><dl><dt class="spec value" id="val-init"><a href="#val-init" class="anchor"></a><code><span class="keyword">val</span> init : unit <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dt class="spec value" id="val-set"><a href="#val-set" class="anchor"></a><code><span class="keyword">val</span> set : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>set env process_id var_name var_value</code></p></dd></dl><dl><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span></code></dt><dd><p><code>get env process_id var_name</code></p></dd></dl><dl><dt class="spec value" id="val-get_copy"><a href="#val-get_copy" class="anchor"></a><code><span class="keyword">val</span> get_copy : <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span class="type-var">'v</span></code></dt><dd><p>Use registered copy function to returns an (hopefully) fresh copy</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__GenLutin/.dune-keep b/guides/users/_html/sasacore/Sasacore__GenLutin/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__GenLutin/index.html b/guides/users/_html/sasacore/Sasacore__GenLutin/index.html
new file mode 100644
index 00000000..7c2a1f72
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__GenLutin/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__GenLutin (sasacore.Sasacore__GenLutin)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__GenLutin</nav><h1>Module <code>Sasacore__GenLutin</code></h1></header><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dd><p>generates various Lutin demons (distributed, synchronous, etc.)</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__GenOracle/.dune-keep b/guides/users/_html/sasacore/Sasacore__GenOracle/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__GenOracle/index.html b/guides/users/_html/sasacore/Sasacore__GenOracle/index.html
new file mode 100644
index 00000000..f1dcf7b1
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__GenOracle/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__GenOracle (sasacore.Sasacore__GenOracle)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__GenOracle</nav><h1>Module <code>Sasacore__GenOracle</code></h1></header><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <a href="../Sasacore/Topology/index.html#type-t">Sasacore.Topology.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dd><p>generates oracle skeletons</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__GenRegister/.dune-keep b/guides/users/_html/sasacore/Sasacore__GenRegister/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__GenRegister/index.html b/guides/users/_html/sasacore/Sasacore__GenRegister/index.html
new file mode 100644
index 00000000..ab7d151c
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__GenRegister/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__GenRegister (sasacore.Sasacore__GenRegister)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__GenRegister</nav><h1>Module <code>Sasacore__GenRegister</code></h1><p>Takes as input some ocaml files and the output file name, and generates 2 ocaml files</p><ul><li>1 that defines a skeleton ocaml program for dealing with algo states</li><li>1 that (Algo.)register(s) the (input) algorithms.</li></ul><p>Existing output file won't be overrided (a warning is printed).</p><p>The input files ougth to define a module implementing the following interface:</p><p>val name: string val actions : string list option; val init_state: int -&gt; state val enable_f: state Algo.neighbor list -&gt; state -&gt; Algo.action list val step_f : state Algo.neighbor list -&gt; state -&gt; Algo.action -&gt; state val state_to_string: state -&gt; string</p><p>The algo state definition file implements the following interface:</p><p>type state val state_copy : state -&gt; state val state_of_string: (string -&gt; state) option val copy_state: state -&gt; state</p></header><dl><dt class="spec value" id="val-f"><a href="#val-f" class="anchor"></a><code><span class="keyword">val</span> f : <span>string list</span> <span>&#45;&gt;</span> <span>(string * string)</span> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Main/.dune-keep b/guides/users/_html/sasacore/Sasacore__Main/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Main/index.html b/guides/users/_html/sasacore/Sasacore__Main/index.html
new file mode 100644
index 00000000..9c33d0ad
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Main/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Main (sasacore.Sasacore__Main)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Main</nav><h1>Module <code>Sasacore__Main</code></h1></header><dl><dt class="spec type" id="type-layout"><a href="#type-layout" class="anchor"></a><code><span class="keyword">type</span> <span>'v layout</span></code><code> = <span><span>(<span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-neighbor">Sasacore.Register.neighbor</a></span> list</span>)</span> list</span></code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code><code> = <a href="../Sasacore/SasArg/index.html#type-t">Sasacore.SasArg.t</a> * <span><span class="type-var">'v</span> <a href="index.html#type-layout">layout</a></span> * <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span></code></dt></dl><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : bool <span>&#45;&gt;</span> <span>string array</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt></dl><dl><dt class="spec type" id="type-enable_processes"><a href="#type-enable_processes" class="anchor"></a><code><span class="keyword">type</span> <span>'v enable_processes</span></code><code> = <span><span><span>(<span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-neighbor">Sasacore.Register.neighbor</a></span> list</span> * <a href="../Sasacore/Register/index.html#type-action">Sasacore.Register.action</a>)</span> list</span> list</span> * <span><span>bool list</span> list</span></code></dt></dl><dl><dt class="spec value" id="val-get_enable_processes"><a href="#val-get_enable_processes" class="anchor"></a><code><span class="keyword">val</span> get_enable_processes : <span><span class="type-var">'v</span> <a href="index.html#type-layout">layout</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-enable_processes">enable_processes</a></span></code></dt><dt class="spec value" id="val-do_step"><a href="#val-do_step" class="anchor"></a><code><span class="keyword">val</span> do_step : <span><span>(<span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> * <span><span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-neighbor">Sasacore.Register.neighbor</a></span> list</span> * <a href="../Sasacore/Register/index.html#type-action">Sasacore.Register.action</a>)</span> list</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span></code></dt><dt class="spec value" id="val-get_inputs_rif_decl"><a href="#val-get_inputs_rif_decl" class="anchor"></a><code><span class="keyword">val</span> get_inputs_rif_decl : <a href="../Sasacore/SasArg/index.html#type-t">Sasacore.SasArg.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt><dt class="spec value" id="val-get_outputs_rif_decl"><a href="#val-get_outputs_rif_decl" class="anchor"></a><code><span class="keyword">val</span> get_outputs_rif_decl : <a href="../Sasacore/SasArg/index.html#type-t">Sasacore.SasArg.t</a> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Process/.dune-keep b/guides/users/_html/sasacore/Sasacore__Process/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Process/index.html b/guides/users/_html/sasacore/Sasacore__Process/index.html
new file mode 100644
index 00000000..7625a6da
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Process/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Process (sasacore.Sasacore__Process)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Process</nav><h1>Module <code>Sasacore__Process</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>'v t</span></code><code> = </code><code>{</code><table class="record"><tr id="type-t.pid" class="anchored"><td class="def field"><a href="#type-t.pid" class="anchor"></a><code>pid : string;</code></td></tr><tr id="type-t.actions" class="anchored"><td class="def field"><a href="#type-t.actions" class="anchor"></a><code>actions : <span><a href="../Sasacore/Register/index.html#type-action">Sasacore.Register.action</a> list</span>;</code></td></tr><tr id="type-t.init" class="anchored"><td class="def field"><a href="#type-t.init" class="anchor"></a><code>init : <span class="type-var">'v</span>;</code></td></tr><tr id="type-t.enable" class="anchored"><td class="def field"><a href="#type-t.enable" class="anchor"></a><code>enable : <span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-enable_fun">Sasacore.Register.enable_fun</a></span>;</code></td></tr><tr id="type-t.step" class="anchored"><td class="def field"><a href="#type-t.step" class="anchor"></a><code>step : <span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-step_fun">Sasacore.Register.step_fun</a></span>;</code></td></tr></table><code>}</code></dt><dd><p>There is such a Process.t per node in the dot file.</p></dd></dl><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : bool <span>&#45;&gt;</span> <a href="../Sasacore/Topology/index.html#type-node">Sasacore.Topology.node</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span class="type-var">'v</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>make custom_mode_flag node init_state</code> builds a process out of a dot node. To do that, it retreives the registered functions by Dynamic linking of the cmxs file specified in the &quot;algo&quot; field of the dot node.</p><p>nb: it provides variable initial values if not done in the dot (via the init field) nor in the Algo (via Algo.reg_init_vars)</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Register/.dune-keep b/guides/users/_html/sasacore/Sasacore__Register/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Register/index.html b/guides/users/_html/sasacore/Sasacore__Register/index.html
new file mode 100644
index 00000000..c409c496
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Register/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Register (sasacore.Sasacore__Register)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Register</nav><h1>Module <code>Sasacore__Register</code></h1><p>This module duplicates and extends the Algo module with get_* functions.</p><p>The rationale for defining such a module is to be able to hide the get_* functions from the Algo interface. Indeed, they are only called by the sasa engine, and it is dangerous and useless to expose them to algorithms designers.</p></header><dl><dt class="spec type" id="type-neighbor"><a href="#type-neighbor" class="anchor"></a><code><span class="keyword">type</span> <span>'s neighbor</span></code><code> = </code><code>{</code><table class="record"><tr id="type-neighbor.state" class="anchored"><td class="def field"><a href="#type-neighbor.state" class="anchor"></a><code>state : <span class="type-var">'s</span>;</code></td></tr><tr id="type-neighbor.pid" class="anchored"><td class="def field"><a href="#type-neighbor.pid" class="anchor"></a><code>pid : unit <span>&#45;&gt;</span> string;</code></td></tr><tr id="type-neighbor.spid" class="anchored"><td class="def field"><a href="#type-neighbor.spid" class="anchor"></a><code>spid : unit <span>&#45;&gt;</span> string;</code></td></tr><tr id="type-neighbor.reply" class="anchored"><td class="def field"><a href="#type-neighbor.reply" class="anchor"></a><code>reply : unit <span>&#45;&gt;</span> int;</code></td></tr><tr id="type-neighbor.weight" class="anchored"><td class="def field"><a href="#type-neighbor.weight" class="anchor"></a><code>weight : unit <span>&#45;&gt;</span> <span>int option</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-algo_id"><a href="#type-algo_id" class="anchor"></a><code><span class="keyword">type</span> algo_id</code><code> = string</code></dt><dt class="spec type" id="type-action"><a href="#type-action" class="anchor"></a><code><span class="keyword">type</span> action</code><code> = string</code></dt><dt class="spec type" id="type-enable_fun"><a href="#type-enable_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s enable_fun</span></code><code> = <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span></code></dt><dt class="spec type" id="type-step_fun"><a href="#type-step_fun" class="anchor"></a><code><span class="keyword">type</span> <span>'s step_fun</span></code><code> = <span><span><span class="type-var">'s</span> <a href="index.html#type-neighbor">neighbor</a></span> list</span> <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <a href="index.html#type-action">action</a> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt></dl><dl><dt class="spec value" id="val-reg_init_state"><a href="#val-reg_init_state" class="anchor"></a><code><span class="keyword">val</span> reg_init_state : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span>(int <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_enable"><a href="#val-reg_enable" class="anchor"></a><code><span class="keyword">val</span> reg_enable : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-enable_fun">enable_fun</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_step"><a href="#val-reg_step" class="anchor"></a><code><span class="keyword">val</span> reg_step : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-step_fun">step_fun</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_actions"><a href="#val-reg_actions" class="anchor"></a><code><span class="keyword">val</span> reg_actions : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_value_to_string"><a href="#val-reg_value_to_string" class="anchor"></a><code><span class="keyword">val</span> reg_value_to_string : <span>(<span class="type-var">'s</span> <span>&#45;&gt;</span> string)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_value_of_string"><a href="#val-reg_value_of_string" class="anchor"></a><code><span class="keyword">val</span> reg_value_of_string : <span>(string <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reg_copy_value"><a href="#val-reg_copy_value" class="anchor"></a><code><span class="keyword">val</span> reg_copy_value : <span>(<span class="type-var">'s</span> <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-card"><a href="#val-card" class="anchor"></a><code><span class="keyword">val</span> card : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-min_degree"><a href="#val-min_degree" class="anchor"></a><code><span class="keyword">val</span> min_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-mean_degree"><a href="#val-mean_degree" class="anchor"></a><code><span class="keyword">val</span> mean_degree : unit <span>&#45;&gt;</span> float</code></dt><dt class="spec value" id="val-max_degree"><a href="#val-max_degree" class="anchor"></a><code><span class="keyword">val</span> max_degree : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-is_cyclic"><a href="#val-is_cyclic" class="anchor"></a><code><span class="keyword">val</span> is_cyclic : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_connected"><a href="#val-is_connected" class="anchor"></a><code><span class="keyword">val</span> is_connected : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_tree"><a href="#val-is_tree" class="anchor"></a><code><span class="keyword">val</span> is_tree : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_directed"><a href="#val-is_directed" class="anchor"></a><code><span class="keyword">val</span> is_directed : unit <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-height"><a href="#val-height" class="anchor"></a><code><span class="keyword">val</span> height : unit <span>&#45;&gt;</span> <span><span>(string <span>&#45;&gt;</span> int)</span> option</span></code></dt><dd><p>If height () = None, then the graph doesn't have a height (because it isn't a tree) Otherwise, height () = Some h.</p></dd></dl><dl><dt class="spec value" id="val-links_number"><a href="#val-links_number" class="anchor"></a><code><span class="keyword">val</span> links_number : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-diameter"><a href="#val-diameter" class="anchor"></a><code><span class="keyword">val</span> diameter : unit <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-verbose_level"><a href="#val-verbose_level" class="anchor"></a><code><span class="keyword">val</span> verbose_level : <span>int Stdlib.ref</span></code></dt><dt class="spec value" id="val-get_graph_attribute"><a href="#val-get_graph_attribute" class="anchor"></a><code><span class="keyword">val</span> get_graph_attribute : string <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-get_enable"><a href="#val-get_enable" class="anchor"></a><code><span class="keyword">val</span> get_enable : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-enable_fun">enable_fun</a></span></code></dt><dt class="spec value" id="val-get_step"><a href="#val-get_step" class="anchor"></a><code><span class="keyword">val</span> get_step : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><span class="type-var">'s</span> <a href="index.html#type-step_fun">step_fun</a></span></code></dt><dt class="spec value" id="val-get_init_state"><a href="#val-get_init_state" class="anchor"></a><code><span class="keyword">val</span> get_init_state : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dt class="spec value" id="val-get_actions"><a href="#val-get_actions" class="anchor"></a><code><span class="keyword">val</span> get_actions : <a href="index.html#type-algo_id">algo_id</a> <span>&#45;&gt;</span> <span><a href="index.html#type-action">action</a> list</span></code></dt><dt class="spec value" id="val-get_value_to_string"><a href="#val-get_value_to_string" class="anchor"></a><code><span class="keyword">val</span> get_value_to_string : unit <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-get_value_of_string"><a href="#val-get_value_of_string" class="anchor"></a><code><span class="keyword">val</span> get_value_of_string : unit <span>&#45;&gt;</span> <span><span>(string <span>&#45;&gt;</span> <span class="type-var">'s</span>)</span> option</span></code></dt><dt class="spec value" id="val-get_copy_value"><a href="#val-get_copy_value" class="anchor"></a><code><span class="keyword">val</span> get_copy_value : unit <span>&#45;&gt;</span> <span class="type-var">'s</span> <span>&#45;&gt;</span> <span class="type-var">'s</span></code></dt><dt class="spec value" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span class="keyword">val</span> to_string : <span class="type-var">'s</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-set_card"><a href="#val-set_card" class="anchor"></a><code><span class="keyword">val</span> set_card : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_degrees"><a href="#val-set_degrees" class="anchor"></a><code><span class="keyword">val</span> set_degrees : <span>(unit <span>&#45;&gt;</span> int * int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_mean_deg"><a href="#val-set_mean_deg" class="anchor"></a><code><span class="keyword">val</span> set_mean_deg : <span>(unit <span>&#45;&gt;</span> float)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_is_connected_cyclic"><a href="#val-set_is_connected_cyclic" class="anchor"></a><code><span class="keyword">val</span> set_is_connected_cyclic : <span>(unit <span>&#45;&gt;</span> bool * bool)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_is_directed"><a href="#val-set_is_directed" class="anchor"></a><code><span class="keyword">val</span> set_is_directed : <span>(unit <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec type" id="type-node_id"><a href="#type-node_id" class="anchor"></a><code><span class="keyword">type</span> node_id</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-set_height"><a href="#val-set_height" class="anchor"></a><code><span class="keyword">val</span> set_height : <span>(<a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_links_number"><a href="#val-set_links_number" class="anchor"></a><code><span class="keyword">val</span> set_links_number : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_diameter"><a href="#val-set_diameter" class="anchor"></a><code><span class="keyword">val</span> set_diameter : <span>(unit <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-set_graph_attribute"><a href="#val-set_graph_attribute" class="anchor"></a><code><span class="keyword">val</span> set_graph_attribute : string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-graph_attribute_list"><a href="#val-graph_attribute_list" class="anchor"></a><code><span class="keyword">val</span> graph_attribute_list : unit <span>&#45;&gt;</span> <span><span>(string * string)</span> list</span></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__RifRead/.dune-keep b/guides/users/_html/sasacore/Sasacore__RifRead/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__RifRead/index.html b/guides/users/_html/sasacore/Sasacore__RifRead/index.html
new file mode 100644
index 00000000..f04b837d
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__RifRead/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__RifRead (sasacore.Sasacore__RifRead)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__RifRead</nav><h1>Module <code>Sasacore__RifRead</code></h1><p>Reads on stdin a bool</p></header><dl><dt class="spec value" id="val-bool"><a href="#val-bool" class="anchor"></a><code><span class="keyword">val</span> bool : bool <span>&#45;&gt;</span> string <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__SasArg/.dune-keep b/guides/users/_html/sasacore/Sasacore__SasArg/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__SasArg/index.html b/guides/users/_html/sasacore/Sasacore__SasArg/index.html
new file mode 100644
index 00000000..7fb440c9
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__SasArg/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__SasArg (sasacore.Sasacore__SasArg)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__SasArg</nav><h1>Module <code>Sasacore__SasArg</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>{</code><table class="record"><tr id="type-t.topo" class="anchored"><td class="def field"><a href="#type-t.topo" class="anchor"></a><code><span class="keyword">mutable</span> topo : string;</code></td></tr><tr id="type-t.length" class="anchored"><td class="def field"><a href="#type-t.length" class="anchor"></a><code><span class="keyword">mutable</span> length : int;</code></td></tr><tr id="type-t.verbose" class="anchored"><td class="def field"><a href="#type-t.verbose" class="anchor"></a><code><span class="keyword">mutable</span> verbose : int;</code></td></tr><tr id="type-t.demon" class="anchored"><td class="def field"><a href="#type-t.demon" class="anchor"></a><code><span class="keyword">mutable</span> demon : <a href="../Sasacore/Demon/index.html#type-t">Sasacore.Demon.t</a>;</code></td></tr><tr id="type-t.rif" class="anchored"><td class="def field"><a href="#type-t.rif" class="anchor"></a><code><span class="keyword">mutable</span> rif : bool;</code></td></tr><tr id="type-t.no_data_file" class="anchored"><td class="def field"><a href="#type-t.no_data_file" class="anchor"></a><code><span class="keyword">mutable</span> no_data_file : bool;</code></td></tr><tr id="type-t.seed" class="anchored"><td class="def field"><a href="#type-t.seed" class="anchor"></a><code><span class="keyword">mutable</span> seed : <span>int option</span>;</code></td></tr><tr id="type-t.replay_seed" class="anchored"><td class="def field"><a href="#type-t.replay_seed" class="anchor"></a><code><span class="keyword">mutable</span> replay_seed : bool;</code></td></tr><tr id="type-t.ifi" class="anchored"><td class="def field"><a href="#type-t.ifi" class="anchor"></a><code><span class="keyword">mutable</span> ifi : bool;</code></td></tr><tr id="type-t.gen_lutin" class="anchored"><td class="def field"><a href="#type-t.gen_lutin" class="anchor"></a><code><span class="keyword">mutable</span> gen_lutin : bool;</code></td></tr><tr id="type-t.gen_oracle" class="anchored"><td class="def field"><a href="#type-t.gen_oracle" class="anchor"></a><code><span class="keyword">mutable</span> gen_oracle : bool;</code></td></tr><tr id="type-t.dummy_input" class="anchored"><td class="def field"><a href="#type-t.dummy_input" class="anchor"></a><code><span class="keyword">mutable</span> dummy_input : bool;</code></td></tr><tr id="type-t.output_algos" class="anchored"><td class="def field"><a href="#type-t.output_algos" class="anchor"></a><code><span class="keyword">mutable</span> output_algos : bool;</code></td></tr><tr id="type-t.gen_register" class="anchored"><td class="def field"><a href="#type-t.gen_register" class="anchor"></a><code><span class="keyword">mutable</span> gen_register : bool;</code></td></tr><tr id="type-t._args" class="anchored"><td class="def field"><a href="#type-t._args" class="anchor"></a><code><span class="keyword">mutable</span> _args : <span><span>(string * Stdlib.Arg.spec * string)</span> list</span>;</code></td></tr><tr id="type-t._user_man" class="anchored"><td class="def field"><a href="#type-t._user_man" class="anchor"></a><code><span class="keyword">mutable</span> _user_man : <span><span>(string * <span>string list</span>)</span> list</span>;</code></td></tr><tr id="type-t._hidden_man" class="anchored"><td class="def field"><a href="#type-t._hidden_man" class="anchor"></a><code><span class="keyword">mutable</span> _hidden_man : <span><span>(string * <span>string list</span>)</span> list</span>;</code></td></tr><tr id="type-t._others" class="anchored"><td class="def field"><a href="#type-t._others" class="anchor"></a><code><span class="keyword">mutable</span> _others : <span>string list</span>;</code></td></tr><tr id="type-t._margin" class="anchored"><td class="def field"><a href="#type-t._margin" class="anchor"></a><code><span class="keyword">mutable</span> _margin : int;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-seed_get"><a href="#val-seed_get" class="anchor"></a><code><span class="keyword">val</span> seed_get : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-usage_msg"><a href="#val-usage_msg" class="anchor"></a><code><span class="keyword">val</span> usage_msg : string <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-parse"><a href="#val-parse" class="anchor"></a><code><span class="keyword">val</span> parse : <span>string array</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__SasaState/.dune-keep b/guides/users/_html/sasacore/Sasacore__SasaState/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__SasaState/index.html b/guides/users/_html/sasacore/Sasacore__SasaState/index.html
new file mode 100644
index 00000000..ffb952dd
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__SasaState/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__SasaState (sasacore.Sasacore__SasaState)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__SasaState</nav><h1>Module <code>Sasacore__SasaState</code></h1></header><dl><dt class="spec type" id="type-pid"><a href="#type-pid" class="anchor"></a><code><span class="keyword">type</span> pid</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-to_var_names"><a href="#val-to_var_names" class="anchor"></a><code><span class="keyword">val</span> to_var_names : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span>string list</span></code></dt><dt class="spec value" id="val-to_rif_decl"><a href="#val-to_rif_decl" class="anchor"></a><code><span class="keyword">val</span> to_rif_decl : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span>(string * Data.t)</span> list</span></code></dt><dd><p>used to produce RIF</p></dd></dl><dl><dt class="spec value" id="val-to_rif_data"><a href="#val-to_rif_data" class="anchor"></a><code><span class="keyword">val</span> to_rif_data : <span class="type-var">'v</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-to_rdbg_subst"><a href="#val-to_rdbg_subst" class="anchor"></a><code><span class="keyword">val</span> to_rdbg_subst : <a href="index.html#type-pid">pid</a> <span>&#45;&gt;</span> <span class="type-var">'v</span> <span>&#45;&gt;</span> <span><span>(string * Data.v)</span> list</span></code></dt><dd><p>used to interact with rdbg</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__SasaVersion/.dune-keep b/guides/users/_html/sasacore/Sasacore__SasaVersion/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html b/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
new file mode 100644
index 00000000..18a92c23
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__SasaVersion (sasacore.Sasacore__SasaVersion)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__SasaVersion</nav><h1>Module <code>Sasacore__SasaVersion</code></h1></header><dl><dt class="spec value" id="val-str"><a href="#val-str" class="anchor"></a><code><span class="keyword">val</span> str : string</code></dt><dt class="spec value" id="val-sha"><a href="#val-sha" class="anchor"></a><code><span class="keyword">val</span> sha : string</code></dt><dt class="spec value" id="val-branch"><a href="#val-branch" class="anchor"></a><code><span class="keyword">val</span> branch : string</code></dt><dt class="spec value" id="val-maintainer"><a href="#val-maintainer" class="anchor"></a><code><span class="keyword">val</span> maintainer : string</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__StringOf/.dune-keep b/guides/users/_html/sasacore/Sasacore__StringOf/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__StringOf/index.html b/guides/users/_html/sasacore/Sasacore__StringOf/index.html
new file mode 100644
index 00000000..278b03c5
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__StringOf/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__StringOf (sasacore.Sasacore__StringOf)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__StringOf</nav><h1>Module <code>Sasacore__StringOf</code></h1></header><dl><dt class="spec value" id="val-algo_neighbor"><a href="#val-algo_neighbor" class="anchor"></a><code><span class="keyword">val</span> algo_neighbor : <span><span class="type-var">'v</span> <a href="../Sasacore/Register/index.html#type-neighbor">Sasacore.Register.neighbor</a></span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-env"><a href="#val-env" class="anchor"></a><code><span class="keyword">val</span> env : <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-env_rif"><a href="#val-env_rif" class="anchor"></a><code><span class="keyword">val</span> env_rif : <span><span class="type-var">'v</span> <a href="../Sasacore/Env/index.html#type-t">Sasacore.Env.t</a></span> <span>&#45;&gt;</span> <span><span><span class="type-var">'v</span> <a href="../Sasacore/Process/index.html#type-t">Sasacore.Process.t</a></span> list</span> <span>&#45;&gt;</span> string</code></dt></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/Sasacore__Topology/.dune-keep b/guides/users/_html/sasacore/Sasacore__Topology/.dune-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/guides/users/_html/sasacore/Sasacore__Topology/index.html b/guides/users/_html/sasacore/Sasacore__Topology/index.html
new file mode 100644
index 00000000..7eaa2bc8
--- /dev/null
+++ b/guides/users/_html/sasacore/Sasacore__Topology/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sasacore__Topology (sasacore.Sasacore__Topology)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">sasacore</a> &#x00BB; Sasacore__Topology</nav><h1>Module <code>Sasacore__Topology</code></h1></header><dl><dt class="spec type" id="type-node_id"><a href="#type-node_id" class="anchor"></a><code><span class="keyword">type</span> node_id</code><code> = string</code></dt><dt class="spec type" id="type-node"><a href="#type-node" class="anchor"></a><code><span class="keyword">type</span> node</code><code> = </code><code>{</code><table class="record"><tr id="type-node.id" class="anchored"><td class="def field"><a href="#type-node.id" class="anchor"></a><code>id : <a href="index.html#type-node_id">node_id</a>;</code></td><td class="doc"><p>The id of the node as stated in the dot file</p></td></tr><tr id="type-node.file" class="anchored"><td class="def field"><a href="#type-node.file" class="anchor"></a><code>file : string;</code></td><td class="doc"><p>the content of the algo field (a ml file)</p></td></tr><tr id="type-node.init" class="anchored"><td class="def field"><a href="#type-node.init" class="anchor"></a><code>init : string;</code></td><td class="doc"><p>store the content of the init field</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>{</code><table class="record"><tr id="type-t.nodes" class="anchored"><td class="def field"><a href="#type-t.nodes" class="anchor"></a><code>nodes : <span><a href="index.html#type-node">node</a> list</span>;</code></td></tr><tr id="type-t.succ" class="anchored"><td class="def field"><a href="#type-t.succ" class="anchor"></a><code>succ : <a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> <span><span>(<span>int option</span> * <a href="index.html#type-node_id">node_id</a>)</span> list</span>;</code></td><td class="doc"><p>get neighbors, with weigth if any</p></td></tr><tr id="type-t.of_id" class="anchored"><td class="def field"><a href="#type-t.of_id" class="anchor"></a><code>of_id : <a href="index.html#type-node_id">node_id</a> <span>&#45;&gt;</span> <a href="index.html#type-node">node</a>;</code></td></tr><tr id="type-t.directed" class="anchored"><td class="def field"><a href="#type-t.directed" class="anchor"></a><code>directed : bool;</code></td><td class="doc"><p>true if the graph is directed</p></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-read"><a href="#val-read" class="anchor"></a><code><span class="keyword">val</span> read : string <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Parse a sasa dot file</p></dd></dl><aside><p>Various eponymous utils</p></aside><dl><dt class="spec value" id="val-to_adjency"><a href="#val-to_adjency" class="anchor"></a><code><span class="keyword">val</span> to_adjency : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>bool array</span> array</span></code></dt><dt class="spec value" id="val-get_nb_link"><a href="#val-get_nb_link" class="anchor"></a><code><span class="keyword">val</span> get_nb_link : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_mean_degree"><a href="#val-get_mean_degree" class="anchor"></a><code><span class="keyword">val</span> get_mean_degree : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> float</code></dt><dt class="spec value" id="val-is_connected_and_cyclic"><a href="#val-is_connected_and_cyclic" class="anchor"></a><code><span class="keyword">val</span> is_connected_and_cyclic : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool * bool</code></dt><dt class="spec value" id="val-height"><a href="#val-height" class="anchor"></a><code><span class="keyword">val</span> height : <span>string list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_height"><a href="#val-get_height" class="anchor"></a><code><span class="keyword">val</span> get_height : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-get_degree"><a href="#val-get_degree" class="anchor"></a><code><span class="keyword">val</span> get_degree : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int * int</code></dt><dd><p>Watch out, computing the degree is expensive</p></dd></dl></div></body></html>
\ No newline at end of file
diff --git a/guides/users/_html/sasacore/index.html b/guides/users/_html/sasacore/index.html
new file mode 100644
index 00000000..ec50fcff
--- /dev/null
+++ b/guides/users/_html/sasacore/index.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sasacore.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – sasacore</nav><h1 id="sasacore-index"><a href="#sasacore-index" class="anchor"></a>sasacore index</h1><nav class="toc"><ul><li><a href="#library-sasacore">Library sasacore</a></li></ul></nav></header><h2 id="library-sasacore"><a href="#library-sasacore" class="anchor"></a>Library sasacore</h2><p>The entry point of this library is the module: <a href="Sasacore/index.html"><code>Sasacore</code></a>.</p></div></body></html>
\ No newline at end of file
-- 
GitLab