| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell98 |
Language.Fixpoint.Types.Visitor
Synopsis
- data Folder acc ctx = Visitor {}
- class Foldable t where
- class Visitable t where
- class SymConsts a where
- defaultFolder :: Monoid acc => Folder acc ctx
- trans :: Visitable t => (Expr -> Expr) -> t -> t
- fold :: (Foldable t, Monoid a) => Folder a ctx -> ctx -> a -> t -> a
- stripCasts :: Expr -> Expr
- kvarsExpr :: ExprV v -> [KVar]
- eapps :: Foldable t => t -> [Expr]
- size :: Foldable t => t -> Integer
- lamSize :: Foldable t => t -> Integer
- envKVars :: TaggedC c a => BindEnv a -> c a -> [KVar]
- envKVarsN :: TaggedC c a => BindEnv a -> c a -> [(KVar, Int)]
- rhsKVars :: TaggedC c a => c a -> [KVar]
- mapKVars :: Visitable t => (KVar -> Maybe Expr) -> t -> t
- mapKVars' :: Visitable t => ((KVar, Subst) -> Maybe Expr) -> t -> t
- mapGVars' :: Visitable t => ((KVar, Subst) -> Maybe Expr) -> t -> t
- mapKVarSubsts :: Visitable t => (KVar -> Subst -> Subst) -> t -> t
- mapExpr :: Visitable t => (Expr -> Expr) -> t -> t
- mapExprOnExpr :: (Expr -> Expr) -> Expr -> Expr
- mapMExpr :: Monad m => (Expr -> m Expr) -> Expr -> m Expr
- type CoSub = HashMap Symbol Sort
- applyCoSub :: CoSub -> Expr -> Expr
- type CoSubV = HashMap Sort Sort
- applyCoSubV :: CoSubV -> Expr -> Expr
- isConcC :: TaggedC c a => c a -> Bool
- isConc :: Expr -> Bool
- isKvarC :: TaggedC c a => c a -> Bool
- foldSort :: (a -> Sort -> a) -> a -> Sort -> a
- mapSort :: (Sort -> Sort) -> Sort -> Sort
- foldDataDecl :: (a -> Sort -> a) -> a -> DataDecl -> a
Visitor
class Foldable t where Source #
Instances
| Foldable Pred Source # | |
| Foldable AxiomEnv Source # | |
| Foldable Equation Source # | |
| Foldable Rewrite Source # | |
| Foldable Expr Source # | |
| Foldable Reft Source # | |
| Foldable SortedReft Source # | |
Defined in Language.Fixpoint.Types.Visitor Methods foldE :: Monoid a => Folder a c -> c -> SortedReft -> FoldM a SortedReft Source # | |
| Foldable (Cstr a) Source # | |
| Foldable (SimpC a) Source # | |
| Foldable (SubC a) Source # | |
| Foldable (BindEnv a) Source # | |
| Foldable (c a) => Foldable (GInfo c a) Source # | |
| Foldable (Symbol, SortedReft, a) Source # | |
Defined in Language.Fixpoint.Types.Visitor Methods foldE :: Monoid a0 => Folder a0 c -> c -> (Symbol, SortedReft, a) -> FoldM a0 (Symbol, SortedReft, a) Source # | |
class Visitable t where Source #
Instances
| Visitable AxiomEnv Source # | |
| Visitable Equation Source # | |
| Visitable Rewrite Source # | |
| Visitable Expr Source # | |
| Visitable Reft Source # | |
| Visitable SortedReft Source # | |
Defined in Language.Fixpoint.Types.Visitor Methods transE :: (Expr -> Expr) -> SortedReft -> SortedReft Source # | |
| Visitable (SimpC a) Source # | |
| Visitable (SubC a) Source # | |
| Visitable (BindEnv a) Source # | |
| Visitable (c a) => Visitable (GInfo c a) Source # | |
| Visitable (Symbol, SortedReft, a) Source # | |
Defined in Language.Fixpoint.Types.Visitor Methods transE :: (Expr -> Expr) -> (Symbol, SortedReft, a) -> (Symbol, SortedReft, a) Source # | |
Extracting Symbolic Constants (String Literals)
class SymConsts a where Source #
String Constants -----------------------------------------
Instances
| SymConsts AxiomEnv Source # | |
| SymConsts Equation Source # | |
| SymConsts Rewrite Source # | |
| SymConsts Expr Source # | |
| SymConsts Reft Source # | |
| SymConsts SortedReft Source # | |
Defined in Language.Fixpoint.Types.Visitor Methods symConsts :: SortedReft -> [SymConst] Source # | |
| SymConsts (SimpC a) Source # | |
| SymConsts (SubC a) Source # | |
| SymConsts (BindEnv a) Source # | |
| SymConsts a => SymConsts [a] Source # | |
Defined in Language.Fixpoint.Types.Visitor | |
| SymConsts (c a) => SymConsts (GInfo c a) Source # | |
Default Visitor
defaultFolder :: Monoid acc => Folder acc ctx Source #
Transformers
Accumulators
Clients
stripCasts :: Expr -> Expr Source #
mapExprOnExpr :: (Expr -> Expr) -> Expr -> Expr Source #
Specialized and faster version of mapExpr for expressions
Coercion Substitutions
type CoSub = HashMap Symbol Sort Source #
CoSub is a map from (coercion) ty-vars represented as 'FObj s'
to the ty-vars that they should be substituted with. Note the
domain and range are both Symbol and not the Int used for real ty-vars.
Predicates on Constraints
Sorts
foldDataDecl :: (a -> Sort -> a) -> a -> DataDecl -> a Source #