Почему не может GHCi решать отчасти [[]]?

Почему Haskell не может решить отчасти [[]] (Список списков)?
Почему это не просто *-> *, поскольку я могу дать ему тип как Интервал и добраться [[Интервал]], который является видом *.

6
задан Squidly 8 June 2010 в 04:45
поделиться

1 ответ

Я думаю, что это то же самое, что и с Может быть, , хотя в последнем случае причина, возможно, более ясна: конструктор "внешнего" типа ожидает передачи тип типа * , но видит конструктор типа типа * -> * («внутренний» Maybe / []) и жалуется. Если я прав, это проблема не в функциональности : kind GHCi, а скорее в поиске правильного синтаксиса для выражения состава конструкторов типов более высокого порядка.

В качестве обходного пути можно использовать что-то вроде

:kind forall a. [[a]]
:kind forall a. Maybe (Maybe a)

(при включенном соответствующем расширении языка - ExistentialQuantification , я думаю - для включения синтаксиса forall ).

8
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: