I am someone who mostly works with dynamic languages. When I find myself "fighting the type system" and having a hard time prototyping, I am specifically trying to figure out what my data types need to be. In some situations I find myself in a situation where in order to define my data type I need to know what the data is, but to know what the data is I need to define it's type. With a dynamic language you generally have an ability to get the data, pretty print it, then crash. Then you can go and define proper data types for the data you're working with.