diff --git a/README.EAM.html b/README.EAM.html
index b710d1837..c888c2173 100644
--- a/README.EAM.html
+++ b/README.EAM.html
@@ -36,6 +36,33 @@ command line.
---------------------------------------------------------------------------
Quick example on how to run a Prolog program using the EAM.
+-FIRST ALTERNATIVE:
+Consult your program using eamconsult(+File)
+?- eamconsult(qsort).
+
+then you should write your queries using ?- eam(query).
+You can write the query normally as in normal Prolog mode, but
+in this case you will only receive the first solution (or yes or no).
+
+The eamconsult will pre-compile your prolog code to control
+cases where changing the order in execution can be problematic...
+For example consider the query: ?- g(X), f(X).
+Supose that g/1 is non-deterministic and that f/1 has a single clause.
+The EAM engine will try to execute f/1 first, since it is deterministic.
+Now supose that f/1 depends on a bound argument, for example:
+f(X):- X > 1, ...
+
+The eamconsult will be transform this code into
+f(X):- skip_while_var([X]), X>1, ...
+
+The skip_while_var/1 will not allow the comparision X>1 to be executed
+while X is unbound.
+
+
+
+-SECOND ALTERNATIVE:
+
+
First you must enable the EAM using the comand
?- eam.
yes
@@ -220,6 +247,8 @@ llength([A|R],N):- llength(R,M), N is M+1.
Another example:
The famours queens...
+
+
Try to evaluate in normal Prolog que query:
?- queens([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],X).
Now quit YAP and enable eam before loading the queens program
@@ -268,17 +297,14 @@ Note that on the nd predicate, we have used wait_while_var
to force the EAM to wait while C1, C2, R1, R2 are not bound,
because the operations in this predicate can't be done with
those variables unbound.
+Alternatively, and if you don't want to use wait_while_var,
+you can compile the prolog code using eamconsult.
+eamconsult will insert this instructions for you automatically.
---------------------------------------------------------------------------
3. Some notes...
---------------------------------------------------------------------------
-- BEAM create the indexing code (try, retry and trust) only
-considering the first argument and only when the predicates are first called.
-So the first time you run a query there can be a slowdown, because the
-EAM is indexing the code.
-
----------------------------------------------------------------------------
- A lot of builtins/code are not yet supported...
For example var(X), not , ; (or), ...
You will have a internal compiler error for these cases.
@@ -321,6 +347,8 @@ Y is X+1 is executed before X being bound. The result would be:
The solution for this case is to force the EAM to wait for X to be bound.
+This can be done by using eamconsult(File) instead of the normal
+consult, or by inserting the control instructions explicitly in the code.
So the code correct code would be:
tst(Y):- f(X), skip_while_var(X), Y is X+1.
@@ -336,6 +364,7 @@ tst(Y):- f(X), wait_while_var(X), Y is X+1.
that means what execution can not proceed while X is not bound.
+
---------------------------------------------------------------------------
- To support the EAM within the YAP the WAM compilation was