I think IS_MARK is a poor name.  How about `SHOULD_KEEP` or `KEEP_NODE`?