Safe Haskell | Safe |
---|---|
Language | Haskell98 |
- data Expr t c b
- data BoolExpr t c b
- data ColExpr t c b
- transform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> Expr a c e -> Expr b d f
- colTransform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> ColExpr a c e -> ColExpr b d f
- boolTransform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> BoolExpr a c e -> BoolExpr b d f
- transformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> Expr a c e -> Expr b d f
- colTransformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> ColExpr a c e -> ColExpr b d f
- boolTransformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> BoolExpr a c e -> BoolExpr b d f
- property :: (a -> Bool) -> (b -> Bool) -> (c -> Bool) -> Expr a b c -> Bool
- colProperty :: (a -> Bool) -> (b -> Bool) -> (c -> Bool) -> ColExpr a b c -> Bool
- boolProperty :: (a -> Bool) -> (b -> Bool) -> (c -> Bool) -> BoolExpr a b c -> Bool
- propertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> Expr a b c -> Bool
- colPropertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> ColExpr a b c -> Bool
- boolPropertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> BoolExpr a b c -> Bool
- collapse :: (Eq t, Eq c, Eq b) => Expr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> Expr t c b
- colCollapse :: (Eq t, Eq c, Eq b) => ColExpr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> ColExpr t c b
- boolCollapse :: (Eq t, Eq c, Eq b) => BoolExpr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> BoolExpr t c b
- simplify :: (Eq s, Eq c, Eq b) => Expr s c b -> Expr s c b
- colSimplify :: (Eq s, Eq c, Eq b) => ColExpr s c b -> ColExpr s c b
- boolSimplify :: (Eq s, Eq c, Eq b) => BoolExpr s c b -> BoolExpr s c b
- data WalkPhase
- data WalkResult
- walk :: (Eq t, Eq c, Eq b, Monad m) => Expr t c b -> (Expr t c b -> WalkPhase -> m WalkResult, ColExpr t c b -> WalkPhase -> m WalkResult, BoolExpr t c b -> WalkPhase -> m WalkResult) -> m ()
- colWalk :: (Monad m, Eq b, Eq c, Eq t) => ColExpr t c b -> (Expr t c b -> WalkPhase -> m WalkResult, ColExpr t c b -> WalkPhase -> m WalkResult, BoolExpr t c b -> WalkPhase -> m WalkResult) -> m ()
- boolWalk :: (Monad m, Eq b, Eq c, Eq t) => BoolExpr t c b -> (Expr t c b -> WalkPhase -> m WalkResult, ColExpr t c b -> WalkPhase -> m WalkResult, BoolExpr t c b -> WalkPhase -> m WalkResult) -> m ()
Documentation
Data types | --
ModelTermType ModelInt Source # | |
(Eq b, Eq a, Eq t) => ToColExpr t a b [Expr t a b] Source # | |
(Eq t, Eq c, Eq b) => ExprRange t c b (Expr t c b, Expr t c b) Source # | |
(Eq t, Eq c, Eq b) => ExprClass t c b (Expr t c b) Source # | relational operators/functions | -- |
(Eq t, Eq a, Eq b) => ToColExpr t a b (Expr t a b) Source # | |
ToExpr t a b (Expr t a b) Source # | |
FDSolver s => Term (FDInstance s) ModelInt Source # | |
(FDSolver s, EnumTerm s (FDIntTerm s)) => EnumTerm (FDInstance s) ModelInt Source # | |
Eq (EGPar -> EGPar) # | |
Ord (EGPar -> EGPar) # | |
Show (EGPar -> EGPar) # | |
(Eq t, Eq c, Eq b) => Eq (Expr t c b) Source # | |
(Ord s, Ord c, Ord b) => Ord (Expr s c b) Source # | |
(Show t, Show c, Show b) => Show (Expr t c b) Source # | |
type Help (FDInstance s) ModelInt Source # | |
type TermBaseType (FDInstance s) ModelInt Source # | |
ModelTermType ModelBool Source # | |
(Eq t, Eq c, Eq b) => ExprClass t c b (BoolExpr t c b) Source # | |
ToBoolExpr t a b (BoolExpr t a b) Source # | |
(Eq t, Eq a, Eq b) => ToExpr t a b (BoolExpr t a b) Source # | |
FDSolver s => Term (FDInstance s) ModelBool Source # | |
(FDSolver s, EnumTerm s (FDBoolTerm s)) => EnumTerm (FDInstance s) ModelBool Source # | |
(Eq t, Eq c, Eq b) => Eq (BoolExpr t c b) Source # | |
(Ord s, Ord c, Ord b) => Ord (BoolExpr s c b) Source # | |
(Show t, Show c, Show b) => Show (BoolExpr t c b) Source # | |
type Help (FDInstance s) ModelBool Source # | |
type TermBaseType (FDInstance s) ModelBool Source # | |
ModelTermType ModelCol Source # | |
(Eq t, Eq c, Eq b) => ExprRange t c b (ColExpr t c b) Source # | |
(Eq t, Eq c, Eq b) => ExprClass t c b (ColExpr t c b) Source # | |
ToColExpr t a b (ColExpr t a b) Source # | |
FDSolver s => Term (FDInstance s) ModelCol Source # | |
(Eq t, Eq c, Eq b) => Eq (ColExpr t c b) Source # | |
(Ord s, Ord c, Ord b) => Ord (ColExpr s c b) Source # | |
(Show t, Show c, Show b) => Show (ColExpr t c b) Source # | |
type Help (FDInstance s) ModelCol Source # | |
transform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> Expr a c e -> Expr b d f Source #
Transform expressions over one type to expressions over another | --
colTransform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> ColExpr a c e -> ColExpr b d f Source #
boolTransform :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> b, c -> d, e -> f, b -> a, d -> c, f -> e) -> BoolExpr a c e -> BoolExpr b d f Source #
transformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> Expr a c e -> Expr b d f Source #
colTransformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> ColExpr a c e -> ColExpr b d f Source #
boolTransformEx :: (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => (a -> Expr b d f, c -> ColExpr b d f, e -> BoolExpr b d f, b -> Expr a c e, d -> ColExpr a c e, f -> BoolExpr a c e) -> BoolExpr a c e -> BoolExpr b d f Source #
propertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> Expr a b c -> Bool Source #
Check whether an expression is possibly referring to terms with a given property | --
colPropertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> ColExpr a b c -> Bool Source #
boolPropertyEx :: (Expr a b c -> Maybe Bool, ColExpr a b c -> Maybe Bool, BoolExpr a b c -> Maybe Bool) -> BoolExpr a b c -> Bool Source #
collapse :: (Eq t, Eq c, Eq b) => Expr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> Expr t c b Source #
Turn expressions over expressions into simply expressions | --
colCollapse :: (Eq t, Eq c, Eq b) => ColExpr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> ColExpr t c b Source #
boolCollapse :: (Eq t, Eq c, Eq b) => BoolExpr (Expr t c b) (ColExpr t c b) (BoolExpr t c b) -> BoolExpr t c b Source #
walk through expressions
data WalkResult Source #
walk :: (Eq t, Eq c, Eq b, Monad m) => Expr t c b -> (Expr t c b -> WalkPhase -> m WalkResult, ColExpr t c b -> WalkPhase -> m WalkResult, BoolExpr t c b -> WalkPhase -> m WalkResult) -> m () Source #