summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeianStefan <>2019-09-27 03:00:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2019-09-27 03:00:00 (GMT)
commitda62e8335faef02ae6f3ff99c7c977929e44c483 (patch)
treea8571527b86bf7efd8b02b12cd7f3688d44e2775
parent9d1ee7aae9359b71a1ae3fd5241ae4321033e342 (diff)
version 0.0.0.90.0.0.9
-rw-r--r--boolector.cabal6
-rw-r--r--src/Boolector.hs3
2 files changed, 6 insertions, 3 deletions
diff --git a/boolector.cabal b/boolector.cabal
index bd96c72..020c819 100644
--- a/boolector.cabal
+++ b/boolector.cabal
@@ -1,5 +1,5 @@
name: boolector
-version: 0.0.0.8
+version: 0.0.0.9
synopsis: Haskell bindings for the Boolector SMT solver
description:
@@ -12,7 +12,7 @@ description:
license: MIT
license-file: LICENSE
-author: Dein Stefan, Johannes Waldmann, Armin Biere
+author: Deian Stefan, Johannes Waldmann, Armin Biere
maintainer: Deian Stefan <deian@cs.ucsd.edu>
category: Math, SMT, Theorem Provers, Formal Methods, Bit vectors
build-type: Simple
@@ -37,6 +37,8 @@ library
temporary,
directory,
time
+ if impl(ghc < 8.0)
+ build-depends: fail == 4.9.0.0
ghc-options: -Wall -fno-warn-orphans
build-tools: c2hs
diff --git a/src/Boolector.hs b/src/Boolector.hs
index 70016ed..4fd642a 100644
--- a/src/Boolector.hs
+++ b/src/Boolector.hs
@@ -238,6 +238,7 @@ module Boolector ( -- * Boolector monadic computations
import Boolector.Foreign (Option(..), Status(..))
import qualified Boolector.Foreign as B
+import qualified Control.Monad.Fail as Fail
import Data.Char (isDigit)
import Data.Maybe (listToMaybe)
import Data.Map (Map)
@@ -278,7 +279,7 @@ data BoolectorState = BoolectorState { unBoolectorState :: B.Btor
-- | Bolector monad, keeping track of underlying solver state.
newtype Boolector a = Boolector { unBoolector :: StateT BoolectorState IO a }
- deriving (Functor, Applicative, Monad, MonadState BoolectorState, MonadIO)
+ deriving (Functor, Applicative, Monad, MonadState BoolectorState, MonadIO, Fail.MonadFail)
-- | Evaluate a Boolector action with a given configurations.
evalBoolector :: BoolectorState -> Boolector a -> IO a