{-# OPTIONS_GHC -Wall -Werror #-}
module Data.SBV.Trans.Control (
     
       ExtractIO(..), MonadQuery(..), QueryT, Query, query
     
     , CheckSatResult(..), checkSat, ensureSat, checkSatUsing, checkSatAssuming, checkSatAssumingWithUnsatisfiableSet
     
     
     , getFunction, getUninterpretedValue, getModel, getAssignment, getSMTResult, getUnknownReason, getObservables
     
     , getUnsatCore
     
     , getProof
     
     , getInterpolantMathSAT, getInterpolantZ3
     
     , getAbduct, getAbductNext
     
     , getAssertions
     
     , SMTInfoFlag(..), SMTErrorBehavior(..), SMTInfoResponse(..)
     , getInfo, getOption
     
     , getAssertionStackDepth, push, pop, inNewAssertionStack
     
     , caseSplit
     
     , resetAssertions
     
     , (|->)
     
     , mkSMTResult
     , exit
     
     , ignoreExitCode, timeout
     
     , queryDebug
     , echo
     , io
     
     , SMTOption(..)
     ) where
import Data.SBV.Core.Symbolic (MonadQuery(..), QueryT, Query, SymbolicT, QueryContext(..))
import Data.SBV.Control.Query
import Data.SBV.Control.Utils (queryDebug, executeQuery, getFunction)
import Data.SBV.Utils.ExtractIO
query :: ExtractIO m => QueryT m a -> SymbolicT m a
query :: forall (m :: * -> *) a. ExtractIO m => QueryT m a -> SymbolicT m a
query = QueryContext -> QueryT m a -> SymbolicT m a
forall (m :: * -> *) a.
ExtractIO m =>
QueryContext -> QueryT m a -> SymbolicT m a
executeQuery QueryContext
QueryExternal