<!-- STOP AND READ THIS BEFORE POSTING YOUR ISSUE --- Have a general question? --- First check out the Docs: https://facebook.github.io/immutable-js/docs/ And check out the Wiki: https://github.com/facebook/immutable-js/wiki/ Search existing issues: https://github.com/facebook/immutable-js/search?type=Issues&q=question Ask on Stack Overflow!: https://stackoverflow.com/questions/tagged/immutable.js?sort=votes * Stack Overflow gets more attention * Answered questions are searchable * A whole community can answer --- Feature request? --- This library attempts to be as stable as possible so features have to meet a high bar to be added. This library also prefers interoperability with other libraries over continuous additions. Here are some tips to get your feature added: * Search existing issues and pull requests first. * Send a Pull Request! Start with API design and post for review early. --- Found a bug? --- Search existing issues first: https://github.com/facebook/immutable-js/search?type=Issues&q=bug Please ensure you're using the latest version, and provide some information below. --> ### What happened `updateIn` doesn't properly handle `notSetValue`. ### How to reproduce ```es6 const { updateIn } = require('immutable') const original = { x: { y: { z: 123 } } } const NOT_SET = { NOT_SET: true } console.log(updateIn(original, ['x', 'y'], NOT_SET, val => NOT_SET)) // { x: { y: { NOT_SET: true } } } ``` Expected the log output to be `{ x: {} }` instead. Is this intended behavior?