Skip to content

Commit 7573784

Browse files
committed
Implement modifyGen and ThawedGen for random-1.3 compatibility
1 parent 03214a9 commit 7573784

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

System/Random/MWC.hs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,17 @@ instance (s ~ PrimState m, PrimMonad m) => Random.StatefulGen (Gen s) m where
471471
-- | @since 0.15.0.0
472472
instance PrimMonad m => Random.FrozenGen Seed m where
473473
type MutableGen Seed m = Gen (PrimState m)
474-
thawGen = restore
475474
freezeGen = save
475+
#if MIN_VERSION_random(1,3,0)
476+
modifyGen gen@(Gen mv) f = do
477+
seed <- save gen
478+
case f seed of
479+
(a, Seed v) -> a <$ G.copy mv v
480+
overwriteGen (Gen mv) (Seed v) = G.copy mv v
481+
482+
instance PrimMonad m => Random.ThawedGen Seed m where
483+
#endif
484+
thawGen = restore
476485

477486
-- | Convert vector to 'Seed'. It acts similarly to 'initialize' and
478487
-- will accept any vector. If you want to pass seed immediately to

0 commit comments

Comments
 (0)