Мне нравятся сообщения об ошибках в Elm! Это похоже на второй уровень тестирования, который поможет вам оставаться на правильном пути. Я никогда не встречал другого языка с такими подробными и полезными сообщениями.

При изучении нового языка очень полезно, когда вам не нужно бороться, чтобы понять, что пошло не так, когда ваша программа не компилируется. Несколько раз с Python я хотел бросить компьютер, когда он говорил мне, что количество аргументов неверно (обычно я, потому что я забыл себя), но было бы неясно, слишком много или слишком мало аргументов. Вяз, с другой стороны, на самом деле разговаривает с вами как взрослый и пытается помочь вам в правильном направлении.

Detected errors in 1 module.
==================================== ERRORS ====================================
 — TYPE MISMATCH — — — — — — — — — — — — — — — — — — — — — — — — ./src/Board.elm
The type annotation for `update` does not match its definition.
20│ update : List Cell -> Player -> List Cell
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The type annotation is saying:
List Cell -> Player -> List Cell
But I am inferring that the definition has this type:
List Cell -> Int -> Player -> List Cell

Здесь я точно знаю, чего не хватает и что функция ожидала увидеть. Как будто язык хочет, чтобы вы преуспели!

И даже когда вы делаете что-то глупое, например, устанавливаете себе циклическую зависимость, Elm не будет придурком, он просто вежливо напомнит вам подумать о своем дизайне.

Спасибо, Элм!