code: @Contract(pure = true)
      public static boolean deepEquals(@Nullable Object a, @Nullable Object b) {
          return (a == b)
                  || (a != null && b != null)
                  && Arrays.deepEquals(new Object[] { a }, new Object[] { b });
      }
docs: Checks deep equality of two objects.
  
  @param a  an object
  @param b  an object
  @return {@code true} if objects are deeply equals, {@code false} otherwise
  @see Arrays#deepEquals(Object[], Object[])
  @see Objects#equals(Object, Object)
  @since 1.2.0