text: """Catalan numbers
  http://www.rosettacode.org/wiki/Catalan_numbers/Pascal%27s_triangle"""
  
  
  def generate_catalan_numbers():
      """Generate Catalan number sequence, C(n) (n >= 1)
  
      where, C(0) = 1,
      C(n + 1) = 2 * (2 * n + 1) / (n + 2) * C(n)
      """
      n = 0
      catalan: list[int] = [1]
      while True:
          next_value = int(2 * (2 * n + 1) / (n + 2) * catalan[-1])
          catalan.append(next_value)
          yield catalan[-1]
          n += 1
  
  
  def main():
      catalan = generate_catalan_numbers()
      for _ in range(15):
          print(next(catalan))
  
  
  if __name__ == "__main__":
      main()
  