Try inheritance trees in a dynamically typed language, when there is 8 layers of abstraction between the thing that you know and the thing that might be causing the problem.
It's not getting the problem in your head, so much as where you are at a certain point in time while attempting to solve the problem. If you get knocked out of flow by interruptions after 20 minutes, it can take quite an amount of time to get back to where you were.