diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+0.8 :
+
+- add `exceptions` dependency
+- add MonadThrow (GenT m) instance
+
 0.7 :
 
 - add sampleIO, samplesIO
diff --git a/splitmix-distributions.cabal b/splitmix-distributions.cabal
--- a/splitmix-distributions.cabal
+++ b/splitmix-distributions.cabal
@@ -1,5 +1,5 @@
 name:           splitmix-distributions
-version:        0.7.0.0
+version:        0.8.0.0
 description:    Random samplers for some common distributions, as well as a convenient interface for composing them, based on splitmix. Please see the README on GitHub at <https://github.com/ocramz/splitmix-distributions#readme>
 homepage:       https://github.com/ocramz/splitmix-distributions#readme
 bug-reports:    https://github.com/ocramz/splitmix-distributions/issues
@@ -30,6 +30,7 @@
                     base >=4.7 && <5
                   , containers >= 0.6.2.1
                   , erf
+                  , exceptions
                   , mtl
                   , splitmix
                   , transformers
diff --git a/src/System/Random/SplitMix/Distributions.hs b/src/System/Random/SplitMix/Distributions.hs
--- a/src/System/Random/SplitMix/Distributions.hs
+++ b/src/System/Random/SplitMix/Distributions.hs
@@ -77,6 +77,8 @@
 import qualified Data.IntMap as IM
 -- erf
 import Data.Number.Erf (InvErf(..))
+-- exceptions
+import Control.Monad.Catch (MonadThrow(..))
 -- mtl
 import Control.Monad.Trans.Class (MonadTrans(..))
 import Control.Monad.State (MonadState(..), modify)
@@ -90,7 +92,7 @@
 -- wraps 'splitmix' state-passing inside a 'StateT' monad
 --
 -- useful for embedding random generation inside a larger effect stack
-newtype GenT m a = GenT { unGen :: StateT SMGen m a } deriving (Functor, Applicative, Monad, MonadState SMGen, MonadTrans, MonadIO)
+newtype GenT m a = GenT { unGen :: StateT SMGen m a } deriving (Functor, Applicative, Monad, MonadState SMGen, MonadTrans, MonadIO, MonadThrow)
 
 -- | Pure random generation
 type Gen = GenT Identity
