diff --git a/presburger.cabal b/presburger.cabal
--- a/presburger.cabal
+++ b/presburger.cabal
@@ -1,5 +1,5 @@
 Name:           presburger
-Version:        1.2
+Version:        1.3
 License:        BSD3
 License-file:   LICENSE
 Author:         Iavor S. Diatchki
diff --git a/src/Data/Integer/SAT.hs b/src/Data/Integer/SAT.hs
--- a/src/Data/Integer/SAT.hs
+++ b/src/Data/Integer/SAT.hs
@@ -47,7 +47,7 @@
 import qualified Data.Map as Map
 import           Data.List(partition)
 import           Data.Maybe(maybeToList,fromMaybe,mapMaybe)
-import           Control.Applicative(Applicative(..), (<$>))
+import           Control.Applicative(Applicative(..), Alternative(..), (<$>))
 import           Control.Monad(liftM,ap,MonadPlus(..),guard)
 import           Text.PrettyPrint
 
@@ -710,6 +710,10 @@
   One a >>= k        = k a
   Choice m1 m2 >>= k = mplus (m1 >>= k) (m2 >>= k)
 
+instance Alternative Answer where
+  empty = mzero
+  (<|>) = mplus
+
 instance MonadPlus Answer where
   mzero                = None
   mplus None x         = x
@@ -733,6 +737,10 @@
   S m >>= k     = S $ \s -> do (a,s1) <- m s
                                let S m1 = k a
                                m1 s1
+
+instance Alternative S where
+  empty = mzero
+  (<|>) = mplus
 
 instance MonadPlus S where
   mzero               = S $ \_ -> mzero
