input: from typing import List, Union
  
  def add_matrix(matrix1: List[List[int]], matrix2: List[List[int]]) -> Union[List[List[int]], str]:
      """ Given two matrices, return their sum if they have compatible dimensions,
      otherwise return an error message.
  
      >>> add_matrix([[1, 2], [3, 4]], [[2, 3], [4, 5]])
      [[3, 5], [7, 9]]
      >>> add_matrix([[1, 2], [3, 4]], [[2, 3, 4], [4, 5, 6]])
      'Matrices not compatible'
      >>> add_matrix([[1, 2], [3, 4]], [[2], [4]])
      'Matrices not compatible'
      """
output:     if len(matrix1) != len(matrix2) or any(len(row1) != len(row2) for row1, row2 in zip(matrix1, matrix2)):
          return 'Matrices not compatible'
      
      result = []
      for row1, row2 in zip(matrix1, matrix2):
          result.append([a + b for a, b in zip(row1, row2)])
      
      return result