The interface is user-friendly, e.g. in the top-level and in the debugger
most functionalities can be accessed with a single key stroke.
The top-level loop does not ask for displaying more alternatives
when it can determine that there are none.
All user interface errors are signaled to the user instead of just failing
so that it is easy to spot trivial errors like misspelling
a predicate or variable name.
Automatic name completion is provided:
when the user types the first characters of
an atom or functor followed by ^
D, the system will try to
complete the input from the known atoms and functors in the dictionary.
For example gar^
D will be expanded into garbage_collect.