As pointed out in [3] one of the characteristic properties of a module is that it is computationally autonomous. But a relevant consideration of computationally autonomy is that modules do not share sources (in our case the grammar).

In the actual implementation the predicate find_all_parse is complicated in order to remember which parses were already tried. If a parse has been tried before, then the predicate fails because then that result is either already shown to be ambiguous, or otherwise the corresponding solution has already been found.

Gertjan van Noord
Thu Nov 24 18:08:35 MET 1994