Я изучаю Haskell с целью понимания функционального программирования, ожидая, что я буду применять полученные знания на других языках (в основном Groovy, Python, JavaScript).
Я выбрал Haskell, потому что у меня сложилось впечатление, что он очень чисто функциональный и не допускает никакой зависимости от состояния.
Я не выбрал изучение Haskell, потому что мне было интересно ориентироваться в чрезвычайно жесткой системе типов.
У меня такой вопрос: является ли сильная система типов необходимым побочным продуктом исключительно чистого функционального языка или это несвязанный выбор дизайна, характерный для Haskell?