See also the description in the package of the Prolog documentation generator:
where additional information regarding determinism (determinacy?) annotation is given.
A note from that page:
_Developers should ensure that predicates are steadfast with respect to output arguments (marked - in the template). This means that instantiation of output arguments at call-time does not change the semantics of the goal (it may be used for optimization, though). If this steadfast behavior cannot be guaranteed, -- should be used instead._