public pull(): T | undefined {
    return !this.isEmpty() ? this.data.shift() : undefined
  }