`FailReason() & SuccessReason(patch)`
Let's say that the glob instead returns a HardFailReason, which when
-ANDed with another object, drops their influences. (But when ORed, combines
-them.) Fixes the above, but does it always work?
+ANDed with another object, blocks their influences. (But when ORed,
+combines them.)
-"(bugs/* or link(patch)) and backlink(index)" =>
-`( HardFailReason() | SuccessReason(page) ) & SuccessReason(index)`` =>
-`SuccessReason(page & SuccessReason(index)` =>
-SuccessReason(page, index) => right
+Question: Are all pagespec terms that return reason objects w/o any
+influence info, suitable to block influence in this way?
-"(bugs/* and link(patch)) or backlink(index)" =>
-`( HardFailReason() & SuccessReason(page) ) | SuccessReason(index)`` =>
-`HardFailReason() | SuccessReason(index)` =>
-`SuccessReason(index)` => right
-
-Ok so far, but:
-
-"!bugs/* and link(patch)" =>
-`!SuccessReason() | SuccessReason(bugs/foo)` =>
-'FailReason() | SuccessReason(bugs/foo)
-`FailReason(bugs/foo)` => wrong!
-
-This could be fixed by adding a HardSuccessReason that glob also returns.
-Maybe just a field of the object that is set if it is "hard" is a better
-approach though.
+To be suitable to block, a term should never change from failing to match a
+page to successfully matching it, unless that page is directly changed in a
+way that influences are not needed for ikiwiki to notice. But, if a term
+did not meet these criteria, it would have an influence. QED.
#### Influence types