Итак, я анализирую некоторый JSON в пользовательский тип данных с помощью aeson, и я не могу понять, почему Haskell нужно иметь два представления определенных типов в библиотеке. В моем случае это все связано с текстом.
Например:
Couldn't match expected type `Data.ByteString.Internal.ByteString'
with actual type `B.ByteString'.
Эм, что? Чем эти двое не одинаковы? Почему Data.ByteString.ByteString
и Data.ByteString.Internal.ByteString
? Я не понимаю, почему эти два являются двумя разными типами и почему мне нужно конвертировать их между собой.
Есть ли где-нибудь руководство, посвященное использованию ByteStrings? Я понимаю, что они намного эффективнее, чем String
, если вы имеете дело только с ASCII.