diff --git a/Web/Route/Invertible/Monoid/Exactly.hs b/Web/Route/Invertible/Monoid/Exactly.hs
--- a/Web/Route/Invertible/Monoid/Exactly.hs
+++ b/Web/Route/Invertible/Monoid/Exactly.hs
@@ -1,5 +1,6 @@
 -- |
 -- A monoid that only admits a single value.
+{-# LANGUAGE CPP #-}
 module Web.Route.Invertible.Monoid.Exactly
   ( Exactly(..)
   , maybeToExactly
@@ -44,6 +45,9 @@
   Conflict >> _ = Conflict
   _ >> Conflict = Conflict
   _ >> _ = Blank
+#if MIN_VERSION_base(4,13,0)
+instance MonadFail Exactly where
+#endif
   fail _ = Conflict
 instance MonadPlus Exactly
 
diff --git a/web-inv-route.cabal b/web-inv-route.cabal
--- a/web-inv-route.cabal
+++ b/web-inv-route.cabal
@@ -1,5 +1,5 @@
 name:                web-inv-route
-version:             0.1.2.2
+version:             0.1.2.3
 synopsis:            Composable, reversible, efficient web routing using invertible invariants and bijections
 description:
   Utilities to route HTTP requests, mainly focused on path components.  Routes are specified using bijections and invariant functors, allowing run-time composition (routes can be distributed across modules), reverse and forward routing derived from the same specification, and O(log n) lookups.
