Then it only comes up when you test and only if you test the branch of the code where you already have a type error.
You have many similar difficulties to what you experienced with Haskell types, except without the type system to help you ensure everything is correct.