Примечание. Это ответ на вопрос в очень конкретном случае (вызов функций для жестко закодированных строк).
Это может показаться незначительной проблемой, поскольку функции преобразования существуют, как подробно описано в предыдущих ответах.
Но я хотел метод сокращения административного кода, то есть кода, который вы должны написать, просто чтобы заставить функции работать вместе.
Решением для сокращения кода обработки типов для строк является использование прагмы OverloadedStrings
и импорт соответствующих модулей
{-# LANGUAGE OverloadedStrings #-}
module Dummy where
import Data.ByteString.Lazy.Char8 (ByteString, append)
bslHandling :: ByteString -> ByteString
bslHandling = (append myWord8List)
myWord8List = "I look like a String, but I'm actually a ByteString"
Примечание. Тип myWordList определяется компилятором.
Если вы не используете его в bslHandling, то приведенное выше объявление приведет к классическому типу [Char]
.
Это не решает проблему перехода от одного определенного типа к другому
Надеюсь, это поможет