///|
pub struct DuplicateGroup {
  event_id : String
  count : Int
} derive(Eq, Debug)

///|
pub fn DuplicateGroup::new(event_id : String, count : Int) -> DuplicateGroup {
  { event_id, count }
}

///|
pub fn duplicate_groups(
  results : Array[VerificationResult],
) -> Array[DuplicateGroup] {
  let mut count = 0
  for i in 0.. 1 {
        count = count + 1
      }
    }
  }
  let mut offset = 0
  Array::makei(count, _ => {
    while offset < results.length() {
      let id = results[offset].event_id
      offset = offset + 1
      if id == "" {
        continue
      }
      let mut seen_before = false
      for j in 0..<(offset - 1) {
        if results[j].event_id == id {
          seen_before = true
        }
      }
      let mut occurrences = 0
      for j in 0.. 1 {
        return DuplicateGroup::new(id, occurrences)
      }
    }
    DuplicateGroup::new("", 0)
  })
}

///|
pub fn duplicate_report(groups : Array[DuplicateGroup]) -> String {
  let builder = StringBuilder::new()
  for i in 0..