The $/0 constructs
acts similar to the !/0, but
in addition declares that the remainder of the clause body shall succeed
deterministically. It exploits the same underlying mechanism as the det/1
declaration. See also $/1.
Violations throw an error/2 exception
determinism_error(Pred, Declared, Observed, guard).