尽管Haskell社区的普遍观点似乎是总是使用Text
代替总是更好String
,但是大多数可维护库的API仍然是面向的这一事实使String
我感到困惑。另一方面,有一些值得注意的项目,这些项目将全部视为String
错误,并且提供了Prelude
-String
面向功能的所有实例都替换为Text
-counterparts的实例。
因此,String
除了向后兼容和标准的Prelude兼容以及“切换机制”之外,人们是否有理由继续编写面向对象的API?与之Text
相比,是否还有其他缺点String
?
特别是,我对此很感兴趣,因为我正在设计一个库并试图决定使用哪种类型来表达错误消息。