code: func (p *Path) Reverse() *Path {
  	newPath := NewPath(p.qs)
  	ctx := &newPath.baseContext
  	for i := len(p.stack) - 1; i >= 0; i-- {
  		var revMorphism morphism
  		revMorphism, ctx = p.stack[i].Reversal(ctx)
  		newPath.stack = append(newPath.stack, revMorphism)
  	}
  	return newPath
  }
docs: // Reverse returns a new Path that is the reverse of the current one.