@mcc the conclusion I arrived to in one of my talks on minimalism at FOSDEM is that programming tasks have an inherent complexity to them, and it can either be represented in the program source or not, in which case it is living in your head. In dynamically typed languages, you're still running a type checker in your head. In C, you're doing lifetime tracking in your head. We're always running the most complicated dependently-typed checker in our heads, if the problem itself needs it.