2015-01-02 4 views
2

У меня есть переменная ByteString. Я хочу посмотреть, к какому пакету он принадлежит. Это может быть полезно для типов ByteString, поскольку в разных пакетах существует несколько различных реализаций.Показать полный размер ghci

Например, я следующий кусок кода:

import qualified Data.ByteString.Lazy.Char8 as BSL 
json :: String 
json = "{\"document\":{\"name\":\"doc1\",\"content\":\"content1\"}}" 

Я хочу, чтобы получить полный пакет, когда я ghci> :t BSL.pack json. Я получаю BSL.pack json :: ByteString, а я хочу что-то вроде BSL.pack json :: Data.ByteString.Lazy.Char8. Есть ли способ получить такую ​​информацию в командной строке ghci?

ответ

2

GHCi должен использовать тот же синтаксис, который вы можете использовать в своем файле. То есть, если вы импортируете Data.ByteString.Lazy.Char8, вы получите недействительный ByteString, иначе вы должны получить квалифицированный тип.

Проверьте все свои импортные товары в файле Haskell: что-то импортирует тип ByteString в безусловном порядке?

Как вы можете видеть ниже, я не могу воспроизвести проблему в небольшой сессии GHCi:

> import qualified Data.ByteString.Lazy.Char8 as BSL 
> let a :: String ; a = "aa" 
> :t BSL.pack a 
BSL.pack a :: BSL.ByteString 
Смежные вопросы