Running the following code:
import Crypto.BCrypt
import Data.ByteString.Lazy.Char8
main = do
maybe_pwhash <- hashPasswordUsingPolicy slowerBcryptHashingPolicy (pack "hunter2")
print $ maybe_pwhash
I get the following compilation error:
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")
I am confused because I don't see why there is a difference between a Data.ByteString.Internal.ByteString
and a ByteString
.
Strict
,ByteString.Char8
vsByteString
, etc) and the haskellwiki article on that seems to be just a stub. Any explanations on that would be much appreciated. – CorditeByteString
s: lazy and strict. If the module name is not qualified withLazy
, then it uses strictByteString
. A lazyByteString
is essentially a linked list of strictByteString
. – Ralph