hasmtlib-2.1.0: A monad for interfacing with external SMT solvers
Safe HaskellSafe-Inferred
LanguageGHC2021

Language.Hasmtlib.Variable

Synopsis

Documentation

class Variable a where Source #

Construct a variable datum of a data-type by creating variables for all its fields.

   data V3 a = V3 a a a
   instance Variable a => V3 a
>>> varV3 <- variable @(V3 (Expr RealType)) ; varV3
    V3 (Var RealType) (Var RealType) (Var RealType)

Minimal complete definition

Nothing

Methods

variable :: MonadSMT s m => m a Source #

default variable :: (MonadSMT s m, Applicative f, Traversable f, Variable b, a ~ f b) => m a Source #

Instances

Instances details
Variable () Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m () Source #

KnownSMTSort t => Variable (Expr t) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (Expr t) Source #

Variable a => Variable (Maybe a) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (Maybe a) Source #

Variable b => Variable (Either a b) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (Either a b) Source #

(Variable a, Variable b) => Variable (a, b) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b) Source #

(Variable a, Variable b, Variable c) => Variable (a, b, c) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c) Source #

(Variable a, Variable b, Variable c, Variable d) => Variable (a, b, c, d) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c, d) Source #

(Variable a, Variable b, Variable c, Variable d, Variable e) => Variable (a, b, c, d, e) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c, d, e) Source #

(Variable a, Variable b, Variable c, Variable d, Variable e, Variable f) => Variable (a, b, c, d, e, f) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c, d, e, f) Source #

(Variable a, Variable b, Variable c, Variable d, Variable e, Variable f, Variable g) => Variable (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c, d, e, f, g) Source #

(Variable a, Variable b, Variable c, Variable d, Variable e, Variable f, Variable g, Variable h) => Variable (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Language.Hasmtlib.Variable

Methods

variable :: MonadSMT s m => m (a, b, c, d, e, f, g, h) Source #

variable' :: forall s m a. (MonadSMT s m, Variable a) => Proxy a -> m a Source #

Wrapper for variable which takes a Proxy