func (s PathSet) Remove(path Path) {
	s.set.Remove(path)
}
Remove modifies the receving set to no longer include the given path.
If the given path was already absent, this is a no-op.
package cty
import (
	"fmt"
	"hash/crc64"
	"github.com/zclconf/go-cty/cty/set"
)
type PathSet struct {
	set set.Set
}
func NewPathSet(paths ...Path) PathSet {
	ret := PathSet{
		set: set.NewSet(pathSetRules{}),
	}
	for _, path := range paths {
		ret.Add(path)
	}
	return ret
}
func (s PathSet) Add(path Path) {
	s.set.Add(path)
}
func (s PathSet) AddAllSteps(path Path) {
	for i := 1; i <= len(path); i++ {
		s.Add(path[:i])
	}
}
func (s PathSet) Has(path Path) bool {
	return s.set.Has(path)
}
func (s PathSet) List() []Path {
	if s.Empty() {
		return nil
	}
	ret := make([]Path, 0, s.set.Length())
	for it := s.set.Iterator(); it.Next(); {
		ret = append(ret, it.Value().(Path))
	}
	return ret
}