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