{- | module: $Header$ description: Probability license: MIT maintainer: Joe Leslie-Hurd stability: provisional portability: portable -} module OpenTheory.List.Geometric where import qualified OpenTheory.Natural.Geometric as Geometric import qualified OpenTheory.Primitive.Random as Primitive.Random import qualified OpenTheory.Random as Random random :: (Primitive.Random.Random -> a) -> Primitive.Random.Random -> [a] random f r = let (r1, r2) = Primitive.Random.split r in Random.vector f (Geometric.random r1) r2