тут есть два принципиальных подхода. Первый - ты учишься что-то адекватное делать на компе (читать вводы-выводы, писать функции, складывать массивы), а потом пытаешься поверх этого накрутить что-то на чем можно писать сложные программы и не убиться (например, ооп). А можешь филосовствовать "что такое идеальная программа и как составить язык, чтобы неправильную программу написать было сложнее чем правильную, а потом пытаешься этот подход натянуть на суровую жопу реальности.
Весь спор только об этом. И, на мой взгляд, хаскелю второй подход удался очень неплохо, но я пока мог не наткнуться на что-то
кароче, я понял... человек увидел неудачу с ленивостью, не разобрался, обвинил во всем монады и из говномета поливает хороший язык. А какие-то конкретные аргументы привести или устроить проверку -не готов