Haskell gsl random-如何指定RNGType?

Haskell gsl random-如何指定RNGType?,haskell,random,gsl,Haskell,Random,Gsl,我正在尝试使用GSL random将GSL绑定到haskell中工作的分发采样器。我知道随机fu是一种更高级的选择,但我发现随机fu对于我来说太慢了 假设我想从beta发行版中取样。基于黑客文档的类型规范为: getBeta :: RNG -> Double -> Double -> IO Double 我需要一个RNG对象,它来自MkRNG newRNG :: RNGType -> IO RNG 如何指定RNGType λ> :i RNGType

我正在尝试使用GSL random将GSL绑定到haskell中工作的分发采样器。我知道随机fu是一种更高级的选择,但我发现随机fu对于我来说太慢了

假设我想从beta发行版中取样。基于黑客文档的类型规范为:

   getBeta :: RNG -> Double -> Double -> IO Double
我需要一个RNG对象,它来自MkRNG

   newRNG :: RNGType -> IO RNG
如何指定RNGType

λ> :i RNGType
newtype RNGType
  = gsl-random-0.5.0:GSL.Random.Gen.Internal.MkRNGType (GHC.Ptr.Ptr
                                                          ())
    -- Defined in ‘gsl-random-0.5.0:GSL.Random.Gen.Internal’

这就是我被困的地方。我不明白如何基于此实例化RNGType对象。

您必须使用
GSL.Random.Gen
模块中的函数
mt19937
RNGType
来构建
RNGType
,由于
RNGType
的实现是此库内部的。

您是否尝试过
GSL.Random.Gen.mt19937
GSL.Random.Gen.RNGType
?这两个函数都返回一个
RNGType
。这是可行的,如果你把它作为答案发布,我会接受它