Something that is really hard to capture with a type system is how values change over time. For example, I could have a type of null when I boot my app, but then have that same data structure have a type string after a certain point in time. There’s not a great way to tell type systems, “after a certain series of events, if this process is still running, this will be of a certain type”