--- id: faq title: Frequently Asked Questions sidebar_label: FAQ ---
## Q: How does Immer work? Read the (second part of the) [introduction blog](https://medium.com/@mweststrate/introducing-immer-immutability-the-easy-way-9d73d8f71cb3). ## Q: Does Immer use structural sharing? So that my selectors can be memoized and such? A: Yes ## Q: Does Immer support deep updates? A: Yes ## Q: I can't rely on Proxies being present on my target environments. Can I use Immer? A: Yes [details](https://immerjs.github.io/immer/docs/installation#immer-on-older-javascript-environments) ## Q: Can I typecheck my data structures when using Immer? A: Yes ## Q: Can I store `Date` objects, functions etc in my state tree when using Immer? A: Yes ## Q: Can I use Maps and Sets? A: Yes ## Q: Is it fast? A: Yes ## Q: Idea! Can Immer freeze the state for me? A: Yes