From f87bcf3c67fee3ee622d72f445891af3da007365 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Thu, 31 Oct 2019 10:32:48 +0100
Subject: [PATCH] Doc: some enhancements

also, use (back) the odoc make rule now the image has been updated
---
 .gitlab-ci.yml                                |   1 +
 Makefile.version                              |   6 +-
 guides/users/Makefile                         |   2 +-
 guides/users/README.md                        | 179 ++--
 guides/users/README.org                       | 133 ++-
 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 -
 guides/users/sasabatch.fig                    | 199 +++++
 guides/users/sasabatch.pdf                    | Bin 0 -> 10840 bytes
 guides/users/sasabatch.png                    | Bin 0 -> 7183 bytes
 test/Makefile.inc                             |   4 +-
 test/alea-coloring/Makefile                   |   3 +-
 test/bfs-spanning-tree/Makefile               |   3 +-
 test/coloring/Makefile                        |   5 +-
 test/dijkstra-ring/Makefile                   |   3 +-
 test/skeleton/Makefile                        |   3 +-
 test/unison/Makefile                          |   3 +-
 75 files changed, 436 insertions(+), 977 deletions(-)
 delete mode 100644 guides/users/_html/algo/Algo/.dune-keep
 delete mode 100644 guides/users/_html/algo/Algo/index.html
 delete mode 100644 guides/users/_html/algo/index.html
 delete mode 100644 guides/users/_html/highlight.pack.js
 delete mode 100644 guides/users/_html/index.html
 delete mode 100644 guides/users/_html/odoc.css
 delete mode 100644 guides/users/_html/sasa/Sasa/.dune-keep
 delete mode 100644 guides/users/_html/sasa/Sasa/SasaRun/index.html
 delete mode 100644 guides/users/_html/sasa/Sasa/index.html
 delete mode 100644 guides/users/_html/sasa/Sasa__SasaRun/.dune-keep
 delete mode 100644 guides/users/_html/sasa/Sasa__SasaRun/index.html
 delete mode 100644 guides/users/_html/sasa/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Demon/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Diameter/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Env/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/GenLutin/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/GenOracle/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/GenRegister/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Main/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Process/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Register/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/RifRead/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/SasArg/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/SasaState/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/SasaVersion/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/StringOf/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/Topology/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Demon/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Demon/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Diameter/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Diameter/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Env/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Env/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenLutin/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenLutin/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenOracle/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenOracle/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenRegister/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__GenRegister/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Main/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Main/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Process/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Process/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Register/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Register/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__RifRead/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__RifRead/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasArg/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasArg/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasaState/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasaState/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasaVersion/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__StringOf/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__StringOf/index.html
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Topology/.dune-keep
 delete mode 100644 guides/users/_html/sasacore/Sasacore__Topology/index.html
 delete mode 100644 guides/users/_html/sasacore/index.html
 create mode 100644 guides/users/sasabatch.fig
 create mode 100644 guides/users/sasabatch.pdf
 create mode 100644 guides/users/sasabatch.png

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 30165680..4177ba3f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -32,6 +32,7 @@ pages:
   image: jahierwan/verimag-sync-tools
   stage: deploy
   script:
+    - make odoc
     - mkdir public
     - cd guides/users
     - make README.html
diff --git a/Makefile.version b/Makefile.version
index 52d180b2..d00fd8f4 100644
--- a/Makefile.version
+++ b/Makefile.version
@@ -1,8 +1,8 @@
 
-SHA:=$(shell git log -1 --pretty=format:"%h"|| echo "err")
-BRANCH:=$(shell git branch | grep "*" | cut -d ' ' -f 2 || echo "err")
+SHA:=$(shell git log -1 --pretty=format:"%h"|| echo "opam")
+BRANCH:=$(shell git branch | grep "*" | cut -d ' ' -f 2 || basename `pwd` | echo "opam")
 
-VERSION=$(shell git describe --tags)
+VERSION=$(shell git describe --tags|| basename `pwd` | cut -d '.' -f2-4)
 
 del_version:
 	rm -f lib/sasacore/sasaVersion.ml
diff --git a/guides/users/Makefile b/guides/users/Makefile
index cd0103e8..4c0d321e 100644
--- a/guides/users/Makefile
+++ b/guides/users/Makefile
@@ -1,5 +1,5 @@
 
-all:README.html 
+all:README.html algo
 
 algo:
 	cp -rf ../../_build/default/_doc/_html .
diff --git a/guides/users/README.md b/guides/users/README.md
index b76f8119..788339b5 100644
--- a/guides/users/README.md
+++ b/guides/users/README.md
@@ -1,26 +1,30 @@
 # Table of Contents
 
