Why 2 immutable.js Lists is deeply different?
<p>I couldn't deeply compare 2 Lists, using simple deep object comparison. </p>

<p>Consider following code:</p>

<pre><code>import {fromJS} from 'immutable';
import {describe, it} from 'mocha';
import { expect } from 'chai';

const o = {a: 123};
const A = fromJS([o]);
const B = fromJS([]).push(fromJS(o));

describe('Check', () =&gt; {
  it('should be deep equal', () =&gt; {
    expect(A).to.deep.equal(B);
  });
});
</code></pre>

<p>Why Immutable.js collections actually have state?</p>

<p>I saw libraries like <a href="https://github.com/astorije/chai-immutable" rel="nofollow noreferrer">chai-immutable</a>, but I would like to understand purpose of this behavior?</p>