Look, I'm sorry to be the one to break this to you, but if you have difficulty with any programming concept, you must not be a supergenius.  You're just an ordinary genius at best.  I'm sorry.  Life isn't always fair.<p>Of course, I say this as someone who hasn't yet tried to learn Haskell.  On the other hand, I know someone who competes at the national level and I never saw <i>him</i> have trouble with anything including Haskell, so...<p>The sad truth is that there <i>are</i> some people for whom programming comes as naturally as thinking, with code formed as easily as thoughts; and if it takes an effort to understand any aspect of programming, you have just learned that you are not one of those people.  Alas.