hasmtlib-2.3.2: A monad for interfacing with external SMT solvers
Safe HaskellSafe-Inferred
LanguageGHC2021

Language.Hasmtlib.Lens

Synopsis

Documentation

somePlate :: forall t f. (KnownSMTSort t, Applicative f) => (Expr t -> f (Expr t)) -> forall s. KnownSMTSort s => Expr s -> f (Expr s) Source #

Apply the plate-function f for given Expr expr if possible. Otherwise try to apply f for the children of expr. **Caution for quantified expressions:** 'plate-function' f will only be applied if quantification already has taken place.(&&) Therefore make sure quantify has been run before. Otherwise the quantified expression and therefore all it's sub-expressions will not have f applied.

Orphan instances

(KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k)) => Ixed (Expr ('ArraySort k v)) Source # 
Instance details

Methods

ix :: Index (Expr ('ArraySort k v)) -> Traversal' (Expr ('ArraySort k v)) (IxValue (Expr ('ArraySort k v))) #

Ixed (Expr 'StringSort) Source # 
Instance details

AsEmpty (Expr 'StringSort) Source # 
Instance details

Methods

_Empty :: Prism' (Expr 'StringSort) () #

KnownSMTSort t => Plated (Expr t) Source #
  • *Caution for quantified expressions:** 'plate-function' f will only be applied if quantification already has taken place.(&&) Therefore make sure quantify has been run before. Otherwise the quantified expression and therefore all it's sub-expressions will not have f applied.
Instance details

Methods

plate :: Traversal' (Expr t) (Expr t) #

Prefixed (Expr 'StringSort) Source # 
Instance details

Suffixed (Expr 'StringSort) Source # 
Instance details

Cons (Expr 'StringSort) (Expr 'StringSort) (Expr 'StringSort) (Expr 'StringSort) Source # 
Instance details

Snoc (Expr 'StringSort) (Expr 'StringSort) (Expr 'StringSort) (Expr 'StringSort) Source # 
Instance details