code: func (p *Path) SavePredicates(rev bool, tag string) *Path {
  	np := p.clone()
  	np.stack = append(np.stack, savePredicatesMorphism(rev, tag))
  	return np
  }
docs: // SavePredicates saves either forward or reverse predicates of current node
  // without changing path location.