docs: def n_weekends(self) -> int:
          """
          Returns the number of weekends that the intervals collectively touch
          (where "touching a weekend" means "including time on a Saturday or a
          Sunday").
          """
          saturdays = set()
          for interval in self.intervals:
              saturdays.update(interval.saturdays_of_weekends())
          return len(saturdays)