<div dir="ltr"><div><div>I was thinking about why it seems I can write Haskell code without bugs in a much easier way than imperative languages. Part of it is the strict type-checking, but I think there is something more. It's the potential for conciseness. I work hard when programming in Haskell to take advantage of language features that make my program concise. Somehow this leads me to think about it in a certain way. I know I'm on track as it gets smaller and smaller. And as it gets smaller, it leads me to think about my logic's cases and things like that. Certain patterns show up and I think about what those patterns mean for the structure of my problem. <br>
<br></div>By the time I'm done with all that, I've analyzed my problem much more thoroughly than I would ever do in an imperative language.<br><br></div>Dennis<br><br></div>