diff --git a/Network/IRC/Client/Internal/Types.hs b/Network/IRC/Client/Internal/Types.hs
--- a/Network/IRC/Client/Internal/Types.hs
+++ b/Network/IRC/Client/Internal/Types.hs
@@ -18,8 +18,10 @@
 -- of this library.
 module Network.IRC.Client.Internal.Types where
 
+import Control.Applicative (Alternative)
 import Control.Concurrent (ThreadId)
 import Control.Concurrent.STM (TVar, atomically, readTVar, writeTVar)
+import Control.Monad (MonadPlus)
 import Control.Monad.Catch (Exception, MonadThrow, MonadCatch, MonadMask, SomeException)
 import Control.Monad.IO.Class (MonadIO, liftIO)
 import Control.Monad.Reader (MonadReader, ReaderT, asks)
@@ -38,7 +40,7 @@
 
 -- | The IRC monad.
 newtype IRC s a = IRC { runIRC :: ReaderT (IRCState s) IO a }
-  deriving (Functor, Applicative, Monad, MonadIO, MonadReader (IRCState s), MonadThrow, MonadCatch, MonadMask)
+  deriving (Functor, Applicative, Alternative, Monad, MonadPlus, MonadIO, MonadReader (IRCState s), MonadThrow, MonadCatch, MonadMask)
 
 instance MonadState s (IRC s) where
   state f = do
diff --git a/irc-client.cabal b/irc-client.cabal
--- a/irc-client.cabal
+++ b/irc-client.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             1.0.0.1
+version:             1.0.1.0
 
 -- A short (one-line) description of the package.
 synopsis:            An IRC client library.
@@ -122,4 +122,4 @@
 source-repository this
   type:     git
   location: https://github.com/barrucadu/irc-client.git
-  tag:      1.0.0.1
+  tag:      1.0.1.0
