Не удается применить выражение типа к видимому аргументу типа при использовании Data.Proxy?

В одном из моих модулей, где у меня есть выражение let:

let persist = mkCassEntityPersist (Proxy @SxRecord) cassCliSt

Это дает ошибку:

    • Cannot apply expression of type ‘t1’
      to a visible type argument ‘SxRecord’
    • In the first argument of ‘mkCassEntityPersist’, namely
        ‘(Proxy @SxRecord)’
      In the expression: mkCassEntityPersist (Proxy @SxRecord) cassCliSt
      In an equation for ‘persist’:
          persist = mkCassEntityPersist (Proxy @SxRecord) cassCliSt
   |
43 |   let persist = mkCassEntityPersist (Proxy @SxRecord) cassCliSt
   |                                      ^^^^^^^^^^^^^^^

Тем не менее, в другом модуле с подмножеством расширений языка GHC, использованным в первом, я вполне могу это сделать:

recTypeRep :: TypeRep
recTypeRep = typeRep $ Proxy @SxRecord

Есть ли способ решить проблему? Смысл сообщения об ошибке мне пока не так понятен.

Всего 1 ответ


В этом конкретном случае import Data.Proxy был забыт.


Есть идеи?

10000