monadiccp-0.7.7: Constraint Programming

Safe HaskellSafe
LanguageHaskell98

Data.Expr.Data

Synopsis

Documentation

data Expr t c b Source #

Data types | --

Constructors

Term t 
ExprHole Int 
Const Integer 
Plus (Expr t c b) (Expr t c b) 
Minus (Expr t c b) (Expr t c b) 
Mult (Expr t c b) (Expr t c b) 
Div (Expr t c b) (Expr t c b) 
Mod (Expr t c b) (Expr t c b) 
Abs (Expr t c b) 
At (ColExpr t c b) (Expr t c b) 
Fold (Expr t c b -> Expr t c b -> Expr t c b) (Expr t c b) (ColExpr t c b) 
Cond (BoolExpr t c b) (Expr t c b) (Expr t c b) 
ColSize (ColExpr t c b) 
Channel (BoolExpr t c b) 

Instances

ModelTermType ModelInt Source # 
(Eq b, Eq a, Eq t) => ToColExpr t a b [Expr t a b] Source # 

Methods

toColExpr :: [Expr t a b] -> ColExpr t a b Source #

(Eq t, Eq c, Eq b) => ExprRange t c b (Expr t c b, Expr t c b) Source # 

Methods

(@:) :: Expr t c b -> (Expr t c b, Expr t c b) -> BoolExpr t c b Source #

(Eq t, Eq c, Eq b) => ExprClass t c b (Expr t c b) Source #

relational operators/functions | --

Methods

(@=) :: Expr t c b -> Expr t c b -> BoolExpr t c b Source #

(@/=) :: Expr t c b -> Expr t c b -> BoolExpr t c b Source #

(Eq t, Eq a, Eq b) => ToColExpr t a b (Expr t a b) Source # 

Methods

toColExpr :: Expr t a b -> ColExpr t a b Source #

ToExpr t a b (Expr t a b) Source # 

Methods

toExpr :: Expr t a b -> Expr t a b Source #

FDSolver s => Term (FDInstance s) ModelInt Source # 

Associated Types

type Help (FDInstance s :: * -> *) ModelInt :: * Source #

(FDSolver s, EnumTerm s (FDIntTerm s)) => EnumTerm (FDInstance s) ModelInt Source # 
Eq (EGPar -> EGPar) # 

Methods

(==) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

(/=) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

Ord (EGPar -> EGPar) # 

Methods

compare :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Ordering #

(<) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

(<=) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

(>) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

(>=) :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> Bool #

max :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> EGPar -> EGPar #

min :: (EGPar -> EGPar) -> (EGPar -> EGPar) -> EGPar -> EGPar #

Show (EGPar -> EGPar) # 

Methods

showsPrec :: Int -> (EGPar -> EGPar) -> ShowS #

show :: (EGPar -> EGPar) -> String #

showList :: [EGPar -> EGPar] -> ShowS #

(Eq t, Eq c, Eq b) => Eq (Expr t c b) Source # 

Methods

(==) :: Expr t c b -> Expr t c b -> Bool #

(/=) :: Expr t c b -> Expr t c b -> Bool #

(Ord s, Ord c, Ord b) => Ord (Expr s c b) Source # 

Methods

compare :: Expr s c b -> Expr s c b -> Ordering #

(<) :: Expr s c b -> Expr s c b -> Bool #

(<=) :: Expr s c b -> Expr s c b -> Bool #

(>) :: Expr s c b -> Expr s c b -> Bool #

(>=) :: Expr s c b -> Expr s c b -> Bool #

max :: Expr s c b -> Expr s c b -> Expr s c b #

min :: Expr s c b -> Expr s c b -> Expr s c b #

(Show t, Show c, Show b) => Show (Expr t c b) Source # 

Methods

showsPrec :: Int -> Expr t c b -> ShowS #

show :: Expr t c b -> String #

showList :: [Expr t c b] -> ShowS #

type Help (FDInstance s) ModelInt Source # 
type Help (FDInstance s) ModelInt = ()
type TermBaseType (FDInstance s) ModelInt Source # 

data ColExpr t c b Source #

Constructors

ColTerm c 
ColList [Expr t c b] 
ColRange (Expr t c b) (Expr t c b) 
ColMap (Expr t c b -> Expr t c b) (ColExpr t c b) 
ColSlice (Expr t c b -> Expr t c b) (Expr t c b) (ColExpr t c b) 
ColCat (ColExpr t c b) (ColExpr t c b) 

Instances

ModelTermType ModelCol Source # 
(Eq t, Eq c, Eq b) => ExprRange t c b (ColExpr t c b) Source # 

Methods

(@:) :: Expr t c b -> ColExpr t c b -> BoolExpr t c b Source #

(Eq t, Eq c, Eq b) => ExprClass t c b (ColExpr t c b) Source # 

Methods

(@=) :: ColExpr t c b -> ColExpr t c b -> BoolExpr t c b Source #

