Safe Haskell | None |
---|---|
Language | Haskell98 |
Documentation
newtype Backend b => SMT b a Source
Backend b => Monad (SMT b) Source | |
Backend b => Functor (SMT b) Source | |
Backend b => Applicative (SMT b) Source | |
(Backend b, MonadIO (SMTMonad b)) => MonadIO (SMT b) Source | |
(Backend b, (~) (Type -> *) e (Expr b)) => Embed (SMT b) e Source | |
Backend b => MonadState (SMTState b) (SMT b) Source | |
type EmVar (SMT b) e = Var b Source | |
type EmQVar (SMT b) e = QVar b Source | |
type EmFun (SMT b) e = Fun b Source | |
type EmConstr (SMT b) e = Constr b Source | |
type EmField (SMT b) e = Field b Source | |
type EmFunArg (SMT b) e = FunArg b Source | |
type EmLVar (SMT b) e = LVar b Source |
Backend b => MonadState (SMTState b) (SMT b) Source |
DTProxy :: IsDatatype dt => DTProxy dt |
type DatatypeInfo con field = DMap DTProxy (RegisteredDT con field) Source
newtype RegisteredDT con field dt Source
RegisteredDT (BackendDatatype con field `(DatatypeSig dt, dt)`) |
emptyDatatypeInfo :: DatatypeInfo con field Source
reproxyDT :: IsDatatype dt => Proxy dt -> DTProxy dt Source
registerDatatype :: (Backend b, IsDatatype dt) => Proxy dt -> SMT b () Source
lookupDatatype :: DTProxy dt -> DatatypeInfo con field -> BackendDatatype con field `(DatatypeSig dt, dt)` Source
lookupConstructor :: String -> BackendDatatype con field `(DatatypeSig dt, dt)` -> (forall arg. BackendConstr con field `(arg, dt)` -> a) -> a Source
constructDatatype :: GEq con => con `(arg, ret)` -> List ConcreteValue arg -> BackendDatatype con field `(cons, ret)` -> ret Source
lookupField :: String -> BackendConstr con field `(arg, dt)` -> (forall tp. BackendField field dt tp -> a) -> a Source
lookupDatatypeCon :: (IsDatatype dt, Typeable con, Typeable field) => DTProxy dt -> String -> DatatypeInfo con field -> (forall arg. BackendConstr con field `(arg, dt)` -> a) -> a Source
lookupDatatypeField :: (IsDatatype dt, Typeable con, Typeable field) => DTProxy dt -> String -> String -> DatatypeInfo con field -> (forall tp. BackendField field dt tp -> a) -> a Source