В то время как общее мнение сообщества Haskell похоже, что всегда лучше использовать Text
вместо String
, тот факт, что все еще API-интерфейсы большинства поддерживаемых библиотек String
-ориентирован, путает ад меня. С другой стороны, существуют заметные проекты, которые рассматривают String
как ошибку в целом и обеспечивают Prelude
со всеми экземплярами String
-ориентированных функций, замененных с их Text
-конвертерами.
Итак, есть ли какие-то причины для того, чтобы люди продолжали писать String
-ориентированные API-интерфейсы, кроме обратной и стандартной совместимости с Prelude и "intertia-switch-making intertia"?
Существуют ли какие-либо другие недостатки для Text
по сравнению с String
?
В частности, меня это интересует, потому что я разрабатываю библиотеку и пытаюсь решить, какой тип использовать для выражения сообщений об ошибках.