Импортируйте семейство типов, являющееся оператором в Haskell - PullRequest
4 голосов
/ 25 октября 2019

GHC.TypeNats экспортирует семейство типов следующей подписи:

type family (m :: Nat) + (n :: Nat) :: Nat 

Как я могу импортировать это явно? import GHC.TypeNats((+)) не работает, потому что говорит, что GHC.TypeNats не экспортирует (+) ...

Все компилируется нормально, когда я неявно импортирую весь модуль, но это действительно не то, что я хочу иметь вмой код


Я использую GHC 8.6.5

1 Ответ

6 голосов
/ 25 октября 2019

С руководство :

В списках импорта и экспорта появилась потенциальная неоднозначность;например, если вы пишете import M( (+) ) вы имеете в виду функцию (+) или конструктор типа (+)? По умолчанию используется первое, но с ExplicitNamespaces (что подразумевается TypeOperators) GHC позволяет вам указать второе, предшествуя ему с типом ключевого слова, таким образом:

import M( type (+) )
...