Did you know ... Search Documentation:
Predicate or_succeed/1
 or_succeed(+OrNode) is det[private]
The dif/2 constraint related to OrNode is complete, i.e., some (sub)terms can definitely not become equal. Next, we can clean up the constraints. We do so by setting the OrNode to - and remove this dead OrNode from every vardif/2 attribute we can find.