I'm recently studying Haskell and programming languages. Could someone recommend some books on type theory?
Barendregts Lambda Calculi with Types is more advanced, but it covers some important topics in the "classical" theory of types.
Robert Harper's book Practical Foundations for Programming Languages (available as a draft online: http://www.cs.cmu.edu/~rwh/pfpl/2nded.pdf) is a somewhat more intense alternative to Types and Programming Languages.
It's more about mathematical foundations and less about computer science, but the book Homotopy Type Theory: Univalent Foundations of Mathematics is available for free in pdf form under a CC license.
Another nice book that weaves type theory with programming in a functional language is Didier Remy's Using, Understanding, and Unraveling the OCaml Language.