ersatz-0.4: 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
LanguageHaskell2010

Ersatz.Variable

Description

 

Synopsis

Documentation

class Variable t where #

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

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m t #

literally :: (HasSAT s, MonadState s m, Generic t, GVariable (Rep t)) => m Literal -> m t #

Instances

Variable Literal # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Literal #

Variable Bit # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit #

Variable Bit8 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit8 #

Variable Bit7 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit7 #

Variable Bit6 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit6 #

Variable Bit5 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit5 #

Variable Bit4 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit4 #

Variable Bit3 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit3 #

Variable Bit2 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit2 #

Variable Bit1 # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m Bit1 #

Variable BitChar # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m BitChar #

(Variable a, Variable b) => Variable (a, b) # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m (a, b) #

(Variable a, Variable b, Variable c) => Variable (a, b, c) # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m (a, b, c) #

(Variable a, Variable b, Variable c, Variable d) => Variable (a, b, c, d) # 

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m (a, b, c, d) #

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

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m (a, b, c, d, e) #

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

Methods

literally :: (HasSAT s, MonadState s m) => m Literal -> m (a, b, c, d, e, f) #

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

Methods

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

forall :: (Variable a, MonadState s m, HasQSAT s) => m a #

exists :: (Variable a, MonadState s m, HasSAT s) => m a #

class GVariable f where #

Minimal complete definition

gliterally

Methods

gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (f a) #

Instances

GVariable U1 # 

Methods

gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (U1 a) #

Variable a => GVariable (K1 i a) # 

Methods

gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (K1 i a a) #

(GVariable f, GVariable g) => GVariable ((:*:) f g) # 

Methods

gliterally :: (MonadState s m, HasSAT s) => m Literal -> m ((f :*: g) a) #

GVariable f => GVariable (M1 i c f) # 

Methods

gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (M1 i c f a) #