Defining those types and the rules of their interaction with a greater type system is also cognitive load you must do <i>up front.</i> In most cases, we must develop systems with incomplete knowledge and must show some progress before all the rules are defined. So you will be changing a lot more code as you learn more than you would in a dynamically typed system.