code: func (s *Signature) less(r *Signature) bool {
  	if s.Stack.less(&r.Stack) {
  		return true
  	}
  	if r.Stack.less(&s.Stack) {
  		return false
  	}
  	if s.Locked && !r.Locked {
  		return true
  	}
  	if r.Locked && !s.Locked {
  		return false
  	}
  	if s.State < r.State {
  		return true
  	}
  	if s.State > r.State {
  		return false
  	}
  	return false
  }
docs: // less compares two Signature, where the ones that are less are more
  // important, so they come up front. A Signature with more private functions is
  // 'less' so it is at the top. Inversely, a Signature with only public
  // functions is 'more' so it is at the bottom.