code: def check_matching_blocks(*arrays):
      
      if len(arrays) <= 1:
          return
      if all(isinstance(x, da.Array) for x in arrays):
          # TODO: unknown chunks, ensure blocks match, or just raise (configurable)
          chunks = arrays[0].chunks
          for array in arrays[1:]:
              if array.chunks != chunks:
                  raise ValueError(
                      "Mismatched chunks. {} != {}".format(chunks, array.chunks)
                  )
  
      elif all(isinstance(x, (dd.Series, dd.DataFrame)) for x in arrays):
          divisions = arrays[0].divisions
          for array in arrays[1:]:
              if array.divisions != divisions:
                  raise ValueError(
                      "Mismatched divisions. {} != {}".format(divisions, array.divisions)
                  )
      else:
          raise ValueError("Unexpected types {}.".format({type(x) for x in arrays}))
docs: Check that the partitioning structure for many arrays matches.
  
      Parameters
      ----------
      *arrays : Sequence of array-likes
          This includes
  
          * Dask Array
          * Dask DataFrame
          * Dask Series