packages feed

mwc-probability-transition 0.3.0.3 → 0.4

raw patch · 3 files changed

+22/−6 lines, 3 filesdep +exceptionsPVP ok

version bump matches the API change (PVP)

Dependencies added: exceptions

API changes (from Hackage documentation)

+ System.Random.MWC.Probability.Transition: Alert :: Severity
+ System.Random.MWC.Probability.Transition: BatchingOptions :: Int -> Int -> Bool -> BatchingOptions
+ System.Random.MWC.Probability.Transition: Critical :: Severity
+ System.Random.MWC.Probability.Transition: Debug :: Severity
+ System.Random.MWC.Probability.Transition: Emergency :: Severity
+ System.Random.MWC.Probability.Transition: Error :: Severity
+ System.Random.MWC.Probability.Transition: Informational :: Severity
+ System.Random.MWC.Probability.Transition: Notice :: Severity
+ System.Random.MWC.Probability.Transition: Warning :: Severity
+ System.Random.MWC.Probability.Transition: WithSeverity :: Severity -> a -> WithSeverity a
+ System.Random.MWC.Probability.Transition: [blockWhenFull] :: BatchingOptions -> Bool
+ System.Random.MWC.Probability.Transition: [discardSeverity] :: WithSeverity a -> a
+ System.Random.MWC.Probability.Transition: [flushMaxDelay] :: BatchingOptions -> Int
+ System.Random.MWC.Probability.Transition: [flushMaxQueueSize] :: BatchingOptions -> Int
+ System.Random.MWC.Probability.Transition: [msgSeverity] :: WithSeverity a -> Severity
+ System.Random.MWC.Probability.Transition: data BatchingOptions :: *
+ System.Random.MWC.Probability.Transition: data Severity :: *
+ System.Random.MWC.Probability.Transition: data WithSeverity a :: * -> *
+ System.Random.MWC.Probability.Transition: defaultBatchingOptions :: BatchingOptions
+ System.Random.MWC.Probability.Transition: stderr :: Handle
+ System.Random.MWC.Probability.Transition: stdout :: Handle
+ System.Random.MWC.Probability.Transition: type Handler (m :: * -> *) message = message -> m ()
+ System.Random.MWC.Probability.Transition: withBatchedHandler :: (MonadIO io, MonadMask io) => BatchingOptions -> (NonEmpty message -> IO ()) -> (Handler io message -> io a) -> io a
+ System.Random.MWC.Probability.Transition: withFDHandler :: (MonadIO io, MonadMask io) => BatchingOptions -> Handle -> Double -> Int -> (Handler io Doc ann -> io a) -> io a
- System.Random.MWC.Probability.Transition: mkTransition :: Monad m => (s -> Prob m t) -> (s -> t -> (a, s)) -> (a -> s -> message) -> Transition message s m a
+ System.Random.MWC.Probability.Transition: mkTransition :: Monad m => (s -> Prob m t) -> (s -> t -> (a, s)) -> (s -> t -> a -> message) -> Transition message s m a

Files

mwc-probability-transition.cabal view
@@ -1,5 +1,5 @@ name:                mwc-probability-transition-version:             0.3.0.3+version:             0.4 synopsis:            A Markov stochastic transition operator with logging description:             .@@ -24,12 +24,16 @@   hs-source-dirs:      src   exposed-modules:     System.Random.MWC.Probability.Transition   build-depends:       base >= 4.7 && < 5+                     , exceptions                      , ghc-prim                      , logging-effect                      , mtl                      , mwc-probability                      , primitive                      , transformers+                     -- * DEBUG+                     , hspec+                     , QuickCheck                      test-suite spec   default-language:    Haskell2010
src/System/Random/MWC/Probability/Transition.hs view
@@ -13,13 +13,25 @@   , stepConditional   -- * Helper functions   , withSeverity+  -- * Re-exported from @logging-effect@+  -- ** Log message severity+  , L.WithSeverity(..), L.Severity(..)+  -- ** Handlers+  , L.Handler, L.withFDHandler+    -- ** Batched logging+  , L.BatchingOptions(..), L.defaultBatchingOptions, L.withBatchedHandler+  -- * Re-exported from @GHC.IO.Handle.FD@+  , stdout, stderr   ) where  import Control.Monad import Control.Monad.Primitive -import qualified Control.Monad.State as S+-- import Control.Monad.Catch (MonadMask(..))+import GHC.IO.Handle (Handle(..))+import GHC.IO.Handle.FD (stdout, stderr) +import qualified Control.Monad.State as S import Control.Monad.Trans.Class (MonadTrans(..), lift) import Control.Monad.Trans.State.Strict (StateT(..), runStateT) @@ -48,15 +60,15 @@ -- -- 3. a logging message is constructed, using @z@ and @x'@ as arguments. mkTransition :: Monad m =>-        (s -> Prob m t)     -- ^ Random generation+        (s -> Prob m t)     -- ^ Generation of random data      -> (s -> t -> (a, s))  -- ^ (Output, Next state)-     -> (a -> s -> message) -- ^ Log message construction+     -> (s -> t -> a -> message) -- ^ Log message construction using (Next state, current random data, Output)      -> Transition message s m a mkTransition fm fs flog = Transition $ \gen -> do   s <- S.get   w <- lift . lift $ sample (fm s) gen   let (a, s') = fs s w-  lift $ L.logMessage $ flog a s' +  lift $ L.logMessage $ flog s' w a    S.put s'   return a 
test/LibSpec.hs view
@@ -29,6 +29,6 @@ t01 = mkTransition modelf statef logf where   modelf _ = pure (1 :: Double)   statef s t = (t, s + 1)-  logf _ s = WithSeverity Informational (show s)+  logf s _ _ = WithSeverity Informational (show s)