Я на странице 118 книги "Учите вас в Haskell для большого блага!"
Здесь написано:
ghci> :t Nothing
Nothing :: Maybe a
Вот мой вопрос:
Если я правильно понимаю, Nothing
- значение, и только конкретные типы могут иметь значения, но Maybe a
не является конкретным типом. Итак, как он может иметь значение Nothing
?
В книге также говорится:
Обратите внимание, что тип Nothing - это, возможно, a. Его тип является полиморфным.
Что означает полиморфный тип? Как я должен это понимать? Разве это не противоречит правилу, что только конкретные типы могут иметь ценности?
EDIT:
Из PDF-версии книги:
Мы говорим, что тип конкретный, если он не принимает никаких параметров типа (например, Int или Bool), или если он принимает параметры типа, и они все заполнено (например, Maybe Char). Если у вас есть какое-то значение, его тип всегда конкретный тип.