declarative

DIY Markov Chains
Log | Files | Refs | README | LICENSE

commit 6ab413d748616ae48e0ddaf659f5e2728c7d3424
parent 5cf45e0185bb03557f3b3219e074f1ab868385fb
Author: Jared Tobin <jared@jtobin.ca>
Date:   Tue, 20 Dec 2016 07:23:20 +1300

Generalize base monad.

Diffstat:
MCHANGELOG | 6+++++-
Mdeclarative.cabal | 2+-
Mlib/Numeric/MCMC.hs | 11++++++-----
Mstack-travis.yaml | 2+-
Mstack.yaml | 2+-
5 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG @@ -1,6 +1,10 @@ # Changelog +- 0.4.0 (2016-12-20) + * Generalize base monad requirement to something matching both MonadIO and + PrimState. + - 0.3.4 (2016-12-04) - * Add missing dependency bounds. + * Add missing dependency bounds. diff --git a/declarative.cabal b/declarative.cabal @@ -1,5 +1,5 @@ name: declarative -version: 0.3.4 +version: 0.4.0 synopsis: DIY Markov Chains. homepage: http://github.com/jtobin/declarative license: MIT diff --git a/lib/Numeric/MCMC.hs b/lib/Numeric/MCMC.hs @@ -87,6 +87,7 @@ module Numeric.MCMC ( , RealWorld ) where +import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Primitive (PrimMonad, PrimState, RealWorld) import Control.Monad.Trans.State.Strict (execStateT) import Data.Sampling.Types @@ -152,17 +153,17 @@ frequency xs = lift (MWC.uniformR (1, tot)) >>= (`pick` xs) where -- 1.4541485365128892e-2,-0.4859905564050404 -- 0.22487398491619448,-0.29769783186855125 mcmc - :: Show (t a) + :: (MonadIO m, PrimMonad m, Show (t a)) => Int -> t a - -> Transition IO (Chain (t a) b) + -> Transition m (Chain (t a) b) -> Target (t a) - -> Gen RealWorld - -> IO () + -> Gen (PrimState m) + -> m () mcmc n chainPosition transition chainTarget gen = runEffect $ chain transition Chain {..} gen >-> Pipes.take n - >-> Pipes.mapM_ print + >-> Pipes.mapM_ (liftIO . print) where chainScore = lTarget chainTarget chainPosition chainTunables = Nothing diff --git a/stack-travis.yaml b/stack-travis.yaml @@ -2,7 +2,7 @@ flags: {} packages: - '.' extra-deps: [] -resolver: lts-7.11 +resolver: lts-7.14 compiler: ghc-8.0.1 system-ghc: false install-ghc: true diff --git a/stack.yaml b/stack.yaml @@ -1,4 +1,4 @@ -resolver: lts-7.11 +resolver: lts-7.14 packages: ['.'] extra-deps: [] flags: {}