ersatz-0.3: 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.Codec

Description

 

Synopsis

Documentation

class Codec a where Source

This class describes data types that can be marshaled to or from a SAT solver.

Associated Types

type Decoded a :: * Source

Methods

decode :: (Alternative f, MonadPlus f) => Solution -> a -> f (Decoded a) Source

Return a value based on the solution if one can be determined.

encode :: Decoded a -> a Source

Instances

Codec () 
Codec Literal 
Codec Bit 
Codec Bits 
Codec Bit8 
Codec Bit7 
Codec Bit6 
Codec Bit5 
Codec Bit4 
Codec Bit3 
Codec Bit2 
Codec Bit1 
Codec BitChar 
Codec a => Codec [a] 
Codec a => Codec (Maybe a) 
Codec a => Codec (IntMap a) 
Codec a => Codec (Tree a) 
Codec a => Codec (Seq a) 
(Codec a, Codec b) => Codec (Either a b) 
(Codec a, Codec b) => Codec (a, b) 
(Ix i, Codec e) => Codec (Array i e) 
Codec a => Codec (Map k a) 
Codec a => Codec (HashMap k a) 
(Codec a, Codec b, Codec c) => Codec (a, b, c) 
(Codec a, Codec b, Codec c, Codec d) => Codec (a, b, c, d) 
(Codec a, Codec b, Codec c, Codec d, Codec e) => Codec (a, b, c, d, e) 
(Codec a, Codec b, Codec c, Codec d, Codec e, Codec f) => Codec (a, b, c, d, e, f) 
(Codec a, Codec b, Codec c, Codec d, Codec e, Codec f, Codec g) => Codec (a, b, c, d, e, f, g) 
(Codec a, Codec b, Codec c, Codec d, Codec e, Codec f, Codec g, Codec h) => Codec (a, b, c, d, e, f, g, h)