diff --git a/ble.cabal b/ble.cabal
--- a/ble.cabal
+++ b/ble.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           ble
-version:        0.1.1.0
+version:        0.1.2.0
 synopsis:       Bluetooth Low Energy (BLE) peripherals
 description:    This package provides a Haskell API for writing Bluetooth Low Energy peripherals.
 stability:      alpha
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name:                ble
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            Bluetooth Low Energy (BLE) peripherals
 description:         >
     This package provides a Haskell API for writing Bluetooth Low Energy
diff --git a/src/Bluetooth.hs b/src/Bluetooth.hs
--- a/src/Bluetooth.hs
+++ b/src/Bluetooth.hs
@@ -106,6 +106,7 @@
   , ThrowsNotAuthorized(..)
   , ThrowsNotSupported(..)
   , ThrowsInvalidValueLength(..)
+  , IsElem
 
   -- * Re-exports
   , module Lens.Micro
diff --git a/src/Bluetooth/Internal/Errors.hs b/src/Bluetooth/Internal/Errors.hs
--- a/src/Bluetooth/Internal/Errors.hs
+++ b/src/Bluetooth/Internal/Errors.hs
@@ -34,6 +34,13 @@
   -- NOT MonadError!
   deriving (Functor, Applicative, Monad, MonadIO)
 
+-- | Asserts that an error type is an element of a list.
+--
+-- > example :: ThrowsFailed `IsElem` errs => Handler errs ()
+-- > example
+-- >  = errFailed "Every attempt is a wholly new start, and a different kind of failure"
+--
+-- @since 0.1.2.0
 type family IsElem (x :: k) (list :: [k]) :: Constraint where
   IsElem x (x ': xs) = ()
   IsElem x (y ': xs) = IsElem x xs
