var Immutable = require('Immutable');

function shallowEqualImmutable(objA, objB) {
  if (Immutable.is(objA, objB)) {
    return true;
  }
  var key;
  // Test for A's keys different from B.
  for (key in objA) {
    if (objA.hasOwnProperty(key) &&
        (!objB.hasOwnProperty(key) || !Immutable.is(objA[key], objB[key]))) {
      return false;
    }
  }
  // Test for B's keys missing from A.
  for (key in objB) {
    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}

module.exports = shallowEqualImmutable;

var Immutable = require('immutable');

function shallowEqualImmutable(objA, objB) {
  if (Immutable.is(objA, objB)) {
    return true;
  }
  var key;
  // Test for A's keys different from B.
  for (key in objA) {
    if (objA.hasOwnProperty(key) &&
        (!objB.hasOwnProperty(key) || !Immutable.is(objA[key], objB[key]))) {
      return false;
    }
  }
  // Test for B's keys missing from A.
  for (key in objB) {
    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}

module.exports = shallowEqualImmutable;

Use a lowercase 'immutable' module name
Use a lowercase 'immutable' module name

Webpack complains with 'Immutable':

WARNING in ./~/immutable/dist/Immutable.js
There is another module with an equal name when case is ignored.
This can lead to unexpected behavior when compiling on a filesystem
with other case-semantic.
Rename module if multiple modules are expected or use equal casing if
one module is expected.