-1.  [TL;DR](#org22df16e)
-2.  [Topology](#org084693b)
-3.  [Algorithms](#org7714be5)
-4.  [Examples](#org751f0d0)
-5.  [Batch mode](#orgd888135)
-    1.  [Running batch simulations with Built-in demons](#orgde8abea)
-    2.  [Running batch simulations with manual demons](#orgad6b949)
-    3.  [Running batch simulations with `lurette`](#orgc770247)
-    4.  [Viewing Results](#org0e8ce0e)
-    5.  [The `sasa` CLI](#org0d3c2ec)
-6.  [Interactive mode](#orgd6f3f49)
-    1.  [Running interactive sessions with `rdbg`](#orgc33a722)
-7.  [Install](#org2ab3811)
-    1.  [Via opam (prefered method)](#org7c6e22c)
-    2.  [From source](#orgc2f967e)
-8.  [More](#orgcd62084)
-9.  [FAQ](#org33cd4c0)
-    1.  [Is there a FAQ?](#org356307f)
-
-
-<a id="org22df16e"></a>
+1.  [TL;DR](#orgb45de04)
+2.  [Topology](#org44917a9)
+3.  [Algorithms](#orgd29bb7c)
+4.  [Examples](#org64494a4)
+5.  [Batch mode](#org013085e)
+    1.  [Running batch simulations with Built-in demons](#org5474a3d)
+    2.  [Running batch simulations with manual demons](#org28a5404)
+    3.  [Running batch simulations with `lurette`](#org38bc20c)
+    4.  [Viewing Results](#org09c40f5)
+    5.  [The `sasa` CLI](#orga1fe1b8)
+6.  [Interactive mode](#orga30d18c)
+    1.  [Running interactive sessions with `rdbg`](#orgfbf8e46)
+    2.  [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgd02acd8)
+    3.  [Getting `rdbg` on-line help](#org9abe8a8)
+    4.  [How `rdbg` interacts with the `ocaml` REPL](#orgbcdd35a)
+7.  [Install](#orgcf6f501)
+    1.  [Via opam 2 (prefered method)](#org03438b7)
+    2.  [Via docker](#org2d2a61a)
+    3.  [From source](#orgd246fe1)
+8.  [More](#org8b4cf8e)
+9.  [FAQ](#orgf7c8932)
+    1.  [Is there a FAQ?](#org78cc516)
+
+
+<a id="orgb45de04"></a>
 
 # TL;DR
 
@@ -41,10 +45,14 @@ make ring.cmxs
 sasa ring.dot
 ```
 
+![img](sasabatch.png)
+
+<./sasabatch.pdf>
+
 The source code is available at <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa>
 
 
-<a id="org084693b"></a>
+<a id="org44917a9"></a>
 
 # Topology
 
@@ -107,19 +115,19 @@ Such parameters can be retreived in Algorithms using the `Algo.get_graph_attribu
 nb: a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use.
 
 
-<a id="org7714be5"></a>
+<a id="orgd29bb7c"></a>
 
 # Algorithms
 
 The following has been generated from [algo.mli](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/lib/algo/algo.mli)
 
 <div class="html">
-<iframe title="The Algo API" width="700" height="700" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html>";></iframe>
+<iframe title="The Algo API" width="700" height="700" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html>" alt="<sub>html</sub>/algo/Algo/index.html";> </iframe>
 
 </div>
 
 
-<a id="org751f0d0"></a>
+<a id="org64494a4"></a>
 
 # Examples
 
@@ -147,12 +155,12 @@ The `test` directory also contains sub-directories which gathers programs shared
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
 
 
-<a id="orgd888135"></a>
+<a id="org013085e"></a>
 
 # Batch mode
 
 
-<a id="orgde8abea"></a>
+<a id="org5474a3d"></a>
 
 ## Running batch simulations with Built-in demons
 
@@ -177,7 +185,7 @@ sasa -h | grep "\-demon"
     --custom-demon, -custd
 
 
-<a id="orgad6b949"></a>
+<a id="org28a5404"></a>
 
 ## Running batch simulations with manual demons
 
@@ -204,7 +212,7 @@ It can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNC
 Built-in demons can of course be programmed in Lutin. One can generate such demons using the `--gen-lutin-demon` option: `sasa --gen-lutin-demon a_graph.dot`. It can be handy at least to get the demons variables names in the good order if one to write its own demon.
 
 
-<a id="orgc770247"></a>
+<a id="org38bc20c"></a>
 
 ## Running batch simulations with `lurette`
 
@@ -227,14 +235,14 @@ lurette \
 ```
 
 
-<a id="org0e8ce0e"></a>
+<a id="org09c40f5"></a>
 
 ## Viewing Results
 
 `sasa -rif` and `lurette` generates `.rif` files that can be viewed with `gnuplot-rif` or `sim2chro`; cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/>
 
 
-<a id="org0d3c2ec"></a>
+<a id="orga1fe1b8"></a>
 
 ## The `sasa` CLI
 
@@ -297,7 +305,7 @@ sasa --more
                 Display the version ocaml version sasa was compiled with and exit.
 
 
-<a id="orgd6f3f49"></a>
+<a id="orga30d18c"></a>
 
 # Interactive mode
 
@@ -310,7 +318,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
 
 
-<a id="orgc33a722"></a>
+<a id="orgfbf8e46"></a>
 
 ## Running interactive sessions with `rdbg`
 
@@ -324,42 +332,49 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 8.  `pr` to move one round backward
 9.  `go` to move forward until convergence
 
-All those commands are defined in [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) that is included in `test/*/rdbg-session.ml` files. This file contain straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs!
+All those commands are defined in (the common) [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) that is included in (locals) `test/*/my-rdbg-tuning.ml` that are included in (generated) `test/*/rdbg-session.ml` files. `my-rdbg-tuning.ml` contains straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs by modyfying the local `my-rdbg-tuning.ml`!
+
+
+<a id="orgd02acd8"></a>
 
-For instance, go to the `test/alea-coloring/` directory. It contains the following files:
+## Example: use `rdbg` from the `test/alea-coloring/` directory
 
--   `my-rdbg-tuning.ml` that is actually a symbolic link to the [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) file
--   `ring.dot`: the topology
--   `p.ml`: the algo used in `ring.dot`
--   `Makefile`: demonstrate various ways of using `sasa`
+All the sub-directories of the `test` directory are organized similarly. Let's have a look at the `test/alea-coloring/` directory. It contains the following files:
+
+-   `my-rdbg-tuning.ml` that just includes [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) (some `my-rdbg-tuning.ml` files define more commands, such as the one in [../../test/async-unison](../../test/async-unison/my-rdbg-tuning.ml)).
+-   `ring.dot`: a possible topology
+-   `p.ml`: an algorithm used in `ring.dot`
+-   `Makefile`: a Makefile that demonstrates various ways of using `sasa`. In particular, it contains a rule named `rdbg`.
+
+Try for instance:
 
 ```sh
+cd test/coloring
 make rdbg
 ```
 
-This rule
+This make rule (defined in `Makefile` and `../Makefile.inc`)
 
--   generates the `p.cmxs` and `p.cma` files, resulting from the compilation of `p.ml` (the makefile rules are in `../Makefile.inc`).
--   generates a `ring.lut` file (out of `ring.dot` and `p.cmxs`) that defines various Lutin demons
--   launch `rdbg` with some arguments. `rdbg` then prompts the user to enter some commands.
+1.  generates the `ring.ml` file, that contains the registration code (that can indeed be generated by sasa, as explained in `algo.mli`).
+2.  launches `rdbg` with some arguments. `rdbg` then prompts the user to enter one of the folling commands: `c`, `q`, `s`:
 
 ```sh
-rdbg -o ring.rif  \
-      -env "sasa -seed 42  -l 100 ring.dot -custd -rif" \
-      -sut-nd "lutin ring.lut -n distributed"
+rdbg -o ring.rif -sut "$(sasa)  ring.dot --locally-central-demon" 
 
 [c] create a fresh session
 [q] quit
 [s] do nothing
 
-[0/s/q/c/1/2/...]: 
+[c/q/s]: 
 ```
 
-hence let's create a fresh session by typing 'c' and then 'return'. This will result in the creation of the `rdbg_session.ml` file, that load all the necessary modules to run an interactive session with `rdbg`, where `rdbg` simulates ring.dot with `sasa` using a distributed demon.
+By default, the first in the list (here `c`) is executed if you press `[Return]` without any command.
+
+Hence, let's create a fresh session by typing `c` and then `[Return]` (or just `[Return]`). This will result in the creation of the `rdbg_session.ml` file, that loads all the necessary modules to run an interactive session with `rdbg`, where `rdbg` simulates ring.dot with `sasa` using a locally distributed daemon.
 
-For instance, you can type `nr [return]`, a rdbg command defined in [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) that steps until the next round is reached. Then, by typing `[return]`; `rdbg` will run the lastly used command, which is `nr`, which allow you to move forward in the execution from rounds to rounds. If you want to go backwards to the previous round, you can use the `br` command=, also defined in [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml).
+For instance, you can type `nr [return]`, a `rdbg` command defined in [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml) that steps until the next round is reached. Then, by typing `[return]`; `rdbg` will run the lastly used command, which is `nr`, which allow you to move forward in the execution from rounds to rounds. If you want to go backwards to the previous round, you can use the `br` command=, also defined in [../../test/my-rdbg-tuning.ml](../../test/my-rdbg-tuning.ml).
 
-nb: the next time rdbg is launched (even without argument), you will be prompted with the possibility to reuse this session.
+nb: the next time rdbg is launched (without argument), you will be prompted with the possibility to reuse this session.
 
 ```sh
 rdbg
@@ -372,17 +387,56 @@ rdbg
 [0/s/q/c/1/2/...]: 
 ```
 
-Typing '0' will therefore also load the `rdbg_session.ml` file we have just been using.
+Typing `0` will therefore also load the `rdbg_session.ml` file we have just been using.
+
+
+<a id="org9abe8a8"></a>
+
+## Getting `rdbg` on-line help
+
+Here are 2 useful entry-points to rdbg on-line help:
+
+1.  `rdbg --help` and
+2.  at the `rdbg` prompt, the `help` and the `apropos` commands.
+
+Try the following (without leading space!):
+
+```ocaml
+help "apropos"
+apropos ""
+help "back"
+```
+
+
+<a id="orgbcdd35a"></a>
+
+## How `rdbg` interacts with the `ocaml` REPL
+
+Note that `rdbg` actually sends everything you type to an `ocaml` toplevel REPL, trying to guess when to add boring `()` and `;;` and the end of your `rdbg` phrase (a `rdbg` phrase is any string you type at the `rdbg` prompt until you press the [Return] key). Hence, when you type at the `rdbg` prompt:
+
+-   `help "apropos"[Return]` it sends to the ocaml REPL the string `help "apropos";;`, which calls the `help` (pre-loaded) function with the "apropos" string argument.
+-   `n[Return]` it sends `n();;` to the ocaml REPL (which will do something iff the function `n` is defined and takes `()` (unit) as argument).
+
+If you want to be sure that `rdbg` does not add anything to the phrases you type, or if your want to write a function on several lines, just add a leading blank:
+
+-   `​ let my_n () = n ();;` sends `let my_n () = n ();;`
 
+but if you type
 
-<a id="org2ab3811"></a>
+-   `​ n[Return]` it sends `n` and nothing happen as ocaml waits for `;;`; so if then you type
+-   `;;[Return]` it sends `;;`, which returns the type of `n`, but without actually calling `n` as no `()` has been provided.
+
+In different words `n[Return]` has the same effect as `​ n();;[Return]`
+
+
+<a id="orgcf6f501"></a>
 
 # Install
 
 
-<a id="org7c6e22c"></a>
+<a id="org03438b7"></a>
 
-## Via opam (prefered method)
+## Via opam 2 (prefered method)
 
 ```sh
 opam repo add verimag-sync-repo "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/opam-repository"
@@ -405,7 +459,14 @@ opam install -y rdbg lutin
 ```
 
 
-<a id="orgc2f967e"></a>
+<a id="org2d2a61a"></a>
+
+## Via docker
+
+cf the Install section of <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/>
+
+
+<a id="orgd246fe1"></a>
 
 ## From source
 
@@ -421,7 +482,7 @@ You will need:
 One can mimick the content of the `test` job in the project [Gitlab CI script](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/.gitlab-ci.yml).
 
 
-<a id="orgcd62084"></a>
+<a id="org8b4cf8e"></a>
 
 # More
 
@@ -429,13 +490,13 @@ One can mimick the content of the `test` job in the project [Gitlab CI script](h
 -   Sources: <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa>
 
 
-<a id="org33cd4c0"></a>
+<a id="orgf7c8932"></a>
 
 # FAQ
 
 
-<a id="org356307f"></a>
+<a id="org78cc516"></a>
 
 ## Is there a FAQ?
 
-yes
+yes
\ No newline at end of file
diff --git a/guides/users/README.org b/guides/users/README.org
index 69ee3c80..fdc7fdfa 100644
--- a/guides/users/README.org
+++ b/guides/users/README.org
@@ -34,6 +34,10 @@ make ring.cmxs
 sasa ring.dot
 #+END_SRC
 
+[[file:sasabatch.png]]
+
+[[./sasabatch.pdf]]
+
 The source code is available at
 https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa
 
@@ -109,7 +113,9 @@ The following has been generated from [[https://gricad-gitlab.univ-grenoble-alpe
 <iframe title="The Algo API"
     width="700"
     height="700"
- src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html";></iframe>
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html"
+    alt="_html/algo/Algo/index.html";>
+</iframe>
 #+end_html
 
 * Examples
@@ -317,51 +323,59 @@ that take advantage of the versatility (programmability) of
 8. =pr=  to move one round backward
 9. =go= to move forward until convergence
 
-All those commands are defined in [[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]] that is
-included in =test/*/rdbg-session.ml= files. This file contain
-straigthforward =ocaml= code that defines various =rdbg= shortcuts to
-ease the simulation of =sasa= systems. Feel free to tailor those
-command to yours needs!
+All    those     commands    are     defined    in     (the    common)
+[[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]]    that   is    included   in    (locals)
+=test/*/my-rdbg-tuning.ml=   that   are    included   in   (generated)
+=test/*/rdbg-session.ml=    files.     =my-rdbg-tuning.ml=    contains
+straigthforward =ocaml= code that  defines various =rdbg= shortcuts to
+ease  the simulation  of =sasa=  systems.  Feel free  to tailor  those
+command to yours needs by modyfying the local =my-rdbg-tuning.ml=!
 
-For instance, go to the =test/alea-coloring/= directory.
-It contains the following files:
-- =my-rdbg-tuning.ml= that is actually a symbolic link to the 
-   [[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]] file
-- =ring.dot=: the topology
-- =p.ml=: the algo used in =ring.dot=
-- =Makefile=: demonstrate various ways of using =sasa=
+** Example: use =rdbg= from the =test/alea-coloring/= directory 
 
+All the sub-directories of the =test= directory are organized similarly.
+Let's have a look at  the =test/alea-coloring/= directory.
+It contains the following files:
+- =my-rdbg-tuning.ml=          that     just          includes
+  [[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]]  (some   =my-rdbg-tuning.ml= files define  more
+  commands, such as the one in   [[file:../../test/async-unison/my-rdbg-tuning.ml][../../test/async-unison]]).
+- =ring.dot=: a possible  topology
+- =p.ml=: an algorithm used in =ring.dot=
+- =Makefile=:  a  Makefile that  demonstrates  various  ways of  using
+  =sasa=. In particular, it contains a rule named =rdbg=.
+
+Try for instance:
 #+BEGIN_SRC sh
+cd test/coloring
 make rdbg
 #+END_SRC
 
-This rule 
-- generates the =p.cmxs= and =p.cma= files, resulting from the compilation of
-  =p.ml= (the makefile rules are in =../Makefile.inc=).
-- generates a =ring.lut= file (out of =ring.dot= and =p.cmxs=) that defines
-  various Lutin demons
-- launch =rdbg= with some arguments. =rdbg= then prompts the user to
-  enter some commands.
+This make rule (defined in  =Makefile= and =../Makefile.inc=) 
+1. generates  the =ring.ml=  file, that  contains the  registration code
+   (that can indeed be generated by  sasa, as explained in  =algo.mli=).
+2. launches =rdbg= with some arguments. =rdbg= then prompts the user to
+   enter one of the folling  commands:   =c=, =q=, =s=:
 
 #+BEGIN_SRC sh
-rdbg -o ring.rif  \
-      -env "sasa -seed 42  -l 100 ring.dot -custd -rif" \
-      -sut-nd "lutin ring.lut -n distributed"
+rdbg -o ring.rif -sut "$(sasa)  ring.dot --locally-central-demon" 
 
 [c] create a fresh session
 [q] quit
 [s] do nothing
 
-[0/s/q/c/1/2/...]: 
+[c/q/s]: 
 #+END_SRC
 
-hence let's create a fresh session by typing 'c' and then 'return'.
-This will result in the creation of the =rdbg_session.ml= file, that
-load all the necessary modules to run an interactive session with
-=rdbg=, where =rdbg= simulates ring.dot with =sasa= using a
-distributed demon.
+By default, the first  in the list (here =c=) is  executed if you press
+=[Return]= without any command.
+
+Hence, let's create a fresh session  by typing =c= and then =[Return]=
+(or  just  =[Return]=).  This  will  result  in  the creation  of  the
+=rdbg_session.ml= file, that loads all  the necessary modules to run an
+interactive session with =rdbg=,  where =rdbg= simulates ring.dot with
+=sasa= using a locally distributed daemon.
 
-For instance, you can type =nr [return]=, a rdbg command defined in
+For instance, you can type =nr [return]=, a =rdbg= command defined in
  [[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]] that steps until the next round is
  reached. Then, by typing =[return]=; =rdbg= will run the lastly used
  command, which is =nr=, which allow you to move forward in the
@@ -369,9 +383,7 @@ For instance, you can type =nr [return]=, a rdbg command defined in
  previous round, you can use the =br= command=, also defined in
  [[file:../../test/my-rdbg-tuning.ml][../../test/my-rdbg-tuning.ml]]. 
 
-
-
-nb: the next time rdbg is launched (even without argument), you will 
+nb: the next time rdbg is launched (without argument), you will 
 be  prompted with the possibility to reuse this session.
 
 #+BEGIN_SRC sh
@@ -385,13 +397,58 @@ rdbg
 [0/s/q/c/1/2/...]: 
 #+END_SRC
 
-Typing '0' will therefore also load the =rdbg_session.ml= file we have
+Typing =0= will therefore also load the =rdbg_session.ml= file we have
 just been using.
 
+** Getting =rdbg= on-line help
+
+Here are 2 useful entry-points to rdbg on-line help:
+1. =rdbg --help= and 
+2. at the =rdbg= prompt, the =help= and the =apropos= commands. 
+
+Try the following (without leading space!): 
+#+BEGIN_SRC ocaml 
+help "apropos"
+apropos ""
+help "back"
+#+END_SRC
+
+
+** How =rdbg= interacts with the =ocaml= REPL 
+
+
+Note  that =rdbg=  actually sends  everything you  type to  an =ocaml=
+toplevel REPL,  trying to guess when  to add boring =()=  and =;;= and
+the end of your =rdbg= phrase (a  =rdbg= phrase is any string you type
+at the =rdbg=  prompt until you press the [Return]  key).  Hence, when
+you type at the =rdbg=  prompt:
+
+- =help "apropos"[Return]= it sends to the ocaml REPL the string =help
+  "apropos";;=, which calls the  =help= (pre-loaded) function with the
+  "apropos" string argument.
+- =n[Return]=  it sends  =n();;=  to  the ocaml  REPL  (which will  do
+  something iff the  function =n= is defined and takes  =()= (unit) as
+  argument).
+
+If you want to be sure that  =rdbg= does not add anything to the phrases
+you type, or  if your want to  write a function on  several lines, just
+add a leading blank:
+
+- =​  let my_n () = n ();;=  sends =let my_n () = n ();;=
+
+but  if you type 
+- =​ n[Return]=  it sends  =n= and  nothing happen  as ocaml  waits for
+  =;;=; so if then you type
+- =;;[Return]=  it sends  =;;=, which  returns  the type  of =n=,  but
+  without actually calling =n= as no =()= has been provided.
+
+In different words =n[Return]= has the same effect as =​ n();;[Return]=
 
 * Install
 
-** Via opam (prefered method) 
+** Via opam 2 (prefered method) 
+
+
 
 #+BEGIN_SRC  sh :tangle sh/install-opam.sh :noweb yes  :tangle-mode (identity #o444)
 opam repo add verimag-sync-repo "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/opam-repository"
@@ -415,6 +472,12 @@ opam depext -y rdbg lutin
 opam install -y rdbg lutin
 #+END_SRC
 
+** Via docker 
+
+cf the Install section of 
+http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/
+
+
 ** From source
 
 You will need:
diff --git a/guides/users/_html/algo/Algo/.dune-keep b/guides/users/_html/algo/Algo/.dune-keep
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/algo/Algo/index.html b/guides/users/_html/algo/Algo/index.html
deleted file mode 100644
index 5c03aa2c..00000000
--- a/guides/users/_html/algo/Algo/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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
deleted file mode 100644
index cd47cf58..00000000
--- a/guides/users/_html/algo/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 2e55d491..00000000
--- a/guides/users/_html/highlight.pack.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! 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
deleted file mode 100644
index d0d52564..00000000
--- a/guides/users/_html/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!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
deleted file mode 100644
index c80edffa..00000000
--- a/guides/users/_html/odoc.css
+++ /dev/null
@@ -1,764 +0,0 @@
-@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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasa/Sasa/SasaRun/index.html b/guides/users/_html/sasa/Sasa/SasaRun/index.html
deleted file mode 100644
index 6172574d..00000000
--- a/guides/users/_html/sasa/Sasa/SasaRun/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e2b53dec..00000000
--- a/guides/users/_html/sasa/Sasa/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasa/Sasa__SasaRun/index.html b/guides/users/_html/sasa/Sasa__SasaRun/index.html
deleted file mode 100644
index 1407ed40..00000000
--- a/guides/users/_html/sasa/Sasa__SasaRun/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index c37ed617..00000000
--- a/guides/users/_html/sasa/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore/Demon/index.html b/guides/users/_html/sasacore/Sasacore/Demon/index.html
deleted file mode 100644
index 6bcfeae1..00000000
--- a/guides/users/_html/sasacore/Sasacore/Demon/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 8bae4fb2..00000000
--- a/guides/users/_html/sasacore/Sasacore/Diameter/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 9a00fc52..00000000
--- a/guides/users/_html/sasacore/Sasacore/Env/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 951531e7..00000000
--- a/guides/users/_html/sasacore/Sasacore/GenLutin/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 0520c00a..00000000
--- a/guides/users/_html/sasacore/Sasacore/GenOracle/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 86f15bee..00000000
--- a/guides/users/_html/sasacore/Sasacore/GenRegister/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index cd81ac59..00000000
--- a/guides/users/_html/sasacore/Sasacore/Main/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 78b6c7d5..00000000
--- a/guides/users/_html/sasacore/Sasacore/Process/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 3f0cd98e..00000000
--- a/guides/users/_html/sasacore/Sasacore/Register/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 4a96a6ae..00000000
--- a/guides/users/_html/sasacore/Sasacore/RifRead/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 6b22c1d8..00000000
--- a/guides/users/_html/sasacore/Sasacore/SasArg/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e3fac285..00000000
--- a/guides/users/_html/sasacore/Sasacore/SasaState/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index ab237b19..00000000
--- a/guides/users/_html/sasacore/Sasacore/SasaVersion/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index 92ba5492..00000000
--- a/guides/users/_html/sasacore/Sasacore/StringOf/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index c45d8a3f..00000000
--- a/guides/users/_html/sasacore/Sasacore/Topology/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index c5f3d716..00000000
--- a/guides/users/_html/sasacore/Sasacore/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Demon/index.html b/guides/users/_html/sasacore/Sasacore__Demon/index.html
deleted file mode 100644
index ac1bb831..00000000
--- a/guides/users/_html/sasacore/Sasacore__Demon/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Diameter/index.html b/guides/users/_html/sasacore/Sasacore__Diameter/index.html
deleted file mode 100644
index e900524b..00000000
--- a/guides/users/_html/sasacore/Sasacore__Diameter/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Env/index.html b/guides/users/_html/sasacore/Sasacore__Env/index.html
deleted file mode 100644
index f809523d..00000000
--- a/guides/users/_html/sasacore/Sasacore__Env/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__GenLutin/index.html b/guides/users/_html/sasacore/Sasacore__GenLutin/index.html
deleted file mode 100644
index 7c2a1f72..00000000
--- a/guides/users/_html/sasacore/Sasacore__GenLutin/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__GenOracle/index.html b/guides/users/_html/sasacore/Sasacore__GenOracle/index.html
deleted file mode 100644
index f1dcf7b1..00000000
--- a/guides/users/_html/sasacore/Sasacore__GenOracle/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__GenRegister/index.html b/guides/users/_html/sasacore/Sasacore__GenRegister/index.html
deleted file mode 100644
index ab7d151c..00000000
--- a/guides/users/_html/sasacore/Sasacore__GenRegister/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Main/index.html b/guides/users/_html/sasacore/Sasacore__Main/index.html
deleted file mode 100644
index 9c33d0ad..00000000
--- a/guides/users/_html/sasacore/Sasacore__Main/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Process/index.html b/guides/users/_html/sasacore/Sasacore__Process/index.html
deleted file mode 100644
index 7625a6da..00000000
--- a/guides/users/_html/sasacore/Sasacore__Process/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Register/index.html b/guides/users/_html/sasacore/Sasacore__Register/index.html
deleted file mode 100644
index c409c496..00000000
--- a/guides/users/_html/sasacore/Sasacore__Register/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__RifRead/index.html b/guides/users/_html/sasacore/Sasacore__RifRead/index.html
deleted file mode 100644
index f04b837d..00000000
--- a/guides/users/_html/sasacore/Sasacore__RifRead/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__SasArg/index.html b/guides/users/_html/sasacore/Sasacore__SasArg/index.html
deleted file mode 100644
index 7fb440c9..00000000
--- a/guides/users/_html/sasacore/Sasacore__SasArg/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__SasaState/index.html b/guides/users/_html/sasacore/Sasacore__SasaState/index.html
deleted file mode 100644
index ffb952dd..00000000
--- a/guides/users/_html/sasacore/Sasacore__SasaState/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html b/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
deleted file mode 100644
index 18a92c23..00000000
--- a/guides/users/_html/sasacore/Sasacore__SasaVersion/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__StringOf/index.html b/guides/users/_html/sasacore/Sasacore__StringOf/index.html
deleted file mode 100644
index 278b03c5..00000000
--- a/guides/users/_html/sasacore/Sasacore__StringOf/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index e69de29b..00000000
diff --git a/guides/users/_html/sasacore/Sasacore__Topology/index.html b/guides/users/_html/sasacore/Sasacore__Topology/index.html
deleted file mode 100644
index 7eaa2bc8..00000000
--- a/guides/users/_html/sasacore/Sasacore__Topology/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
deleted file mode 100644
index ec50fcff..00000000
--- a/guides/users/_html/sasacore/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!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
diff --git a/guides/users/sasabatch.fig b/guides/users/sasabatch.fig
new file mode 100644
index 00000000..0b82a523
--- /dev/null
+++ b/guides/users/sasabatch.fig
@@ -0,0 +1,199 @@
+#FIG 3.2  Produced by xfig version 3.2.6a
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+0 32 #c6b797
+0 33 #eff8ff
+0 34 #dccba6
+0 35 #404040
+0 36 #808080
+0 37 #c0c0c0
+0 38 #e0e0e0
+0 39 #8e8f8e
+0 40 #aaaaaa
+0 41 #555555
+0 42 #c7c3c7
+0 43 #565151
+0 44 #8e8e8e
+0 45 #d7d7d7
+0 46 #85807d
+0 47 #d2d2d2
+0 48 #3a3a3a
+0 49 #4573aa
+0 50 #aeaeae
+0 51 #7b79a5
+0 52 #444444
+0 53 #73758c
+0 54 #f7f7f7
+0 55 #414541
+0 56 #635dce
+0 57 #bebebe
+0 58 #515151
+0 59 #e7e3e7
+0 60 #000049
+0 61 #797979
+0 62 #303430
+0 63 #414141
+0 64 #c7b696
+0 65 #dd9d93
+0 66 #f1ece0
+0 67 #c3c3c3
+0 68 #e2c8a8
+0 69 #e1e1e1
+0 70 #ededed
+0 71 #da7a1a
+0 72 #f1e41a
+0 73 #887dc2
+0 74 #b0a193
+0 75 #837cdd
+0 76 #d6d6d6
+0 77 #8c8ca5
+0 78 #4a4a4a
+0 79 #8c6b6b
+0 80 #5a5a5a
+0 81 #636363
+0 82 #b79b73
+0 83 #4193ff
+0 84 #bf703b
+0 85 #db7700
+0 86 #dab800
+0 87 #006400
+0 88 #5a6b3b
+0 89 #d3d3d3
+0 90 #8e8ea4
+0 91 #f3b95d
+0 92 #89996b
+0 93 #646464
+0 94 #b7e6ff
+0 95 #86c0ec
+0 96 #bdbdbd
+0 97 #d39552
+0 98 #98d2fe
+0 99 #616161
+0 100 #aeb2ae
+0 101 #717171
+0 102 #ff9a00
+0 103 #8c9c6b
+0 104 #f76b00
+0 105 #5a6b39
+0 106 #8c9c6b
+0 107 #8c9c7b
+0 108 #184a18
+0 109 #adadad
+0 110 #f7bd5a
+0 111 #636b9c
+0 112 #de0000
+0 113 #adadad
+0 114 #f7bd5a
+0 115 #adadad
+0 116 #f7bd5a
+0 117 #636b9c
+0 118 #526b29
+0 119 #949494
+0 120 #006300
+0 121 #00634a
+0 122 #7b844a
+0 123 #e7bd7b
+0 124 #a5b5c6
+0 125 #6b6b94
+0 126 #846b6b
+0 127 #529c4a
+0 128 #d6e7e7
+0 129 #526363
+0 130 #186b4a
+0 131 #9ca5b5
+0 132 #ff9400
+0 133 #ff9400
+0 134 #00634a
+0 135 #7b844a
+0 136 #63737b
+0 137 #e7bd7b
+0 138 #184a18
+0 139 #f7bd5a
+0 140 #000000
+0 141 #f73829
+0 142 #000000
+0 143 #ffff52
+0 144 #52794a
+0 145 #639a5a
+0 146 #c66142
+0 147 #e76942
+0 148 #ff7952
+0 149 #dedede
+0 150 #f3eed3
+0 151 #f5ae5d
+0 152 #95ce99
+0 153 #b5157d
+0 154 #eeeeee
+0 155 #848484
+0 156 #7b7b7b
+0 157 #005a00
+0 158 #e77373
+0 159 #ffcb31
+0 160 #29794a
+0 161 #de2821
+0 162 #2159c6
+0 163 #f8f8f8
+0 164 #e6e6e6
+0 165 #21845a
+6 6322 4138 7356 4702
+1 2 0 1 0 7 100 0 20 4.000 1 0.0000 6839 4420 517 282 6322 4138 7357 4703
+4 0 0 100 0 16 12 0.0000 4 150 525 6547 4374 ocaml\001
+4 0 0 50 -1 0 12 0.0000 4 165 390 6623 4568 [bin]\001
+-6
+6 3309 3749 5649 5189
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 6
+	 3336 3793 3336 5150 5622 5150 5622 4007 5408 3793 3336 3793
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 4
+	 5408 3793 5408 4007 5622 4007 5408 3793
+-6
+6 3356 5582 5696 7022
+6 3356 5582 5696 7022
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 6
+	 3383 5626 3383 6983 5669 6983 5669 5840 5455 5626 3383 5626
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 4
+	 5455 5626 5455 5840 5669 5840 5455 5626
+-6
+4 0 0 100 0 16 12 0.0000 4 195 1560 3716 6212 Network Topology\001
+4 0 0 50 -1 0 12 0.0000 4 165 750 4166 6662 [.dot file]\001
+-6
+1 2 0 1 0 31 100 0 20 0.000 1 0.0000 9247 5692 697 382 8550 5692 9944 5692
+2 1 0 2 0 7 101 -1 20 0.000 0 0 -1 0 1 2
+	8 0 2.10 75.00 135.00
+	 5683 6375 8595 5850
+2 1 0 2 0 7 101 -1 20 0.000 0 0 7 0 1 2
+	8 0 2.10 75.00 135.00
+	 9135 4815 9135 5310
+2 1 0 2 0 7 101 -1 20 0.000 0 0 7 1 0 2
+	1 1 2.10 75.00 135.00
+	 9945 5670 10980 5670
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 6
+	 10962 5039 10962 6396 13248 6396 13248 5253 13034 5039 10962 5039
+2 3 0 1 0 7 101 0 20 4.000 0 0 7 0 0 4
+	 13034 5039 13034 5253 13248 5253 13034 5039
+2 4 0 1 0 7 101 -1 20 0.000 0 0 7 0 0 5
+	 9903 4809 9903 3969 8301 3969 8301 4809 9903 4809
+2 1 0 2 0 7 101 -1 20 0.000 0 0 7 1 0 2
+	1 1 2.10 75.00 135.00
+	 7356 4413 8303 4416
+2 1 0 2 0 7 101 -1 20 0.000 0 0 -1 0 1 2
+	8 0 2.10 75.00 135.00
+	 5645 4435 6320 4435
+4 0 0 101 -1 20 12 0.0000 4 180 720 10080 5580 generates\001
+4 0 0 50 -1 0 12 0.0000 4 165 660 11790 6120 [.rif file]\001
+4 0 0 50 -1 0 12 0.0000 4 165 390 9045 5895 [bin]\001
+4 0 0 100 0 16 12 0.0000 4 105 420 9045 5580 sasa\001
+4 0 0 101 -1 20 12 0.0000 4 135 375 9229 5148 loads\001
+4 0 0 101 -1 20 12 0.0000 4 180 720 7470 4323 generates\001
+4 0 0 101 -1 20 12 0.0000 4 135 405 5847 4356 reads\001
+4 0 0 101 -1 20 12 0.0000 4 135 405 7545 5865 reads\001
+4 0 0 100 0 16 12 0.0000 4 150 1380 11412 5568 Simulation Data\001
+4 0 0 100 0 16 12 0.0000 4 195 1410 8390 4311 Dynamic Library\001
+4 0 0 50 -1 0 12 0.0000 4 165 975 8628 4676 [.cmxs files]\001
+4 0 0 50 -1 0 12 0.0000 4 165 765 4136 4777 [.ml files]\001
+4 0 0 100 0 16 12 0.0000 4 195 825 4098 4366 Algorithm\001
diff --git a/guides/users/sasabatch.pdf b/guides/users/sasabatch.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..14091ddae6ce3d68884ebf6d8d730780261ff7c5
GIT binary patch
literal 10840
zcmb_i2|Scv_m3h?$d+Bk7GXRygE1qNZOFbAWgTON$ugQ5Yb0B?EKyXn5T%q9B3p!z
zh>)xylI#*n@qb3kuloJo_y7L?pLcx5+~?eL&pr2?d%pMFdmkw?9V`r?paPL<m`coo
zC_~{;vhz`hni^n4@N%WOK~W&Z0>F|yXaourz<S_l1RVmN>_X7cfKX`^0?rfSpD}H1
zOqNh#t$cpB?O6HAgTZEw4ZOCC7Cf)wLwCjQs^D%oHW?$-r(3pOm6%L?vdc79Twfth
ze5)S0Q7<-2|Gl})&B&2QpZk1UO0I;x5*C83%odQsig+scup~g6Yv82Ybi5UIO3-+V
zH*>Uk^I86aUVW9Msf*>yY)wv$==n|;zPcNtub;jOrYbU(??PLqFH|@1x!prd5-5k_
zSVVm!-+k0i%GONXxw$}~`Xta>u_NqrW3qan+<UHThDAb2iY<E%CcN0b_-Y8R5lF7k
zioU}Yr97IItN{^<KfN2t7b$a(Ej>fh@&R{ckx9~S65H{+_RtCaqy>w<Bmy))yg)-d
z@_wb`U|iJh16hp+wsJ+WZn+bt7rL3`Gor|fHQd?LX8d9Psg0kpx@++J;b3+iBdJ`q
z%3YHl9C!Q<jX<xaW*1`)1SQF`HnQtyhYcCF+BII~*xw9YYI5Du6xkt2xNa^?^C+-5
zXvk#lV2F3;x$&}0U<R{lDLUIM;t#vu^Uho;Mm;fGviq`^PEuv-eOV?E%F{RcpB65O
zDKv6S8Qs?3n(>IQJz4S!<gVuYyHGA!DU|i1{4Lg5*Rz!<|7k1s?#VL)r-MWJ_3Vo8
z$poQNc<W9<sa^9=7~tI}5A7)kfXckFNDn2v;2(U-GV2oSD}g-faIB^>ZO_{WPCRC#
zE*AN2CY&xem(bkmP~IFX>>}S;(~QRjMKMAaeT$nihjyoJlRbG~^S0wBc@}Y&z&M`)
zR5nN1(AF(_cg>xQ1UWi|;(7-x*_)lYSa;@{Ok=O2)#tj@*?1?*TGBqR52<lyjK@|G
zxy=@NMN*orux3t04P80H@J0hAmFb;<7t8mv1QV|t2=JgM;3L)N>tHTNc&zJ-PMtp?
zZ)q8r+LfT967A4a?n`<h=oq(nVg4~L)=5DpEoi1(J?q*cA^QXRaBXOPMAF`S9muz(
z;#GX&3fSuxgn+g+EkT--OxE!m-cOPn;;OEi-1b#Ot<@(Ec5yXZXO-Pd!BiZtV;EbX
zH0_I-P4kx@Qkd_Li>;_|e=5Pa$J5R$1(6ww4tjslFa2Zf=K|F`iLd2D$h`cf6<N?W
z)A%QCg%zHI(@S}M3kM|x7?DB>yAuy5J#u*Oz6gXPh@mR`qg!3h)Ru8MEmjX~cMgp)
zFy6OTpq3ce<U7*;0-2b<dF1rD&<M>V3xJo>%uU`WZqE*pY)aTDasEpaoWitGQl=~a
z%PwpmtNu_-%4@!J4CSf9se@SiTI{SY(0;r}(P*jN0rldpUphgiW~^in*EtudX><1g
zJ8hg*K-;b8#N0coxOWYuvBzp~f+n1I<ExdG*xZZQonL>H!6m0&#-1vh@!Wq+-2e1&
z<g3YLyf-=1QM>AMn?z-zZb(@a<*MV@lQqlC8p`z-{PnP;W_~Z#SU&5E!R7CLa}0)t
z-Oj9UpAi)+wPQKqaOLt+)V?~(`uK^G*Fm@gamnLneD(8l+tv@yl&a=a5SfyQda?R2
zYJ1L?d1Bw!V%tj(R=3XMe2(mN|B|HhM#m0U%D*}{hU@aQo$pxsfb(g5z<bJ(fxWmn
zi-&t>&8%<wSKRTkS(`28%6#QMG3mXGIja1&?}zVRDcSL8XL-VcA|W$i*TJ%&)RNVd
z(!QCOhoeQinD1~eCvH6_OL;XIFCNY7eA6Etw!Yiw_8h#rm|xp4+A287b9otIDV)c%
z??DFd_R}bSEu)>2zOGsiH-&htG0gi^o+Nm=e1}S~M2A;8sM3ECiU>u>cbd{)&}$Xo
zO#sYrt^~lC;6lP_k^P~zaIhMML_v{oMSBQXNg;UApo(;Gh5!}>D%ppECs0AyHlvX7
zmIRtD00KJ{up;==Kz3b!nw}*Mgl;H;-VN9UO9q=G=x}cV0g)Wg2A@HRROnCAceUtU
zd|MGfX`o)v4aKNXz>wrZh1x>C$+L%o5`5?)>C(P8Mf_~~y`?sehVvl1{t)q9dt(9(
z=K|J15ttw9d>5edyMVuj0Rc?SjG+h(jUPSzVmu2K2)&)fFM9m4s#%~RXnHMRfq+90
zbfeOXNC*P?dmB2__k~akM<vkB1(=xY+nDOe=@UGB2{aNO2Q$G@C}h74Tj~&~cnZmz
zMy5bFMzJyCjT+F_Bnp+L?S=!ZQ~)E~_c8*30<1|cG&ia(R7sgWBj6jq-^xEIbSeT(
zSB_2rzYsbFsiFu~0<}jX(RA;6f$K5J%M}#orRhZ_{d~6cai-Cy65Vg0v3~l6F5=I@
z8E79d)iVBTaDR>pLHDM`KMzY0`OC17h#$j(AXVsQ{5O9agZcOMC=}hBaHtBBZiHX|
zlsAmFLH{m?&WqYm^jE&`Wsry7V&e;^)4sL;K|^lHR|ae7CA6aA4{pdeK1Di(UJH)t
z8|9luAnpI-0{US7bb<LH6D=EaIV+MUfeN!Ad*ZzQ=7f!q`A?hx|H}!=|6q)thD6e9
z{{uJtI~o6~J>6t*=(qphc<2UHQc~J5B>ne$-G))=J<yG-LN_qT2Yxs7qVp)CF+X`W
zYW^Q4r-$Wti*Mj7J*5AN+6_ya;5-TcHp;a?C<c)jhD3tnP*jGhAkg;ooY<8LRYXDn
zO)8#_${-a4RGhayf#mA;{gK`iy^h`#0vrHwkc8Lta`hm9)(0$U1kXcIlrjV`CQ+$i
zByZpXJ-Q))&37rvigckMh=AZO1K<D`fB?7x9)K4>1}Fd(pzYZh0+^^16rqTXto@gW
z|FPhJ3&gin{?|+%RNz;j(EgG7Bj9KdHGU@fmy$h=YzaIKvpL?gI}HW`D>WJ2Cr_6)
zoi{pW+bA57P>ggqA`s4SvG^LEkOPZs_uXtK3<#M{ludXS<aA>W@k6zgETv<I{0}r3
z-pg@k>#53ZulrOZAD|GRG|y|?@A~MHnrSO${q_2nWAdty+G9c2EL`0>mER>EeF0JC
zjcXDN2#PU${BTr8;qa!U3zoM@_)=pnRu-oH{9nx}v~+%7&xi*%GI5)CSI^s%GhSOP
z5GP)Cc6w4$dc4}LMafB($yE~C*NdCizMh%x=$g!nzt2<U)+u20_Q<7snP!f8>W2Zj
zm;952b@}zX>+8mKaQT;R_d8YGZqd4!S>+yE*&uv5<Z37db{_k#*Fg%<mxbcqHpjhE
zR}(4GF*m=SE2WuJ&FCqf&sAV|Vg)U?=6hf`>PQHqI^+!|H8W~w$o&&&Y}*Hpb!Rd7
zczd>iS=$Z_S8^1uV`|%k>{Vsa=4&egEn;3&7Eu;0J+n=wR0-DD=Q@mMV|??o`1!Zv
zt#PdVOnyWy#xpNkD~+6jc5r2_EOZwZ%07ngimie~=7{^J@Zkx4hwr8FrR={^t6|de
zMdyL954tt1c0ak3U|BS)mweflPsR9T*WSWG6Nkr3*EyDhSk`F*sjEzOJbcYX>W7|t
zFm<L@RPdeCzNnkGm`SL4ufcYUtC@D{OUA_-r*g?O@6<B+N}_4c*@@%(HTz3e{Bwx%
zwGu54FVA{aF=DwN3D2yz?sc=kNQt|-6Kri1q@hc9`m9<+oEaa&brUQ)F&*zXFO1!+
zI^Mo5!&<7She-irBRy7_bgDIVM>PzxrnO+A%*4~ID}RGMn#?qeIPpw*g(nJ;X8l>+
zVLyyjsH;rTmm0-W-{V(ebxSjFWT`1@EA`59%ix)|Pe=KVQ`Bw>RlN48*KO~!vu7Wo
znJw#=-LD<o)|-5>)wj?BePGQF{xR(S?KRJo(X%&ODEVizMCJrlt7W#wjYYMD`$>B(
zwfGtCS`2#kembWA?j9?S0}Ric>c4QNe~r!A5}09V+kvEviY>;eCPK{a_qV(|SVWF|
zBqNps>u|~@dtZLKd*Zqj<IPfuXHQ*w+)_p^mAp66pBPrnyVsK>+1($tZSDeMcE^j4
z%5Zmq8J0J5oc%3Dw`3D?Lz&+V#9zq}ber6_PrHU`q+fJ4!FKo2pq<*Q43Vg*VZ5Z?
zg&H22&jTf!@ckA_+jE{pIzC$ZTrI<2R4AQ)5$Lj)iE)BbH)%BMA-KkIm&0%9zkRU+
zms{dmBpV+5Ec8Bmd`VYkR4)2tdx}K&BY`AT^3eX{#)VD3R%E%&TSF(X&8$+=W#`n3
zMblS>^jiCwmuot!+pJzsH**h(=?a-?Ecd1qy;Qxt)6DeoW3}ph!u^%Aj+-W;6GKQ}
zBO2enedUl#OIzj|wh6IYQO|6f<$8jD_4@EQk3T)@_&xjGSfT$DDE`Ns<R=Crz_kK}
zgsLbZ{t1JX5WitC{qZjhrUUdpVlV=s^d|_b{0739UqDzB&;g796TlL%0s+|>z;8gZ
z8$bfwL16aWfM)LvaHe|W@C1Mc_yB%Dz;8hPXR7*3%KLu+Y7A24SD-%UZe?lB+b}CN
zI#@1`9ShWDN@0}^=a1yH3NqJBirT+Zhskk_EpiKlQ@8%moy5TXu2xtb_iDcAgTk<`
zu`Qf84|#G-SQs5Wz(d<@vR5$yUvBzxTOKuR`q}&L!;>dU#|Mj-dsahEtcKV;8HmRn
z_SHA?#T|a2u}^WJ7*ahbzjUlt1F1txs7#<>c8%9ScL*$a@0*d3pO1LUS#XU1wm@s6
zjW4kdwSG2xEM>RpOL-Yt1)%A9OGn-frmqS*m(26mJ|(Im%a!(7-&nc^5PBkY>w7&e
zX&@Za@8w%v%E*`d>NvEX7K=N7Z@4ULq%qmzYuU#Mf%&luF+C3hJ~bI`hZG+@HBT7C
z@hTdgk1;|Po;`p|MaZ3JAu=dN9>9xV*iRJWuB}5JGh$J^6ywTuUgs2{;wJL+Ud8mD
z#-e)~9)ib{zBa)+Ju7WfJo2YbPGw9LuLdnME(<M0E?inDw1byK^wo$A3uka&<Vo1?
za`GInu#3|@_So!Q7Lw~KdhDu2l#!Y<7a8t+5zP>Y9rdmjKhq-YU(NlH(NT{%V-fm%
zsK=ANu*M-TZH1(gpOWE&avRp|NE8_`-D`_{b8b{x?$C$eV<IOE5N^8+y7Ch^J_iWi
zRl&z!@SF*s3`U}3(xpa3rwqjpSgre?-?H}Hp*AQweJ$3_>KyJxTml>!%j(F*i&k!8
z6_0j2KP_v`wVl17O}y7$*KYCym+`cYbk7ivAEw@>H*(9|#8%$7`$uWs60+y`d18_w
z_qig-{^s0IVs^jc2flu6?s3@?Aa~5Stth(z&Uz|%e&vF}aHD4BiV3j#EFpO6zU#Fi
z;jQz~tx~t6kR$8{$yde4(W@s*B4(?DcI{S!Kw~6_r#B%rb57o{y25tq67%!bA|+sc
z>FbqxOp|q(tL@gg@<{0leyfA`Dk*t>kf$;>7*h_u^?2FB)p(@!s*~*%)&^W;(fGkd
zV<gWu9fXR8(;-7%*6v&KLSBc20c{N4qGK@5CdJ;;@p`{S`8D5hCb9E<dZ&D0p~s3=
z+ff~c&ArbXu2{8Tc!PDU6BSM)PMo+t=}_oJI%mOP{CO+-YFx1MxtbG4UenHV80^-;
zhD=*g_q3>5ew9A>h-~KjL3C=(`#Dx})ay>wRmKI{+~Th6vd<rs4&$!)oJdS7Wk`#E
z?30;&j_+=6$~7(L4q)J*vqtB{^QiO5>p46UEsg%Y{*KW@_Ako94hMPi7}fhM?CJNv
zL1cW{C{20fbF_0&Drs|kp~+g<@tDma-po(8`qgO?ALQ&fdK($^QpR)DpRYG&%fR(s
zOWD$vzH7EIJgKD$a@L2BR2*ELr_?-|UVm>I&nv0+`L@i#;)K^JwpCJrLIU?623gmn
z)-7+hzUHRc@u_vkrS8O%*A{DHV`r;Gg2UEqx(XbjCpci4S<^y>i=QF|(qANTqz%x%
zVyU$s1iK2g^_G=8S;FUF%0pYWN0_hOZo^L4cFnXIZ0@~$yu!_>f@Z&5Ep+zz9z{+L
z)Ei}Un2mV_+K?$;ZRLz=(;9Pmgd<*WYhHJa(5nVtfrt(d%dJJ|;xse{!rcB*6>HIh
z?I;xIz9fiDHBgQZml>ZAYm3cTh*eX%&KPWVu*&rObI}1`nzg!Wyx@+Pq8Ojs57zXz
zTcLTbtv6e9N9JvEFeuLtUYYp(#10>X-y-!)CAu_)1v&drFbG$tq7J`*L^&nz{3owK
zNiN2;rE2fFqa|N*Rw-DWk3*;Vh0U3l%=aByY8J+mDr-#kjthrQQywvR?wc8(Gjo0P
zMOg(s$I-zgM&z}w<=v(}I6vOP_u)z_DP5=JW4e}$WJbikWu}n10$&Dey^=1#?wn9~
zYNoPutis)WAKEXddukm_D_UQ*_4CyCr^xxn8Y*N>p5n|;$Yslz4gWv{+PAJ+Mh?EM
zpPjva*DLztZfCfF)?4OoSlN9epJP7m2lkf5<ty3E@WcjWwI0#XK;9T`o_;FOAG(Pu
z?%jC0N;M#VEcxEc2&eP=JL>11#r7B{eYUM_;up_n*>T}=?`E#k9>I%NALIBe*k5_c
z6>A+{hB6&G8lfQMfi4a%)C|a~DBCi|LY^wvxAvrNPWiJg$pBp|ch$vPc<obfVF#~4
zd?!0Y(HAq<OXs*9Rf}d6gFS_dNx{Gg60Usud~tJuh-k9e<V<aPE1{QYx4Sm?l-OEf
z<2#ad$|E^*%_)Q96RsE;66;ghW_i0Ca<-K|h>PK=BF*l5G*)XqJ(cT}lEoi=i6TBw
zC>jf8{g`=|%{o1vFWt!M;&{`gwHr<1Z{7`YGqL4r`@136M7DG+G@UbGVh$V)0=7r(
zxw=oaLh9AvWW~Pi8iI2V%K1e+n7CM{jE~Ab%G8P|JL{jex`fa<vwgu@IABLrI6C@V
z9>zk;U^INX9Qyu#(|+yEM0Pj(uNq&vm@KCPE9yQx>PJ*o_|LY-_u2ckx;Dr(otzAJ
z4=BgTy)3SKv%<H>GbQUqGw+Q(+xNaO)sfI-jn&E<bQA*AvXfQzEH)gohe?XaqMrrt
zty@ba+>MGV?#0X0e%TtY!0Gl6X%Brj{GX&f|Kc3rN8*D3Pcc+fl%XiJ;*Z1!JV!*p
z!OZ3R1{AFMHTl_i{F(fK&HrWc1J?Y$162lhr$2U}N+|H*=MK~vaHin!?gW|#fk^vN
zrqDOMU>-!@oD#u2=w}v0ppeKezokO{zokJNXL7&nSARKv`#+>XD(K(RAS-t>OIJaS
z2JMC54ht)|{)3CPrR6@hx3l8nJb;%BhA=Cp(cLUz&Mc#hVw_?OT>2+R4IjfKhrQWK
zHZfSz`fha*?if@~mEQOA>3YyUK`WuTx^`DS^E=<sI>q33ef79&mFR2F%gX_;mjgtT
zSq|$aNeTq&UzfQVsBE7jW1(=x5$7n`!<P3do@c~4Eilb@yUhWaP^~>Yg2*BUrHD7x
zM?CD~P4mUH^pP4;eP0WoEl#E3ogYZvl0DjqB;DK{s5iA#`flXnyY(s^>2p?1*-zi4
zt+X_8J-nr5p4B;(wkNjuV7uJ0YaNE!M*_}#4w*f%e|3FsTNsP=t<HlNE$bT+(lU~o
zcG_P1kib#LFakZJDJ+hRu@gU|FTTV@=5DGhuRC6M!dY39>n=B$i!+E2&7oyzx0^%>
z`?4(i;g;^v9m;&-+u9@hcSdYe*jB}%##;sbBIO%#?~Ys2&R{JK$VfJ{OEkt%0GF>l
zuE`MXTHP>SF+<t{Bs4C!+ifeT=)1bNAM$Ypy_vm4sQ+agNB7D4$8yIL8r?0ErFMii
zT@E%NHolB=*St|nqKdtvzTeT2!Dh2V@IBR5OtkGC-fyKb=I*iQ-8{Ypdb<6erx6(u
zeRC~D;e^`t1;FS{u4i1oYMFx+q_x3Y2!pHHOBUIOpe#w=x!3`_`ns0<{B^0^wpvsF
zg>vSmRn1%KT<QG7dwuN_3A>zOb0OYM-NPQJGRf0}15=vb5fdMbuLz&rd9x_y;o=p|
zLUnDqJI%SAllyl(?~EVHwY1i!vO6`Q(k<E4Ebq1V!5e3U+1Ed^WfT->j0mrZRKbqc
z2r)6^sFu_`feUBaz1+HKq~1J^Aa(V<h}w{;W4nUyOwoKCcP7VeZ$5}2r?qNy>C^0P
z>%Hn3AdYX=9W71jLwcOz9Dnu(4+{r0N&`HHExHy%H??q<SOtIPR8m;$>RkDhmqO@^
z`lNK@G}R;biXDqZX<Q3eWkhB{--ugkcD<a-(<9+c70<G}h{tS($feDXSDLPU;B(b`
zdtK_If@e;?d0d_J;u{rG(A(Le!?hu;N&d22qPPf()qvc3v~3hMtEw(@^BeAGMfT6U
z_bxiUc;Sil$<5TvOI1l1I{H2@z2E%vFg7t~y7TN!J|BrE9SBl5tDn*AmXzF*6S5&^
zRuAw<k8<(UV=WKo*(8QM-IS9#(9ttIA&@0H(iJk2)%R?P=)!eP(9-Y%L3hWArBCUj
zm!SD;v5)U6REiyaz}J0H>1|isIb%kVcLf+TzA)EI@w$tCmHT(euL|p_*XPY8&R-mO
z?J;=e&_!EV69hvAk5Pn_FAFBGj19V+Wx>b-Qex%Rdv|Zc?+~25AGVFMn8;JUts!<{
z$sq3qXMgHvmhg}h_vZqt@$wVb_ZHbdT{{ABC9<)xI`$kFTk|$4E;`=|vy!^j4V4Zo
z-Dx@Ax@5v6`KESrRnw=PGt{ZXpwSg>JCW>Hr`)pw^8|{aHofmuO$$r>&x}pFoC+?k
zXe{%XZj2dPHNhiV>chA~A}9I7gkL?~R%+Z|_Iw2HL-3t@%zBBj_sINP3<KYXn=BWM
z*s$83J~`$wPC;)aDww0}zD%u+C4MM;H+Fl*DMvJXQ<GOsxlTZNqO7Hvs;X*c#SumK
z1zWHELH4f}ZQn%n-enOMc#3@}^XR%xs-xYR2rj7f!*cF$@@xx!Wb?M=O=Ql8yPj2q
zh}i2%$eIcVq3qJXls4+Eh4T%vIr#S<bqM&dIi=7c(YyzkxI+_KU1@qhE6UE3Afn%r
zFO!=sxBX)F%WfyFPkjBJnPaePVx%6p8mqoHzumiCbtT96hooA<9ghpH4NU-HlM*wF
zSZ4`|{%$YIk@ZaoW*ECypIGQ+;9}p*10RX`#-|?dLkXtW5D#}^)t-nM-phi-V{;ad
z2B$d8)<rzY%eMAzdc=G)Q{TfW;wHOx$w!C_pJtr8p5No7I+d)=r5;{FfJ}&=y~bC2
zsRH85uF7u4+EiwL19R$V3e?2jfydOKg@x*&n)Xq??gqnsKOaBe1on_ueu6cL6*<RA
zCJgcuSnVg2Q-aJcSIZolVbOgxqfu*X+gTi@@4nKdS~y|cP&pSqnaVO-^)~mhv8qZu
zso%8E?@NbD2Sv66DWz;pcyl3l)4|SJgV1Gv(Uy^5CHEe^f#*TAXE&R#Jp{2K_wL?^
zl_fOmd2v3t?r?Dk_nyx8l(F1E=c67jlv@;|8tcb3eo1j6_LPKV$AKGj{V$HR%SeAc
zvCB};kMY8tgnP_G7QzLe?DI)NUxpP=ywOmuy~B6&9*uN4<<^yx0`7@}yCYvWFt|Ug
zF(XFeeAGP-sVKbTY}HsE`%swB))wWN32@YfY{Dq`RsKWj@#o?9k2|-&j(%;7jeef{
zDk>}fJWf#C=MNrUfa^TenczzDQkR}Be<Tehxu{E9D;vX&y|oE$B>g}N!7|Xq3Lof>
z$GAxE(}1Y$!+{r_1eib08%ErCcZ3QBPr%j1wJnUW;&cXoRew)!Pw?sw>hI~{MOF1z
zm)>Zi3YO_)KpMKiLUUJ_wlOw?(#T{FcM=VXRKO@8U<gHdD3Jml*ZYwv?ofmRN*WYN
zaUrT&fVZCC1cFcM(rz@Gw<-Ym`S~gMDJqaDt^fjq!2ob1fJDMT4j47Si-z-uc~K?6
z{x%dL+5BwgMOE0)NdZsx1V}ajLIDo^=;+7Q0g3DdrFV>TCi~FTrG0!zE~+RLQH4lE
zJHwC|oHGo8AS%P);0H!jbXJ19Ad$*M7vhiZynj*ixBkEiutP=A4q!<Yyw-K`!4oLz
z(t2h_P(3#?mG<qz5sFbjqNIWE!~bt-1^VWntpGaoyBX9#9#v!T;*l7j1KuoaAmIoM
z3;~BB&{hbfDqLAr2_**y3ve~y4^GheU{h`I-68N@qW_@jFPy(LB~z@xDWO3mxguQ%
zzR*Ji3YG2)MFpe+3iqwgjfUU()Bw7dezDJg+hRCxW8;5sGfz+Yq^9$!>X7k1p5T4Z
z0iFNLl=*La*#-YoVQ(Lb$3}d(fTx%q1iEfi(9sA`V;8(CkxcQ#fwLRu?G4^r;b@?t
z0dQ7IYp8*hG!nQ6(AbDRO%K|)f(MBnO{yL^FIRPGf0zq_i1YEFNo!DXRGc%8hIdl{
z{r1fz9wd!#g^k9*UjqNZVH+ec#6jNyKLJDo0{t(2{(FM{LQU}WTV2|Zj){Le2mj>`
z_(yol{8M!A0k>WBU;(X84;L97ReG!;;0QDV30K|-Gif+n8e{{*@qgj4qB~3GH#htc
zPo~KHb1?1s`JRP8g+K%^Wx*><I-Y&|fcKWl;8iFQ`kjVAA;H}n{R8#-P6Jhi|4D;`
z`%rLI`i&2cPy!G2|DeG^&Od1gMa<v$5GV||!Tv)Yntl`dI}NFV0pAw+g9cap8=n%A
z{!Yjrd`if_^?_1`gNOFN^C46e|JDaW1@$+YB3$Y3{VHMpHeM7O{x?1}3cM))*)NTP
z18;sQ;ES73z>*Y50DS}nEXZW=jU4dQ!2${#@FJ3-^ce@f{BuADYO99TLTPGYwJ}&M
z8k|KsD5MfnMH#ECtEr8J!%;{rjsKm)p8m2Am4>6xHYNrFjzps%Qc}96SjhhXVQ&2k

literal 0
HcmV?d00001

diff --git a/guides/users/sasabatch.png b/guides/users/sasabatch.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c09ab9d0cd43973690eb791c4c27329d2c4fb6b
GIT binary patch
literal 7183
zcmb`MWmHsA*Z41kfHTr94brKUDBYb(ND4|ycjr*jI1HWAEl7trlp-Y|9Rm_W!_Wx4
z^Q`}~*8Ac8`u}jx+P`z}+9%dNd+)Pvtd5p40fYtu004oiih>>hfLbsz@*xP*nzcaI
z0RSv$FE6k2-rB~}%hA)q-PVfV{@ptOP>D@Tv(@?ZhHCH-ErE)ZA(e~Pkx$`f3xyFI
zb52y1%WUWBC_2Wpf_Og02rDKlVo{l<v3yV@e-sxEqV$a51r4>kQRvFPab0<wdqFSV
zd7l|D=5pt;x$H4^<%-1=6Jh=RSAdmXd(Xnp#K+X+!w*(C<MZK&<5N%UmFW%=pr$XN
zeP!&b_901%{lAUY)=u{;u5eGFV9)x`u$uN8<mX=+L`nAuTSKFI(^bJ0Bjk37-=6yD
zH{R>i_1zJ(U<wF8$8}9hcpr7|arp7ISorB|`47iZZTHvy1{qALnavYmhV);j<gCj5
z><YoJj_%X`(U&OOl+`IXyAQF;I(llnM28TH2tE~lU}1Yau&bWLtaKkTW~*q?_17Pm
z^#GV|y8V%9fad{7=K8mxwo_XjED(5ka3u5~^WMKajey``C}>*-mlLF40QL+cd5R71
zp%eqCR<QzQiD!XJCR|n!)(=qITRcuc@hzj+!%7)GJ3zC5A_q5jRiYJC8?ms;PmP-t
zMywH@F7seH4Ci5ZJ@MlrS;1t|VnURR5;1K<6dlv^AGDBgxk5Wm@KC6GVXh9zYlyzA
zmk!zKBTvG1&=M54FnU}}82gqW2uhOiVA2xD2>Va;+*3U7$ROmIt8flvtLN&-95Y<B
zHiG_$;!;!s{}D3%hz>-|f{=lcm_ZX<Nr+gfW91(FFeoPGQr<~1D5gcpA27?kr@RV9
z6xeaHt5I3Ux+`53UY5U}GI;&065<7#4%<;&l27=oP(EfSXv|O((JX@=58Jl$q-+Pw
z5}g%VKGzjS|NgY?LyaF5W@$P6bTorWgU&{%l-h%OGO8{9ai7N9&3dD1d;`1>k!L+o
zmXlv_X4Upo_t^G`y-9Bvl>4}l@ve!jZ%s-0i3}4z44Cy1AWK~z`MPz!Tm~J6CH1%<
z(pPDZmM+CFRsVrx!+ThaNCLrbP<kjtjt5C&8GjU|!dgi@5^LUPwB~Jvb4-4W>y~pF
zrod+ZskN9`57%A*C5942F{21FHU2Oyq(=Ni{q6e8exiT!>LlP<Rz@DRHm{sxwo#K&
z^lb7h4<xTh3#lWj<IcGO6M~7u-nezPMu{0pXarXIHeJ3r);)d!&Vm*~qZNu2z9=;I
zX~x=f!z*RI3Y2uv6@%r56=cHDQnmGo%dfd#apy(mS?T3%fBT(^`IFq*UIS*Vs%gUT
z)AV6@HN2CF>pc@b0d7)C52t00P5e_SH7*smVwRF~l_oU;)e-eystan$YE)`1szmA`
zFv}saAAP^}(orx!mblbu_*v>msw7K*rnf;Nzb)5bIuA^o??QzEJ_EmiukeOwbXx>#
z$?ASrWmYWILslZHS>%5kJk$E3aa^<(PpbLTn9HC-1C=`QsFd|nuf|)0rvaHP)_&Hu
z8~7V9H?THvDBvIS)$-J`hsgB9xlKgWnlze}^@~f3H*4Wle~Qjk=<7xel60kum&>H;
zzE3<HpRM^_@oXg3=Gf>(HRYcS_BWGCLi&y7=x$1-xEhK&FQeUB(Q2n6`p;%HLCSc4
zo=wM2zo-^!g>(%C>Q7W&>wj)%#n@A+bKF5IgZ!ALfOg%h!?f<K;QG7ZTdCVITy|VA
zE@rO?Dx&zK{GyhkLTK%2j}s~r4(izJyiL2Dyk>T023`)N3@FDlW{hhrYI<j%W&{d~
z2vKA-XN_i5WJYF9XCySB9JRfl-9){ZUmOk0zVbs8QI=AoD9iZn8m5}!TO6Bn%zKT=
z+Da`)plKiVGxT%Q#<T3{9fGEe?LIq_*}QT=4;xI2BAS1DfBf7ZyPos6vq7kyY_@4(
z#DlNZq&0n?B!J^a?gk65G9q6-t@o8O#h~3FrE<!r*h!nRU!!)mhFiCzpCxb@@@M+U
z+A`W4-B4a^ZP%>^ZBibS-ej#_9lZzq2Y8Eve=6%VjTcZ@621(05_!H260amf&JezS
z{`vuu7ow-5X9wuQE5}p&bHA+*TPABav)Ypay>)~6Ym93vf2A4UGV0JU;ZG4QlKP6P
zh;oXS^H9_7F)mU|w2WFVefRpr%+8F%{ABmdZsW|#B2x#mWp88xEWwg?3|b_QEtf4%
z)hmJ6>D@&5Aw`fZQt2Tv_ksw~B3>)@3GN1AckUtXN@0hW^W4`mryB8^8h*o$yw97t
z&%JUyOq~`3JC*+(UzR{aq0I`WR(5M`tPXmCdM*uC?%pSFKWeGTetbI3a`v`TWtH1b
zBVyuDnODhVx^({?{z$yp<MqrxnbVnvjsF@)->bjpu)c7aSpI4|`8x64sCKq)_EmO(
zdzy#O-$WOrW5oi*iC|^EQPa!huKDM_)`IpP(_YNVu}Pk+x&87&E|z!)n&PBoOMB0K
zep-*ofQgfO$*Ha59B+!~i!}b;o31kVu`NUl!bA~QaYHe#|KFO4G|ipS@%qGac^5WY
zDVy@S<vH6v?VL;Fy+Vb8y%wqu>jInJdbk16(1Q1zq4SNisd+$*E9ZK0J))+lO0UM<
zV#7*bW7@UJ%*!Mpa3nA5s+S}>I&qf4zDB>CukzMc_<TF!Wm$Wof5P?2yNq|4gL%&{
zpP%0L-BncRHh(EUo;)sIN02RZ_-7AiWo2z-s~fMv<KdZ~m^lvb9Pd30tDHZW(SEMk
zCKpR{+vyi5{1%_%ExF_o6;ygweLa`uZ5&{UH}$1Le(Lcg*B)etMq<mowrruH<JPdt
zA}QZc$|6YiMDC{|qW@o<db&IRh?!QKL;&0MkiytN-k>3N-SXkt4t?vU|Nem2;I83~
zSWvpN(UMrm<l1JN$(~7Wi>8auY4&N$z0HZqO(;rckiJpe%xC1#o2d42r`UTT&yBp>
zuH6g23m2j~dIq{<TEC|>g4}_`$8WDK5xp}>f{c6;%TiGcJb^5C#s4b)O<u1w1-p=C
zK?LF#k}jmte&@d7(#I!BU!^HI(D|S8)3v!YMKozO^Yh(u+HS0t;(n%c2~gQQx`SOd
zZl-NkHHOUHO$$KCHM=Q0&96Hy6Na<bT@qH#hy6w+gVHaZExV7phHuCiXBn@ha07FU
ze;D`i8w5^VPu<R)p=b5hCMKlic$2$fBlwRnNfg*s<&6gb;A{Qo!3yz-e}d_x_f$0U
zeC1-}>0{|`4JhkqFe%%)czAlebGLW(WO~6bC~B1Kj7h{uja3z7U;F0lFPXG|E(hW2
zNLpx@ez<#wV$d3m&=;j87B~jA{*e#jYSAr<{Ri3+8!s5!LVJ<`+bd$_?#4oi=QM!N
z<;o<^YRuS{kTnj_ng|=`mc<IKQUw!`kprzT*tjSLcU8b6|G^m8I5q}(RKU5!<bYT%
zY@7&#9;#q75)7um#%VFwr~;-Z#bCdMHdUy)hV1u7hReJ@ztDV!rDW1}HqIlqF$(eF
z($BQrL;G_9&bIgNp)psI3(15StsXgRfJJuWZ0gt1ZAE}dTMY<yy$)cZqWk@l3k&%1
zi4+Kx_`iaWU8&!Ssr_cEbSQ``>|Ei?YIfFLpCZ<&vRVOwrB|?(83W%=Q4=7nrdHtK
z(G;YeOJCdn?v}-VY?Of3c0GZqv2lcKNt2ZD6KVO>dfKV!cj$dk8>ixu&P{M*U<ZEp
z77bpdkfF2)-G+3CMu~sBSlofYLZ?rWzV?0Yz2-fQX8dNnP0Z$E6IDaiDBMH+JDl=S
z&?i!{!8g&P{wK2UM<LPa$u-eKO{)X<HawjOt1${^xLwz8rR*{V6Tuyt7-P4hi_(yJ
z7CsH{uDQo>DW*<YbuQ+B;+qrYfNRhT$N6s*n-SwkrAXo1_q#Q&YTi+M3uXOE6y{%N
zyKtl&%?;ZpO01w80%LFPCgFP49PmfpYFGuj`w8k|EiBJkxjx_zJb>0sej{x2=tlL|
zYF@AM&vxu!uVi{|PPYh*=+w?acq;$W2J=QL=kNX+OI>Q#B4Vog0@JZO$*rnAB2NBe
zG-=TbA8_?=|GI6a`<VO1i8+Tus-{J;i96>(>4`B7Y0xC0(UQW(;~{D2oTSA}LV(20
z!s7OXz)y$o-FuGV-Xfn!hX!LD%_y|u6G6ZIRB1>i(EV+CrpAu8aEI@EQEFv@9(iUN
zLMBmmR?IYnWq-0Pa3iOm!@nKLk5}pj&nQ~Vl+2%2Zz#u&+<hey*iX5Ti!-K4f64>B
z=DUp<OdRcK*Xnq7r<*~V6)`nHR%b?Hx#P^3N?G8#CShG+{*!;JKA|iF<(S`u<z`|t
zds6E`OFGc=#X8DGdOSzx$IEr?$g@22r`txfPT-AvXYclvE3S#sa7!e)sQ)jx(9Anq
z=-kH_j@+CuZU+^y4fTdDMP?JP{UG($3C~UU!?6n|js@Ev-R1<xsNIu*U)JKy%ZR?`
zIn*-639zTU!h#+ZcC)h0BG#tc)o*Gdd=#N2Oc|2nEB9x!q~s8K7L<f~muTe28l5MV
z3!%MPs^FBP0#m8Bzv}87rBy<UIxkAR(3c*ZKc{hK4~%+Md9Lp~dml+L@!B)7IcfkK
z!O_zet)FG=Zemeigl4)-0@R5EF%D9cqxw8nxaJoT#m*fzA{AE;0cRL=4C#Y+51eH5
zIa;^P=l)b|2oTLR()Ns*(n&2xZhcP$H0>}-Q|Mdz_eRY_;{t`c9oH{gTTrVeSf(|f
zVB<a>2eA(2)Riy4N$YmVThj1}x<+W}A($BViZ>pI>faVWFyJG&^WpX@8hVl*M6k!g
z);UVM6RZ4EWPV@u=d$>tx5=dDYyqbs#a1`natQ~Zwh#7E^%{;?Z_{8$N<puQHnPcJ
zE0^<=8&ckquG#GQ=Y7xerStfIupw-(6k0T5?jSu%dI+8=N<uB^Y=M=h>ro`w`-Ex$
zXELepK$~n~U<fM-)++V?a}>TBjGrHhumbd-NPQ>X$Xfne--MVbl#fUlouR^II84Dm
zdkym2I<3KxT#;pOLsS(wJFdFP(K{0+an8IEwDvM;CZMtG#JzyAd%}Ey;E<v#l@7%?
z=Vb*n)1P;{P4dhod|}*sU2$t|PDC9)@K)4aavwK6cwhG+fjugKdC!jXtCnI7j)(*c
z1vdwqPRdX|VD2$TL%O`k0)hO7J*9jfkb>aaIBoV+cL^XHDt@rj@cNlVRrASL9uxUG
z=h?>QPThq1beK%S&QFL4ER55HZh=dkj~I^<=kR#vcN~9K<>J()1n$8bm)3!KXXmB%
zu9<F|!>%C5q$#w<Yde*9PGG$7kmeS_fZs5l(j6F~9&PR1<v@cO$F<x3(iBp=iC7RK
zjof~jg?J?$s`HM^Qta@dc{logCxG69Atg~u`~K_i3-z}hh}qt~Z75<kl23bg*0&cw
zfX<*Pom4N9rvkpo7>uzrbKwo%Mp5;B`4!%<$tJJq@@=9D20cW5Ae+AT<~u4)5zqPn
z4)Jo)k^PiS2>$bJRyNalbpqgUN>xqFY~IVEkEPzwB#1xR|12#TC#w0_7<UWQ81)K~
zj@N)#*dhU=OJ4byR}&?Xk!uw)hY<?@`Di{?SDTj#Ytqx={`(6}V3H*D^*MiG)JonY
z?=q94uJ1qP8Hh>zsPG?nkGTkx+n9sWWot{xcK(Ap;A~(yvQ>!hniQoh0P>}yGF4Lp
z=062_le_*m(u78}l>+>1YyjY=2O4Khz;ngs!m`Wj1E^B|HwuLspzQt=ECHE37y$hJ
zui&}e(@QTw1k%f+Bj}MW(vR~dxJe@o9n}<>3w$4cC(f#$Yb(EJ#nWU>H|R#!awsB6
zC^J@yy|#tU+_~HShJ+oNIY_;v48Av11<SNdc$98`L*b*zWy2Dkh#>xSp;T`q1*4R;
zF|28EHZ9QB{9u)DlLWl+WL+Yn(C^eqJuVyuc=AX-ETt!o;y<yel10|Zn&Y-pnolK5
zE=H1_i5-b<)JD^%%L7yFUDYY#`|YKPG`#x_B`AM7V09nf&QSaSU}7Z4v~Q{1Wo6X>
zAUG}@qZIhZfe+CG0Y|-b<co!m0rU4anyCYBFj8QZ&wFXbicVRQ@V|S3as!Ofhhlfv
z&yYvGc8g}z7~3vzR%NG-LZZiB{7THHz8ZV_kMDU;h(tMd`PkTdR|9q<in`ZUM(g(4
zLA3jC3mByHRs#(MjZU6C6Vu|?i9H=jOYT8$x*quoK8%dKs)ITxm@BCP3_{c0`jHXU
zZP0IzczKR!^gu_U2AH7BU0>Z3paSkmxWiX><Y$BizsHH7LuG|=^k~vJNps%N`!D-5
ziTHnUQ4#>PT>8+3oWY6MJvzdbB6s^*nl1yQ>ad3fT0$D(r#2RR?A*_YTMg1RA6EE?
zaxad<iEGxXMd0ZkL&g)SMEx!*kpx0{=MPL#D{e1;9!Rm^_dX38cB6|9AzJ3Yc8ETF
zXI6H#t|2hshHn97^hSA!Jq!HRnRD7T$EHk{t^h8mpD3A@ENcG?@?2{$kJ`H&ykb|8
zKJZ8$&dl9EU86q;QgIn3&I`41Ss>0WEJfR{WCzXEf8+a`*9>JgtoNHn<42A$1W(wl
z4SXxD;;CjcHf|n{Ortbk8E$>BN@J)5U6IEM->|iyGFPY@JG-(qzHEKYsc<%)TqSL=
zTfa9Ul|S}6mU3BSrlBde`Dd~^K6(JWK01)p*aAv~2Ug#i2N_Co9AQkaaY@kNnQ5?}
z8QQ{S_c9|KQCl0$XIoU|a@BRtq`haXD=G472R-O2JM+_F;f~_U{+HT^ZMShakh60g
zqjTWKIfhvgB-(^ru1ciu%SXQJSDujWvQVEGs}YnFgYLpztoofzNfL}(T@4uZ^ip`(
zfxmgLWCm9Eu(9p<TE1R~%yzhN?eO$gkVBfGbBMgdTuxQe{M3Z~I`vnnB?)`%2T;ve
zGko_me~{4&Tb)yfRSeC;nN#ve*q+>w5U>6@s>8uqh5C+M%rRJ6XViT+=yC?Zo@={c
z9xC_K&@d|(8Qe6eRKRRl21VM^$`o3zUi=8n|Ig_2mmfaVz!PKRO5@v*(I^v02u-S(
zUaP;=yG(r+`VR$eV7q<-l0w~u2*lyl!VAIYuU`{VFX@BDlxtc@EBmANC+)t81d(Bf
zk=dzmF3je*wyxZ=RB7VOlU|D|`RJ#<H~Gr}St>u;$|1B`)nDUb4g$|l^rflGFtSEb
zxqpLhMn1_$lC;wrIDKPnpvVoPgHw0SMmV_i5Xww`W%HDa15MSnS(Hx_6+?p`LV5^_
zXdg-$kvcQ6c`E7v{A)cYS_5pS1JpPNR7-@JQv^v9-3X2&&o{nNuyJPDLc_CzKLQMi
z|5%zy2~tU~Svi3tNv=YZaJiA9=-JY-uY6-V!T1NiP&c7us$fYn@~o!>Vgx=0!q#^#
zm$mcPvC{ctlGEtRU1h@Aj*0F4i`g3umGWrV_zT%W<5x{7UF>Y_6TDfLd3q-O9t+e1
zCr^7^?jQ=q&^s_BO}&F?h#oRYSo38N+4kGd@{#Q6TFO8~a@2z?cDBy&0-eTftH!Ij
z?~#>kS#1nSrlc<{-e=TaAMX+|3IKsW&C;@3y7F9mOCXWY5kuZ=#Xdt2+bUKz36uB=
zno(R#zGg=yGa<-T=+xnGtL8wi_Z!=9QnE?7_sN&Ke~Q=i9~{c_@=NQ&Fc*-c(DJ5&
zqZvLSQz!NA;jbZ`;+!!LPci;4cy@O4buH)+AL5}bFWIJ`P(Z5(>Rehb4No`#Lr^DM
zT&TDJ%%=)!p+0S#WW0P^7i_d;e<oK<#avNr)RPFs2mYyy;+pAuD?aT)lz(r<yOH5N
zEBVLPhQeZ%r%tBrh>!ep-&~FY*^OKkKg+Q#FG5$#CtBR-&ctMTwI191CSh)9BHZ}&
z){*y8qrb9<eTkgF0#^6l1@ooh^zA<&C*S*YOI-ZvmizCVwB$8$Iz+N5{zfE!R$D2C
z`g{r5osoa_U5g;W&=-9f!Dhyw4<WMB<nV68u^C|N`Q-1+J<A*9sIMQ(-09wMNPo<L
z#-8>bp(_n@wGu{8Sozd^<<<i&ZbfS1(B58D+@C7oCk;e0T8}r5=T3`9m)<W4e(4-m
z$}j#rh*aEL$+qXdR3oNhPmhWkZihw?7)w-Edox0l>~n2nXh=6>b!p}2mvzitHcrKQ
zGKDE}P>1>1++c!Usy60toL^R#CX6M-_uhK(%4HB4Yv7V_VG*W+ozHw4_&nMypJawk
zwSD`ebVH?=UJNZWHa1XBRM6tm!_!Sk=nHQzZo}FcpEPWQH$$s-=N-S1kpFnl^Gs4-
z*suiZJ~k5gk3cy_fsc5OnfW(ubiTY+(T2;4YGgm5>Sq;UTfY~Umhg}BBk2|PN;HT^
zPA@=IO5!$K`HAR_p(5s)X0~eQMU<COgpG?WN!PQi{hJsabH{T<WHT+&qVbAdJQR*u
zIk36nd-=}7zw4#Ew|&jcidUReeP%=1391Nkf4ezKvC-uCZ*s!oQH6&I>T)RK$LRSL
zYEuq$(Rz<xv*dyJus{mGrYCf)ixWK_=&v1x=N2y2DdGuJ0B@519W6-CO9=TNx9>Mi
zIq9ZpH$F#J!gX-~!&V74*oVFnT7zOC$GSH@)8A=r&FPhr%|>?+`o__iNwt0#assRG
zqkoSleT6THIeZO_R4kO3`}Me)>g|pDtl}%Io+qYh=|26XoTlk+Nm1u@r64;wd1VSh
zYRN&Q1Hb>G96M0{3FcZ;Vj|SlHaZyuj6=AX5Bs>e&88N1q&0DXgj7<o%u-OOvkEv+
z{S}r>UGanS->-oq20aiDX8N6Q*b)C6_kE9KK_4jec`~VyHm)F6kGLw>g?t&*Ab}0I
zU{1RsISDH^z@mqs{fP%SGP8AN1!9i4yu&r-9p(o~;8;p=fF7dbQWd*?={}Di0Cc$i
zZ$aRHdyp+x=avUgaDh+kuMlF1k?nylBGP>O=qm*m-a5GqpddiA6pD-scxdzC!rmVF
zjjDzopqX$``!STa7EM-0g_J<UrWx?|@qkWEX)enhk(kkwt=LyM`OTEWuOK7X9_b46
zJXiqzE-RZxlkZEn;M*XaIzFt>mSc?{n)nL9YUE3M^&g@XIYvz%6fu;g4gRguw|Cj+
z_g3~AUcyy~N<h1ha=!px*IqG1w;hZ%(-o5$mc6GcAH)i!a%kd1&UyIrL4Z!#Pfp;Z
z{5ffJ0BDu1asmTA)BnlQFclKu<o}m&_wi0Tas9~#063sSZkC2#Cj`IH#gwA}RYfg@
JTDiC3{{!Qcm+$}p

literal 0
HcmV?d00001

diff --git a/test/Makefile.inc b/test/Makefile.inc
index ed4c5b56..0550e3a4 100644
--- a/test/Makefile.inc
+++ b/test/Makefile.inc
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 17/10/2019 (at 17:11) by Erwan Jahier>
+# Time-stamp: <modified the 23/10/2019 (at 15:32) by Erwan Jahier>
 
 DIR=../../_build/install/default
 
@@ -29,8 +29,6 @@ LIB=-package algo
 	osage -Tpdf $*.dot -o $*.pdf
 	xpdf $*.pdf
 
-%.log: %.dot %.cmxs %.lut
-	/usr/bin/time -v -o $*.log sasa -l 10000 $*.dot > $*.rif 2> log ; cat log >> $*.log
 
 
 
diff --git a/test/alea-coloring/Makefile b/test/alea-coloring/Makefile
index be5efc6b..e6a5da1f 100644
--- a/test/alea-coloring/Makefile
+++ b/test/alea-coloring/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 12/09/2019 (at 10:44) by Erwan Jahier>
+# Time-stamp: <modified the 23/10/2019 (at 15:40) by Erwan Jahier>
 
 
 test: ring.cmxs
@@ -31,6 +31,7 @@ rdbg3: ring.ml
 
 ###################################################################
 -include ../Makefile.inc
+-include Makefile.untracked
 
 clean: genclean
 	rm -f ring.lut *~ ring.ml
diff --git a/test/bfs-spanning-tree/Makefile b/test/bfs-spanning-tree/Makefile
index 45b2ebd2..12eaa3d9 100644
--- a/test/bfs-spanning-tree/Makefile
+++ b/test/bfs-spanning-tree/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 18/09/2019 (at 21:34) by Erwan Jahier>
+# Time-stamp: <modified the 23/10/2019 (at 15:41) by Erwan Jahier>
 
 
 test: test0 test2 lurette0 
@@ -56,6 +56,7 @@ manual: fig51_noinit.cmxs fig51_noinit.lut
 
 
 -include ../Makefile.inc
+-include Makefile.untracked
 
 clean: genclean
 	rm -f fig*oracle.lus fig5*.ml
diff --git a/test/coloring/Makefile b/test/coloring/Makefile
index ce87aeae..e823b644 100644
--- a/test/coloring/Makefile
+++ b/test/coloring/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 08/10/2019 (at 22:22) by Erwan Jahier>
+# Time-stamp: <modified the 28/10/2019 (at 21:27) by Erwan Jahier>
 
 sasa=$(DIR)/bin/sasa   -l 100
 
@@ -24,7 +24,7 @@ test100:
 
 rdbg: ring.ml
 	rdbg -o ring.rif  \
-      -env "$(sasa)  ring.dot -lcd" 
+      -sut "$(sasa)  ring.dot --locally-central-demon" 
 
 rdbg1: ring.ml ring_oracle.lus
 	rdbg -o rdbg-ring.rif \
@@ -41,3 +41,4 @@ clean: genclean
 	rm -f ring.lut ring.ml ring_oracle.ml 
 
 -include ../Makefile.inc
+-include Makefile.untracked
diff --git a/test/dijkstra-ring/Makefile b/test/dijkstra-ring/Makefile
index 4e6eb131..71b2b760 100644
--- a/test/dijkstra-ring/Makefile
+++ b/test/dijkstra-ring/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 18/09/2019 (at 21:10) by Erwan>
+# Time-stamp: <modified the 23/10/2019 (at 15:41) by Erwan Jahier>
 
 
 test: ring.cmxs lurette1 
@@ -25,6 +25,7 @@ lurette1: ring.lut ring_oracle.lus
       -oracle "lv6 ring_oracle.lus -n oracle"
 
 -include ../Makefile.inc
+-include Makefile.untracked
 
 clean: genclean
 	rm -f ring_oracle.lus ring.ml
diff --git a/test/skeleton/Makefile b/test/skeleton/Makefile
index f72dcb9f..e4f38962 100644
--- a/test/skeleton/Makefile
+++ b/test/skeleton/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 23/10/2019 (at 00:13) by Erwan Jahier>
+# Time-stamp: <modified the 23/10/2019 (at 15:41) by Erwan Jahier>
 
 
 test: ring.cmxs 
@@ -18,3 +18,4 @@ clean: genclean
 	rm -f ring.ml
 
 -include ../Makefile.inc
+-include Makefile.untracked
diff --git a/test/unison/Makefile b/test/unison/Makefile
index 8c4dda0a..42c82551 100644
--- a/test/unison/Makefile
+++ b/test/unison/Makefile
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 23/10/2019 (at 12:18) by Erwan Jahier>
+# Time-stamp: <modified the 23/10/2019 (at 15:40) by Erwan Jahier>
 
 test: test1 test2 lurette0 lurette1 rdbg_test
 
@@ -43,6 +43,7 @@ rdbg_test: ring.ml
       -sut "$(sasa) ring.dot -sd -rif" \
 
 -include ../Makefile.inc
+-include Makefile.untracked
 
 clean: genclean
 	rm -f ring_oracle.lus fig41.ml ring.ml
-- 
GitLab