module Stochastic.Generators.Discrete where import Stochastic.Tools class DiscreteSample g where rand :: g -> (Int, g) entropy :: g -> Int rands :: Int -> g -> ([Int], g) rands n g0 = statefully (rand) n g0 toList :: g -> [Int] toList g = fst $ rands (entropy g) g