Some improvements for static analysis

Some things I encountered primarily when working with the `Recoil::*()` API.
I know this syntax is a bit different, but it's actually from this type specific language: https://github.com/eloquent/typhax

I'm reluctant to change it at this point because we do have some tooling that expects this syntax. I'm actually surprised it's only used in these 2 places throughout Recoil!

Does this mess with your IDE in horrible ways?