(@/=) :: ColExpr t c b -> ColExpr t c b -> BoolExpr t c b Source #

ToColExpr t a b (ColExpr t a b) Source # 

Methods

toColExpr :: ColExpr t a b -> ColExpr t a b Source #

FDSolver s => Term (FDInstance s) ModelCol Source # 

Associated Types

type Help (FDInstance s :: * -> *) ModelCol :: * Source #

(Eq t, Eq c, Eq b) => Eq (ColExpr t c b) Source # 

Methods

(==) :: ColExpr t c b -> ColExpr t c b -> Bool #

(/=) :: ColExpr t c b -> ColExpr t c b -> Bool #

(Ord s, Ord c, Ord b) => Ord (ColExpr s c b) Source # 

Methods

compare :: ColExpr s c b -> ColExpr s c b -> Ordering #

(<) :: ColExpr s c b -> ColExpr s c b -> Bool #

(<=) :: ColExpr s c b -> ColExpr s c b -> Bool #

(>) :: ColExpr s c b -> ColExpr s c b -> Bool #

(>=) :: ColExpr s c b -> ColExpr s c b -> Bool #

max :: ColExpr s c b -> ColExpr s c b -> ColExpr s c b #

min :: ColExpr s c b -> ColExpr s c b -> ColExpr s c b #

(Show t, Show c, Show b) => Show (ColExpr t c b) Source # 

Methods

showsPrec :: Int -> ColExpr t c b -> ShowS #

show :: ColExpr t c b -> String #

showList :: [ColExpr t c b] -> ShowS #

type Help (FDInstance s) ModelCol Source # 
type Help (FDInstance s) ModelCol = ()

data BoolExpr t c b Source #

Constructors

BoolTerm b 
BoolConst Bool 
BoolAnd (BoolExpr t c b) (BoolExpr t c b) 
BoolOr (BoolExpr t c b) (BoolExpr t c b) 
BoolNot (BoolExpr t c b) 
BoolCond (BoolExpr t c b) (BoolExpr t c b) (BoolExpr t c b) 
Rel (Expr t c b) ExprRel (Expr t c b) 
BoolAll (Expr t c b -> BoolExpr t c b) (ColExpr t c b) 
BoolAny (Expr t c b -> BoolExpr t c b) (ColExpr t c b) 
ColEqual (ColExpr t c b) (ColExpr t c b) 
BoolEqual (BoolExpr t c b) (BoolExpr t c b) 
AllDiff Bool (ColExpr t c b) 
Sorted Bool (ColExpr t c b) 
Dom (Expr t c b) (ColExpr t c b) 

Instances

ModelTermType ModelBool Source # 
(Eq t, Eq c, Eq b) => ExprClass t c b (BoolExpr t c b) Source # 

Methods

(@=) :: BoolExpr t c b -> BoolExpr t c b -> BoolExpr t c b Source #

(@/=) :: BoolExpr t c b -> BoolExpr t c b -> BoolExpr t c b Source #

ToBoolExpr t a b (BoolExpr t a b) Source # 

Methods

toBoolExpr :: BoolExpr t a b -> BoolExpr t a b Source #

(Eq t, Eq a, Eq b) => ToExpr t a b (BoolExpr t a b) Source # 

Methods

toExpr :: BoolExpr t a b -> Expr t a b Source #

FDSolver s => Term (FDInstance s) ModelBool Source # 

Associated Types

type Help (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 # 

Methods

(==) :: BoolExpr t c b -> BoolExpr t c b -> Bool #

(/=) :: BoolExpr t c b -> BoolExpr t c b -> Bool #

(Ord s, Ord c, Ord b) => Ord (BoolExpr s c b) Source # 

Methods

compare :: BoolExpr s c b -> BoolExpr s c b -> Ordering #

(<) :: BoolExpr s c b -> BoolExpr s c b -> Bool #

(<=) :: BoolExpr s c b -> BoolExpr s c b -> Bool #

(>) :: BoolExpr s c b -> BoolExpr s c b -> Bool #

(>=) :: BoolExpr s c b -> BoolExpr s c b -> Bool #

max :: BoolExpr s c b -> BoolExpr s c b -> BoolExpr s c b #

min :: BoolExpr s c b -> BoolExpr s c b -> BoolExpr s c b #

(Show t, Show c, Show b) => Show (BoolExpr t c b) Source # 

Methods

showsPrec :: Int -> BoolExpr t c b -> ShowS #

show :: BoolExpr t c b -> String #

showList :: [BoolExpr t c b] -> ShowS #

type Help (FDInstance s) ModelBool Source # 
type Help (FDInstance s) ModelBool = ()
type TermBaseType (FDInstance s) ModelBool Source # 

(<<>>) :: Ordering -> Ordering -> Ordering infixr 4 Source #

ExprKey: Provides ordering over expressions | --