Haskell 如何使用REPA ByteString表示?

Haskell 如何使用REPA ByteString表示?,haskell,Haskell,我想使用从ByteString类型构建的REPA数组。我可以使用fromByteString函数创建一个数组,该函数的类型为array B sh Word8。但是,对于B类型数组,没有等效的computeS函数 最大的问题是,我希望在末尾使用ByteString类型,但函数toByteString需要Array B sh Word8类型,我无法创建该类型 感觉REPA中的bytestring模块没有完全实现。作为比较,向量模块提供计算向量,外来指针模块提供计算机。ByTestRing缺少一个等效

我想使用从
ByteString
类型构建的REPA数组。我可以使用
fromByteString
函数创建一个数组,该函数的类型为
array B sh Word8
。但是,对于
B
类型数组,没有等效的
computeS
函数

最大的问题是,我希望在末尾使用
ByteString
类型,但函数
toByteString
需要
Array B sh Word8
类型,我无法创建该类型


感觉REPA中的bytestring模块没有完全实现。作为比较,向量模块提供
计算向量
,外来指针模块提供
计算机
。ByTestRing缺少一个等效函数是有原因的吗?

我也看不出如何用repa生成
数组B
。它没有这方面的相关实例。你愿意吗

一个明显且最安全的解决方法是从延迟表示中提取一对
(Int,Int->Word8)
,并使用
unprovern
(我可以从bytestring的公共API中找到的最合适的函数)

ByteString
实际上是一个修饰的
ForeignPtr
,因此您可以使用
F
表示(它有一个
Target
实例),获取
ForeignPtr
并调用