ersatz-0.4.9: A monad for expressing SAT or QSAT problems using observable sharing.
Copyright© Edward Kmett 2010-2014 Johan Kiviniemi 2013
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ersatz.Variable

Description

 
Synopsis

Documentation

class Variable t where Source #

Instances for this class for product-like types can be automatically derived for any type that is an instance of Generic.

Minimal complete definition

Nothing

Methods

literally :: MonadSAT s m => m Literal -> m t Source #

default literally :: (MonadSAT s m, Generic t, GVariable (Rep t)) => m Literal -> m t Source #

Instances

Instances details
Variable Literal Source # 
Instance details

Defined in Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> m Literal Source #

Variable Bit Source # 
Instance details

Defined in Ersatz.Bit

Methods

literally :: MonadSAT s m => m Literal -> m Bit Source #

Variable Bit8 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit8 Source #

Variable Bit7 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit7 Source #

Variable Bit6 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit6 Source #

Variable Bit5 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit5 Source #

Variable Bit4 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit4 Source #

Variable Bit3 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit3 Source #

Variable Bit2 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit2 Source #

Variable Bit1 Source # 
Instance details

Defined in Ersatz.Bits

Methods

literally :: MonadSAT s m => m Literal -> m Bit1 Source #

Variable BitChar Source # 
Instance details

Defined in Ersatz.BitChar

Methods

literally :: MonadSAT s m => m Literal -> m BitChar Source #

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

Defined in Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> m (a, b) Source #

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

Defined in Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> m (a, b, c) Source #

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

Defined in Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> 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 Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> 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 Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> 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 Ersatz.Variable

Methods

literally :: MonadSAT s m => m Literal -> m (a, b, c, d, e, f, g) Source #

forall :: (Variable a, MonadQSAT s m) => m a Source #

exists :: (Variable a, MonadSAT s m) => m a Source #

class GVariable f where Source #

Methods

gliterally :: MonadSAT s m => m Literal -> m (f a) Source #

Instances

Instances details
GVariable (U1 :: Type -> Type) Source # 
Instance details

Defined in Ersatz.Variable

Methods

gliterally :: MonadSAT s m => m Literal -> m (U1 a) Source #

Variable a => GVariable (K1 i a :: Type -> Type) Source # 
Instance details

Defined in Ersatz.Variable

Methods

gliterally :: MonadSAT s m => m Literal -> m (K1 i a a0) Source #

(GVariable f, GVariable g) => GVariable (f :*: g) Source # 
Instance details

Defined in Ersatz.Variable

Methods

gliterally :: MonadSAT s m => m Literal -> m ((f :*: g) a) Source #

GVariable f => GVariable (M1 i c f) Source # 
Instance details

Defined in Ersatz.Variable

Methods

gliterally :: MonadSAT s m => m Literal -> m (M1 i c f a) Source #