func (s *Signature) merge(r *Signature) *Signature {
	min := s.SleepMin
	if r.SleepMin < min {
		min = r.SleepMin
	}
	max := s.SleepMax
	if r.SleepMax > max {
		max = r.SleepMax
	}
	return &Signature{
		State:     s.State,     // Drop right side.
		CreatedBy: s.CreatedBy, // Drop right side.
		SleepMin:  min,
		SleepMax:  max,
		Stack:     *s.Stack.merge(&r.Stack),
		Locked:    s.Locked || r.Locked, // TODO(maruel): This is weirdo.
	}
}
func (s *Signature) merge(r *Signature) *Signature {
	min := s.SleepMin
	if r.SleepMin < min {
		min = r.SleepMin
	}
	max := s.SleepMax
	if r.SleepMax > max {
		max = r.SleepMax
	}
	return &Signature{
		State:     s.State,     
		CreatedBy: s.CreatedBy, 
		SleepMin:  min,
		SleepMax:  max,
		Stack:     *s.Stack.merge(&r.Stack),
		Locked:    s.Locked || r.Locked, 
	}
}
func ( s * Signature ) merge ( r * Signature ) * Signature { min := s . SleepMin if r . SleepMin < min { min = r . SleepMin } max := s . SleepMax if r . SleepMax > max { max = r . SleepMax } return & Signature { State : s . State , // Drop right side. CreatedBy : s . CreatedBy , // Drop right side. SleepMin : min , SleepMax : max , Stack : * s . Stack . merge ( & r . Stack ) , Locked : s . Locked || r . Locked , // TODO(maruel): This is weirdo. } }
// merge merges two similar Signature, zapping out differences.
merge merges two similar Signature zapping out differences .