无法将预期类型`Data.ByteString.Internal.ByteString'与实际类型`ByteString'匹配

时间:2013-12-22 20:47:55

标签: haskell bytestring

运行以下代码:

import Crypto.BCrypt
import Data.ByteString.Lazy.Char8

main = do
  maybe_pwhash <- hashPasswordUsingPolicy slowerBcryptHashingPolicy (pack "hunter2")
  print $ maybe_pwhash

我收到以下编译错误:

test.hs:5:70:
    Couldn't match expected type `Data.ByteString.Internal.ByteString'
                with actual type `ByteString'
    In the return type of a call of `pack'
    In the second argument of `hashPasswordUsingPolicy', namely
      `(C.pack "hunter2")'
    In a stmt of a 'do' block:
      maybe_pwhash <- hashPasswordUsingPolicy
                        slowerBcryptHashingPolicy (pack "hunter2")

我很困惑,因为我不明白为什么Data.ByteString.Internal.ByteStringByteString之间存在差异。

1 个答案:

答案 0 :(得分:9)

根据bcrypt docs,你应该使用严格的字节串

import Data.ByteString.Char8

而不是懒惰的:

import Data.ByteString.Lazy.Char8