Haskell Raaz加密库中randomByteString的类型转换

Haskell Raaz加密库中randomByteString的类型转换,haskell,Haskell,我试图使用加密库中的randomByteString。在这段代码中面临一些类型转换的问题 str=randomByteString(42::ALIGN) 在这里,此代码返回类型为RT mem ByteString的str,如何将其类型转换为ByteString?randomByteString函数需要一个长度参数,该参数是多态的,并生成一个必须使用安全地或不安全地运行的一元结果。把这些放在一起,记住给出显式类型,这样我们就不会产生歧义: securely (randomByteString (

我试图使用加密库中的randomByteString。在这段代码中面临一些类型转换的问题


str=randomByteString(42::ALIGN)


在这里,此代码返回类型为
RT mem ByteString
str
,如何将其类型转换为
ByteString

randomByteString
函数需要一个长度参数,该参数是多态的,并生成一个必须使用
安全地
不安全地
运行的一元结果。把这些放在一起,记住给出显式类型,这样我们就不会产生歧义:

securely (randomByteString (10 :: BYTES Int) :: RandM ByteString)

在完整的程序中,通常不需要这些额外的类型签名,因为它们自然会出现在函数签名中,可以推断,或者在程序中以类型字段的形式出现。

这是一个单子。您是否尝试过安全地使用
,或者,如果您愿意,尝试过不安全地使用
。例如,
securestr::IO ByteString
。我从这个链接尝试了这个(
str::IO ByteString;str=secured$randomByteString(42::ALIGN)
),但它给出了一个error@MaheshUligade既然这回答了你的问题,就接受这个答案。要接受答案,请单击答案旁边的空心复选标记。有关更多详细信息,请参阅。