Copyright | © Edward Kmett 2010-2014 Johan Kiviniemi 2013 |
---|---|
License | BSD3 |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Synopsis
- class Variable t where
- literally :: (HasSAT s, MonadState s m) => m Literal -> m t
- forall :: (Variable a, MonadState s m, HasQSAT s) => m a
- exists :: (Variable a, MonadState s m, HasSAT s) => m a
- class GVariable f where
- gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (f a)
- genericLiterally :: (HasSAT s, MonadState s m, Generic t, GVariable (Rep t)) => m Literal -> m t
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
.
Nothing
literally :: (HasSAT s, MonadState s m) => m Literal -> m t Source #
literally :: (HasSAT s, MonadState s m, Generic t, GVariable (Rep t)) => m Literal -> m t Source #
Instances
class GVariable f where Source #
gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (f a) Source #
Instances
GVariable (U1 :: Type -> Type) Source # | |
Defined in Ersatz.Variable gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (U1 a) Source # | |
Variable a => GVariable (K1 i a :: Type -> Type) Source # | |
Defined in Ersatz.Variable gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (K1 i a a0) Source # | |
(GVariable f, GVariable g) => GVariable (f :*: g) Source # | |
Defined in Ersatz.Variable gliterally :: (MonadState s m, HasSAT s) => m Literal -> m ((f :*: g) a) Source # | |
GVariable f => GVariable (M1 i c f) Source # | |
Defined in Ersatz.Variable gliterally :: (MonadState s m, HasSAT s) => m Literal -> m (M1 i c f a) Source # |
genericLiterally :: (HasSAT s, MonadState s m, Generic t, GVariable (Rep t)) => m Literal -> m t Source #