liquid-fixpoint-0.7.0.2: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver

Safe HaskellNone
LanguageHaskell98

Language.Fixpoint.Types.Visitor

Contents

Synopsis

Visitor

data Visitor acc ctx Source #

Constructors

Visitor 

Fields

  • ctxExpr :: ctx -> Expr -> ctx

    Context ctx is built in a "top-down" fashion; not "across" siblings

  • txExpr :: ctx -> Expr -> Expr

    Transforms can access current ctx

  • accExpr :: ctx -> Expr -> acc

    Accumulations can access current ctx; acc value is monoidal

class Visitable t where Source #

Minimal complete definition

visit

Methods

visit :: Monoid a => Visitor a c -> c -> t -> VisitM a t Source #

Instances

Visitable SortedReft Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> SortedReft -> VisitM a SortedReft Source #

Visitable Reft Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> Reft -> VisitM a Reft Source #

Visitable Expr Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> Expr -> VisitM a Expr Source #

Visitable BindEnv Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> BindEnv -> VisitM a BindEnv Source #

Visitable (SimpC a) Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> SimpC a -> VisitM a (SimpC a) Source #

Visitable (SubC a) Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> SubC a -> VisitM a (SubC a) Source #

Visitable (Symbol, SortedReft) Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> (Symbol, SortedReft) -> VisitM a (Symbol, SortedReft) Source #

Visitable (c a) => Visitable (GInfo c a) Source # 

Methods

visit :: Monoid a => Visitor a c -> c -> GInfo c a -> VisitM a (GInfo c a) Source #

Extracting Symbolic Constants (String Literals)

class SymConsts a where Source #

String Constants -----------------------------------------

Minimal complete definition

symConsts

Methods

symConsts :: a -> [SymConst] Source #

Default Visitor

Transformers

trans :: (Visitable t, Monoid a) => Visitor a ctx -> ctx -> a -> t -> t Source #

Accumulators

fold :: (Visitable t, Monoid a) => Visitor a ctx -> ctx -> a -> t -> a Source #

Clients

stripCasts :: Visitable t => t -> t Source #

kvars :: Visitable t => t -> [KVar] Source #

eapps :: Visitable t => t -> [Expr] Source #

envKVars :: TaggedC c a => BindEnv -> c a -> [KVar] Source #

envKVarsN :: TaggedC c a => BindEnv -> c a -> [(KVar, Int)] Source #

rhsKVars :: TaggedC c a => c a -> [KVar] Source #

mapKVars :: Visitable t => (KVar -> Maybe Expr) -> t -> t Source #

mapKVars' :: Visitable t => ((KVar, Subst) -> Maybe Expr) -> t -> t Source #

mapGVars' :: Visitable t => ((KVar, Subst) -> Maybe Expr) -> t -> t Source #

mapKVarSubsts :: Visitable t => (KVar -> Subst -> Subst) -> t -> t Source #

mapExpr :: (Expr -> Expr) -> Expr -> Expr Source #

mapMExpr :: Monad m => (Expr -> m Expr) -> Expr -> m Expr Source #

Predicates on Constraints

isConcC :: TaggedC c a => c a -> Bool Source #

isKvarC :: TaggedC c a => c a -> Bool Source #

Sorts

foldSort :: (a -> Sort -> a) -> a -> Sort -> a Source #

Visitors over Sort

mapSort :: (Sort -> Sort) -> Sort -> Sort Source #