func hashcode(v interface{}) interface{} {
	if h, ok := v.(Hashable); ok {
		return h.Hashcode()
	}
	return v
}
hashcode returns the hashcode used for set elements.
package dag
import (
	"sync"
)
type Set struct {
	m    map[interface{}]interface{}
	once sync.Once
}
type Hashable interface {
	Hashcode() interface{}
}