将GHC.Int.Int64转换为Int

DJG*_*DJG 6 haskell

我试图生成一个ByteStringByteString我已经拥有的懒惰相同长度的随机懒惰.

所以我把它的长度ByteString和它getEntropy一样喂它:

import qualified Data.ByteString.Lazy.Char8 as L
import qualified System.Entropy as SE

string :: L.ByteString
string = L.pack "Hello world!"

randomString :: IO L.ByteString
randomString = L.fromChunks . (:[]) <$> SE.getEntropy (L.length string)
Run Code Online (Sandbox Code Playgroud)

(L.fromChunks . (:[])用于从严格ByteString转换为惰性转换.)

问题是,SE.getEntropy是类型Int -> IO ByteString,而L.length为型L.ByteString -> GHC.Int.Int64.

我如何将其转换Int64Int

Zet*_*eta 10

您可以使用以下任意Integral类型将其转换为其他Num类型fromIntegral

fromInt64ToInt :: Int64 -> Int
fromInt64ToInt = fromIntegral
Run Code Online (Sandbox Code Playgroud)