input: from typing import List
  
  
  def cumulative_max(numbers: List[int]) -> List[int]:
      """ Given a sequence of integers, return a new list where each element represents the highest value encountered up to that point.
      >>> cumulative_max([1, 2, 3, 2, 3, 4, 2])
      [1, 2, 3, 3, 3, 4, 4]
      """
output:     if not numbers:
          return []
      
      max_so_far = numbers[0]
      cumulative_list = [max_so_far]
      
      for num in numbers[1:]:
          if num > max_so_far:
              max_so_far = num
          cumulative_list.append(max_so_far)
      
      return cumulative_list