It's sometimes funny how often the solution to my programming problems is, "define a better type," and how often I miss that advice.
@agentultra I think it's because your types outline the problem you're solving, and it's hard to fully comprehend the problem before you write any code.
Which is why I think Haskell is so cool, because it's easy to update the types as you go. GHC will just tell you everything you need to fix.