The Dogelog player keeps the number of Albufeira instructions
low. It provides low-level control flow instructions via
built-ins. The Dogelog player allows to register deterministic and
non-deterministic built-ins in the form of host language
functions. A non-deterministic built-in creates a choice point as
a side effect, registering another host language function.
The below built-ins are internal only and do not check their arguments. The redo argument should be a variable. The sequence goal list is just a Prolog list of Prolog terms each representing a goal. The alternative variant list consists of variant/1 pairs, the first component of the pair a redo option and the component a sequence goal list.
The following built-ins belong to the Albufeira instructions: