Não, você não precisa pegar um livro sobre teoria das categorias para entender Haskell.
Eu uso Haskell há alguns anos, e aprendi algumas teorias de categorias por curiosidade, isso realmente não é necessário. Por um lado, é legal ver como todas essas abstrações se encaixam no "quadro geral", mas eu não disse "Oh meu Deus, eu só preciso fazer disso um profunctor da Maybe
categoria []
es e então eu posso salvar o Princesa!".
Agora, dependendo do que você está fazendo com a teoria do tipo Haskell, está em cima do muro.
Se você está apenas aprendendo haskell , não tente entender todas as nuances do sistema de tipos . Por favor, não, é como tentar aprender a meta-programação de modelos C ++ primeiro. Tipos sofisticados são excelentes ferramentas, mas ter um bom entendimento da programação funcional é melhor do que o polimorfismo impredicativo.
Agora, digamos que, após um ou dois anos de Haskell, você esteja procurando entender cada parte sutil de como o sistema de tipos de Haskell funciona, então sim, alguma teoria de tipos pode ser útil.
Isso ajudará você a entender algumas das lógicas por trás de como as coisas funcionam, além de ser um ramo muito legal da IMO da ciência da computação que vale a pena examinar. Você pode escolher as partes que mais interessa e ainda aprender uma quantidade decente.
Para Haskell, olhando para STLC, sistemas tipo HM (Sistema F) e talvez o cubo lambda (Haskell é System Fw iirc) e tipos iso-recursivos. Tipos e linguagens de programação é um ótimo recurso para começar e abrange tudo isso e muito mais.
Se você realmente quer beber o refresco e descobrir que é um teórico do tipo emergente, cutuque a Agda ou a Coq. Eles apresentam "tipos dependentes", um passo adiante no cubo lambda que Haskell. Tipos dependentes permitem que os tipos dependam dos termos. Isso significa que os tipos são poderosos o suficiente para realmente provar teoremas. Para os curiosos, o "isomorfismo de curry howard" no Google deve trazer alguns resultados interessantes.