code: func (m *Monitor) Monitor(hrt heart.Heart, sdc <-chan struct{}) (bool, error) {
  	ticker := time.Tick(m.ival)
  	for {
  		select {
  		case <-sdc:
  			return true, nil
  		case <-ticker:
  			if _, err := check(hrt, m.TTL); err != nil {
  				return false, err
  			}
  		}
  	}
  }
docs: // Monitor periodically checks the given Heart to make sure it
  // beats successfully. If the heartbeat check fails for any
  // reason, an error is returned. If the supplied channel is
  // closed, Monitor returns true and a nil error.