I was thinking about debugging tools last week. The same theme continues this week. My big insight is that many development and debugging tools must work with broken or incomplete inputs. Here are a few examples: A debugger must work with programs that crash. In fact, that is exactly the time when many of us reach for a debugger. Your editor should work even if there are some syntax or type errors in your code. You expect features like syntax highlighting and autocompetion to work while you...