import Data.Foldable import Data.Stochastic import Data.Stochastic.Internal import Data.Stochastic.Types import Data.Stochastic.Chart import qualified Data.Sequence as S import System.Random import Graphics.Rendering.Chart.Backend.Cairo import Graphics.Rendering.Chart.Easy contrivedGambler :: Bool -> Sampler Double contrivedGambler b = if b then normal 100 20 else normal (-100) 10 fairCoin :: Sampler Bool fairCoin = bernoulli 0.5 gamblerWithCoin :: Sampler Double gamblerWithCoin = fairCoin >>= contrivedGambler main = do gen <- newStdGen let winnings = sampleN 100000 gamblerWithCoin gen renderableToFile def "contrived.png" $ toRenderable $ histogram "Contrived Gambler" $ toList winnings