LINUX.ORG.RU

[Haskell] Методы решение проблемы двусмысленных переменных типа

 


0

2

Доброго времени суток.

В большинстве случаев, данная проблема решалась без каких-либо неприятностей по средством подписывания типа, но при работе с mongoDB это приходится делать очень часто для одного из операторов:

(=:) :: Val v => Label -> v -> Field
foo = "aoeu" =: "aeou"
foo' = "aoeu" =: ("aeou" :: String)
при перегруженных строковых литералах.

Другой способ (сейчас практикую), создание функции с более жёстким типов (в данном случае с типом, а именно:

(=::) :: Label -> String -> Field
(=::) = (=:)
что не кажется очень хорошей идеей. Есть другие пути?

Ответ на: комментарий от KblCb

и прописывать преобразования типов руками, повсеместно.

ryukzak
() автор топика

Очень даже нормальный способ. Компилятор проглотит и заинлайнит по-всякому, не парься.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.