 [experimental]$(:Goal)
[experimental]$(:Goal)determinism_error exception.
Note that if $/1 
is used for the last call, last call optimization is not effective. This 
behaviour ensures consistent errors or warnings. Last call optimization 
with determinism checking can be realised using ..., $, Last., 
i.e. by executing
$/0 before the 
last call rather than wrapping the last call in $/1.
Violations throw an error/2 exception
determinism_error(Pred, Declared, Observed, goal).