Я не уверен, есть ли конструктор данных по умолчанию, но приведенный выше код компилируется.
Почему выше допустимый Haskell, так как я явно не указал конструктор значений?
Ответ 1
У вас есть конструктор данных - it Int. Имена типов живут в отдельном пространстве имен от конструкторов данных, поэтому вы не получаете ошибку, даже если существует тип, также называемый Int.