Did you know ... | Search Documentation: |
Predicate signal/2 |
It's possible for ancestors to disagree about Restart (aka, different values on backtracking). In this scenario, it's acceptable to choose the first (innermost) Restart, iterate each Restart in turn or consider all Restart values together (quorum?).
If no ancestor has an opinion, signal/2 calls throw(Condition)
.
If you'd rather use a default value for Restart in this case,
use signal/3 instead.
It's quite common for signal/2 to leave dangling, false
choicepoints. If you're only interested in the first Restart value,
use once/1 or a similar construct to explicitly state that intent.