An arc labelled with a flag diacritic is traversed without consuming any input but the traversal can be made only if the action associated with the flag succeeds. This action fails if the attribute already has an incompatible value. If the attribute has not been set to any value, unification succeeds.
Successful unification sets the attribute to the given value.
This action succeeds just in case the attribute has already been set to the given value. If the attribute has not been set to any value or if it has an incompatible value, the require action fails. This action fails if the attribute does not have a value. It succeeds if the attribute has a specific value, regardless of what the value is. This action fails if the attribute has the given value.