code: def is_square(operator_a, operator_b):
      """Return a hint to whether the composition is square."""
      if operator_a.is_square and operator_b.is_square:
          return True
      if (
          operator_a.is_square is False
          and operator_b.is_square is False
      ):  # pylint:disable=g-bool-id-comparison
          # Let A have shape [B, M, N], B have shape [B, N, L].
          m = operator_a.range_dimension
          l = operator_b.domain_dimension
          if m is not None and l is not None:
              return m == l
  
      if (operator_a.is_square != operator_b.is_square) and (
          operator_a.is_square is not None
          and operator_b.is_square is not None
      ):
          return False
  
      return None
  
label_desc: Use image node_id 2 for calling a global function with example usage: is_square(operator_a, operator_b) and returns: None, True, False, unknown