I will suggest, in your situation to read the SICP.<p>It us Scheme (a kind of Lisp), it is very functional focused, so many concept will translate fairly good with Haskell and along the way it teach you the fundamental of an interpreter, which is not quite a compiler, but still matching what you are interested in.<p>And you will be a better coder after that book, I guarantee :)