тут x имеет тип Int, но вернуть нужно 'a', явная ошибка типов. Это тайпчекается только из-за того, что хаскель делает неявную коерсию из Int в 'a', которая в корке уже вполне явная
я бы сказал, что так судить нельзя по очень простой причине. В жс разные поддерживаемые им типы ведут себя по разному, на уровне синтаксиса. При этом они так хорошо забоксены, что успешно притворяются другими типами, опять же, на уровне языка.