once/1 cuts caller choice points inconsistently across Prolog systems
Goal Use once/1 to guarantee that a write operation (e.g., assert/1 ) executes only once even when the surrounding predicate is retried via backtracking. Constraints and uncertainty The ISO core defines once/1 as a cut that removes choice points created inside the wrapped goal. However, implementations differ on whether that cut also removes choice points fr