Copyright  (c) Ewaryst Schulz DFKI Bremen 2010 

License  GPLv2 or higher, see LICENSE.txt 
Maintainer  ewaryst.schulz@dfki.de 
Stability  experimental 
Portability  portable 
Safe Haskell  Safe 
This module defines a basic datatype for treelike partial orderings such as encountered, e.g., in the set lattice.
Synopsis
 data Incomparable
 data SetOrdering
 = Comparable Ordering
  Incomparable Incomparable
 data InfDev
 newtype CIType a = CIType (a, InfDev)
 data SetOrInterval a
 data ClosedInterval a = ClosedInterval a a
 data InfInt
 class Continuous a
 class Discrete a where
 cmpClosedInts :: Ord a => ClosedInterval a > ClosedInterval a > SetOrdering
 membSoID :: (Discrete a, Ord a) => a > SetOrInterval a > Bool
 nullSoID :: (Discrete a, Ord a) => SetOrInterval a > Bool
 toSingularD :: (Discrete a, Ord a) => SetOrInterval a > Maybe a
 setToClosedIntD :: (Discrete a, Ord a) => SetOrInterval a > ClosedInterval a
 cmpSoIsD :: (Discrete a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering
 cmpSoIsExD :: (Discrete a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering
 membSoI :: Ord a => a > SetOrInterval a > Bool
 nullSoI :: (Continuous a, Ord a) => SetOrInterval a > Bool
 toSingular :: (Continuous a, Ord a) => SetOrInterval a > Maybe a
 setToClosedInt :: Ord a => SetOrInterval a > ClosedInterval (CIType a)
 cmpSoIs :: (Continuous a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering
 cmpSoIsEx :: Ord a => SetOrInterval a > SetOrInterval a > SetOrdering
 swapCompare :: Ordering > Ordering
 swapCmp :: SetOrdering > SetOrdering
 combineCmp :: SetOrdering > SetOrdering > SetOrdering
Documentation
data Incomparable Source #
Instances
Eq Incomparable Source #  
Defined in CSL.TreePO (==) :: Incomparable > Incomparable > Bool (/=) :: Incomparable > Incomparable > Bool  
Data Incomparable Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > Incomparable > c Incomparable gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c Incomparable toConstr :: Incomparable > Constr dataTypeOf :: Incomparable > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c Incomparable) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c Incomparable) gmapT :: (forall b. Data b => b > b) > Incomparable > Incomparable gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > Incomparable > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > Incomparable > r gmapQ :: (forall d. Data d => d > u) > Incomparable > [u] gmapQi :: Int > (forall d. Data d => d > u) > Incomparable > u gmapM :: Monad m => (forall d. Data d => d > m d) > Incomparable > m Incomparable gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > Incomparable > m Incomparable gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > Incomparable > m Incomparable  
Show Incomparable Source #  
Defined in CSL.TreePO showsPrec :: Int > Incomparable > ShowS show :: Incomparable > String showList :: [Incomparable] > ShowS  
Generic Incomparable  
Defined in CSL.ATC_CSL type Rep Incomparable :: Type > Type from :: Incomparable > Rep Incomparable x to :: Rep Incomparable x > Incomparable  
FromJSON Incomparable  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser Incomparable parseJSONList :: Value > Parser [Incomparable]  
ToJSON Incomparable  
Defined in CSL.ATC_CSL toJSON :: Incomparable > Value toEncoding :: Incomparable > Encoding toJSONList :: [Incomparable] > Value toEncodingList :: [Incomparable] > Encoding  
ShATermConvertible Incomparable  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > Incomparable > IO (ATermTable, Int) toShATermList' :: ATermTable > [Incomparable] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, Incomparable) fromShATermList' :: Int > ATermTable > (ATermTable, [Incomparable])  
type Rep Incomparable  
Defined in CSL.ATC_CSL type Rep Incomparable = D1 ('MetaData "Incomparable" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "Disjoint" 'PrefixI 'False) (U1 :: Type > Type) :+: C1 ('MetaCons "Overlap" 'PrefixI 'False) (U1 :: Type > Type)) 
data SetOrdering Source #
Comparable Ordering  
Incomparable Incomparable 
Instances
Eq SetOrdering Source #  
Defined in CSL.TreePO (==) :: SetOrdering > SetOrdering > Bool (/=) :: SetOrdering > SetOrdering > Bool  
Data SetOrdering Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > SetOrdering > c SetOrdering gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c SetOrdering toConstr :: SetOrdering > Constr dataTypeOf :: SetOrdering > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c SetOrdering) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c SetOrdering) gmapT :: (forall b. Data b => b > b) > SetOrdering > SetOrdering gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > SetOrdering > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > SetOrdering > r gmapQ :: (forall d. Data d => d > u) > SetOrdering > [u] gmapQi :: Int > (forall d. Data d => d > u) > SetOrdering > u gmapM :: Monad m => (forall d. Data d => d > m d) > SetOrdering > m SetOrdering gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > SetOrdering > m SetOrdering gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > SetOrdering > m SetOrdering  
Show SetOrdering Source #  
Defined in CSL.TreePO showsPrec :: Int > SetOrdering > ShowS show :: SetOrdering > String showList :: [SetOrdering] > ShowS  
Generic SetOrdering  
Defined in CSL.ATC_CSL type Rep SetOrdering :: Type > Type from :: SetOrdering > Rep SetOrdering x to :: Rep SetOrdering x > SetOrdering  
FromJSON SetOrdering  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser SetOrdering parseJSONList :: Value > Parser [SetOrdering]  
ToJSON SetOrdering  
Defined in CSL.ATC_CSL toJSON :: SetOrdering > Value toEncoding :: SetOrdering > Encoding toJSONList :: [SetOrdering] > Value toEncodingList :: [SetOrdering] > Encoding  
ShATermConvertible SetOrdering  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > SetOrdering > IO (ATermTable, Int) toShATermList' :: ATermTable > [SetOrdering] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, SetOrdering) fromShATermList' :: Int > ATermTable > (ATermTable, [SetOrdering])  
type Rep SetOrdering  
Defined in CSL.ATC_CSL type Rep SetOrdering = D1 ('MetaData "SetOrdering" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "Comparable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ordering)) :+: C1 ('MetaCons "Incomparable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Incomparable))) 
We represent Intervals with opened or closed end points over a linearly
ordered type a
as closed intervals over the type '(a, InfDev)', for
infinitesimal deviation.
 '(x, EpsLeft)' means an epsilon to the left of x
 '(x, Zero)' means x
 '(x, EpsRight)' means an epsilon to the right of x
We have EpsLeft < Zero < EpsRight and the ordering of a
lifts to the
lexicographical ordering of '(a, InfDev)' which captures well our intended
meaning.
We inject the type a
into the type '(a, InfDev)'
by mapping x
to '(x, Zero)'.
The mapping of intrvals is as follows:
A left opened interval starting at x becomes a left closed interval starting
at '(x, EpsRight)'.
We have:
'forall y > x. (y, _) > (x, EpsRight)', hence in particular
'(y, Zero) > (x, EpsRight)'
but also
'(x, Zero) < (x, EpsRight)'
Analogously we represent a right opened one ending at y as a closed one ending at '(x, EpsLeft)'.
Instances
Eq InfDev Source #  
Data InfDev Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > InfDev > c InfDev gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c InfDev dataTypeOf :: InfDev > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c InfDev) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c InfDev) gmapT :: (forall b. Data b => b > b) > InfDev > InfDev gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > InfDev > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > InfDev > r gmapQ :: (forall d. Data d => d > u) > InfDev > [u] gmapQi :: Int > (forall d. Data d => d > u) > InfDev > u gmapM :: Monad m => (forall d. Data d => d > m d) > InfDev > m InfDev gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > InfDev > m InfDev gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > InfDev > m InfDev  
Ord InfDev Source #  
Show InfDev Source #  
Generic InfDev  
FromJSON InfDev  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser InfDev parseJSONList :: Value > Parser [InfDev]  
ToJSON InfDev  
Defined in CSL.ATC_CSL toEncoding :: InfDev > Encoding toJSONList :: [InfDev] > Value toEncodingList :: [InfDev] > Encoding  
ShATermConvertible InfDev  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > InfDev > IO (ATermTable, Int) toShATermList' :: ATermTable > [InfDev] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, InfDev) fromShATermList' :: Int > ATermTable > (ATermTable, [InfDev])  
type Rep InfDev  
Defined in CSL.ATC_CSL type Rep InfDev = D1 ('MetaData "InfDev" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "EpsLeft" 'PrefixI 'False) (U1 :: Type > Type) :+: (C1 ('MetaCons "Zero" 'PrefixI 'False) (U1 :: Type > Type) :+: C1 ('MetaCons "EpsRight" 'PrefixI 'False) (U1 :: Type > Type))) 
Instances
Eq a => Eq (CIType a) Source #  
Data a => Data (CIType a) Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > CIType a > c (CIType a) gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c (CIType a) toConstr :: CIType a > Constr dataTypeOf :: CIType a > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c (CIType a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c (CIType a)) gmapT :: (forall b. Data b => b > b) > CIType a > CIType a gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > CIType a > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > CIType a > r gmapQ :: (forall d. Data d => d > u) > CIType a > [u] gmapQi :: Int > (forall d. Data d => d > u) > CIType a > u gmapM :: Monad m => (forall d. Data d => d > m d) > CIType a > m (CIType a) gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > CIType a > m (CIType a) gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > CIType a > m (CIType a)  
Ord a => Ord (CIType a) Source #  This type with the given ordering is to represent opened/closed intervals
over 
Show a => Show (CIType a) Source #  
Generic (CIType a)  
FromJSON a => FromJSON (CIType a)  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser (CIType a) parseJSONList :: Value > Parser [CIType a]  
ToJSON a => ToJSON (CIType a)  
Defined in CSL.ATC_CSL toEncoding :: CIType a > Encoding toJSONList :: [CIType a] > Value toEncodingList :: [CIType a] > Encoding  
ShATermConvertible a => ShATermConvertible (CIType a)  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > CIType a > IO (ATermTable, Int) toShATermList' :: ATermTable > [CIType a] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, CIType a) fromShATermList' :: Int > ATermTable > (ATermTable, [CIType a])  
type Rep (CIType a)  
Defined in CSL.ATC_CSL 
data SetOrInterval a Source #
A finite set or an interval. True = closed, False = opened interval border.
Instances
Eq a => Eq (SetOrInterval a) Source #  
Defined in CSL.TreePO (==) :: SetOrInterval a > SetOrInterval a > Bool (/=) :: SetOrInterval a > SetOrInterval a > Bool  
(Data a, Ord a) => Data (SetOrInterval a) Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > SetOrInterval a > c (SetOrInterval a) gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c (SetOrInterval a) toConstr :: SetOrInterval a > Constr dataTypeOf :: SetOrInterval a > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c (SetOrInterval a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c (SetOrInterval a)) gmapT :: (forall b. Data b => b > b) > SetOrInterval a > SetOrInterval a gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > SetOrInterval a > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > SetOrInterval a > r gmapQ :: (forall d. Data d => d > u) > SetOrInterval a > [u] gmapQi :: Int > (forall d. Data d => d > u) > SetOrInterval a > u gmapM :: Monad m => (forall d. Data d => d > m d) > SetOrInterval a > m (SetOrInterval a) gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > SetOrInterval a > m (SetOrInterval a) gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > SetOrInterval a > m (SetOrInterval a)  
Ord a => Ord (SetOrInterval a) Source #  
Defined in CSL.TreePO compare :: SetOrInterval a > SetOrInterval a > Ordering (<) :: SetOrInterval a > SetOrInterval a > Bool (<=) :: SetOrInterval a > SetOrInterval a > Bool (>) :: SetOrInterval a > SetOrInterval a > Bool (>=) :: SetOrInterval a > SetOrInterval a > Bool max :: SetOrInterval a > SetOrInterval a > SetOrInterval a min :: SetOrInterval a > SetOrInterval a > SetOrInterval a  
Show a => Show (SetOrInterval a) Source #  
Defined in CSL.TreePO showsPrec :: Int > SetOrInterval a > ShowS show :: SetOrInterval a > String showList :: [SetOrInterval a] > ShowS  
Generic (SetOrInterval a)  
Defined in CSL.ATC_CSL type Rep (SetOrInterval a) :: Type > Type from :: SetOrInterval a > Rep (SetOrInterval a) x to :: Rep (SetOrInterval a) x > SetOrInterval a  
(Ord a, FromJSON a) => FromJSON (SetOrInterval a)  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser (SetOrInterval a) parseJSONList :: Value > Parser [SetOrInterval a]  
(Ord a, ToJSON a) => ToJSON (SetOrInterval a)  
Defined in CSL.ATC_CSL toJSON :: SetOrInterval a > Value toEncoding :: SetOrInterval a > Encoding toJSONList :: [SetOrInterval a] > Value toEncodingList :: [SetOrInterval a] > Encoding  
(Ord a, ShATermConvertible a) => ShATermConvertible (SetOrInterval a)  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > SetOrInterval a > IO (ATermTable, Int) toShATermList' :: ATermTable > [SetOrInterval a] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, SetOrInterval a) fromShATermList' :: Int > ATermTable > (ATermTable, [SetOrInterval a])  
(Ord a, Pretty a) => Pretty (SetOrInterval a) Source #  
Defined in CSL.Print_AS pretty :: SetOrInterval a > Doc Source # pretties :: [SetOrInterval a] > Doc Source #  
type Rep (SetOrInterval a)  
Defined in CSL.ATC_CSL type Rep (SetOrInterval a) = D1 ('MetaData "SetOrInterval" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "Set" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set a))) :+: C1 ('MetaCons "IntVal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a, Bool)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a, Bool)))) 
data ClosedInterval a Source #
A closed interval
ClosedInterval a a 
Instances
Eq a => Eq (ClosedInterval a) Source #  
Defined in CSL.TreePO (==) :: ClosedInterval a > ClosedInterval a > Bool (/=) :: ClosedInterval a > ClosedInterval a > Bool  
Data a => Data (ClosedInterval a) Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > ClosedInterval a > c (ClosedInterval a) gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c (ClosedInterval a) toConstr :: ClosedInterval a > Constr dataTypeOf :: ClosedInterval a > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c (ClosedInterval a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c (ClosedInterval a)) gmapT :: (forall b. Data b => b > b) > ClosedInterval a > ClosedInterval a gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > ClosedInterval a > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > ClosedInterval a > r gmapQ :: (forall d. Data d => d > u) > ClosedInterval a > [u] gmapQi :: Int > (forall d. Data d => d > u) > ClosedInterval a > u gmapM :: Monad m => (forall d. Data d => d > m d) > ClosedInterval a > m (ClosedInterval a) gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > ClosedInterval a > m (ClosedInterval a) gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > ClosedInterval a > m (ClosedInterval a)  
Ord a => Ord (ClosedInterval a) Source #  
Defined in CSL.TreePO compare :: ClosedInterval a > ClosedInterval a > Ordering (<) :: ClosedInterval a > ClosedInterval a > Bool (<=) :: ClosedInterval a > ClosedInterval a > Bool (>) :: ClosedInterval a > ClosedInterval a > Bool (>=) :: ClosedInterval a > ClosedInterval a > Bool max :: ClosedInterval a > ClosedInterval a > ClosedInterval a min :: ClosedInterval a > ClosedInterval a > ClosedInterval a  
Show a => Show (ClosedInterval a) Source #  
Defined in CSL.TreePO showsPrec :: Int > ClosedInterval a > ShowS show :: ClosedInterval a > String showList :: [ClosedInterval a] > ShowS  
Generic (ClosedInterval a)  
Defined in CSL.ATC_CSL type Rep (ClosedInterval a) :: Type > Type from :: ClosedInterval a > Rep (ClosedInterval a) x to :: Rep (ClosedInterval a) x > ClosedInterval a  
FromJSON a => FromJSON (ClosedInterval a)  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser (ClosedInterval a) parseJSONList :: Value > Parser [ClosedInterval a]  
ToJSON a => ToJSON (ClosedInterval a)  
Defined in CSL.ATC_CSL toJSON :: ClosedInterval a > Value toEncoding :: ClosedInterval a > Encoding toJSONList :: [ClosedInterval a] > Value toEncodingList :: [ClosedInterval a] > Encoding  
ShATermConvertible a => ShATermConvertible (ClosedInterval a)  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > ClosedInterval a > IO (ATermTable, Int) toShATermList' :: ATermTable > [ClosedInterval a] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, ClosedInterval a) fromShATermList' :: Int > ATermTable > (ATermTable, [ClosedInterval a])  
Pretty a => Pretty (ClosedInterval a) Source #  
Defined in CSL.Print_AS pretty :: ClosedInterval a > Doc Source # pretties :: [ClosedInterval a] > Doc Source #  
type Rep (ClosedInterval a)  
Defined in CSL.ATC_CSL type Rep (ClosedInterval a) = D1 ('MetaData "ClosedInterval" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "ClosedInterval" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) 
Infinite integers = integers augmented by Infty and +Infty
Instances
Eq InfInt Source #  
Data InfInt Source #  
Defined in CSL.TreePO gfoldl :: (forall d b. Data d => c (d > b) > d > c b) > (forall g. g > c g) > InfInt > c InfInt gunfold :: (forall b r. Data b => c (b > r) > c r) > (forall r. r > c r) > Constr > c InfInt dataTypeOf :: InfInt > DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) > Maybe (c InfInt) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) > Maybe (c InfInt) gmapT :: (forall b. Data b => b > b) > InfInt > InfInt gmapQl :: (r > r' > r) > r > (forall d. Data d => d > r') > InfInt > r gmapQr :: forall r r'. (r' > r > r) > r > (forall d. Data d => d > r') > InfInt > r gmapQ :: (forall d. Data d => d > u) > InfInt > [u] gmapQi :: Int > (forall d. Data d => d > u) > InfInt > u gmapM :: Monad m => (forall d. Data d => d > m d) > InfInt > m InfInt gmapMp :: MonadPlus m => (forall d. Data d => d > m d) > InfInt > m InfInt gmapMo :: MonadPlus m => (forall d. Data d => d > m d) > InfInt > m InfInt  
Ord InfInt Source #  
Show InfInt Source #  
Generic InfInt  
Discrete InfInt Source #  
FromJSON InfInt  
Defined in CSL.ATC_CSL parseJSON :: Value > Parser InfInt parseJSONList :: Value > Parser [InfInt]  
ToJSON InfInt  
Defined in CSL.ATC_CSL toEncoding :: InfInt > Encoding toJSONList :: [InfInt] > Value toEncodingList :: [InfInt] > Encoding  
ShATermConvertible InfInt  
Defined in CSL.ATC_CSL toShATermAux :: ATermTable > InfInt > IO (ATermTable, Int) toShATermList' :: ATermTable > [InfInt] > IO (ATermTable, Int) fromShATermAux :: Int > ATermTable > (ATermTable, InfInt) fromShATermList' :: Int > ATermTable > (ATermTable, [InfInt])  
Pretty InfInt Source #  
type Rep InfInt  
Defined in CSL.ATC_CSL type Rep InfInt = D1 ('MetaData "InfInt" "CSL.TreePO" "main" 'False) (C1 ('MetaCons "PosInf" 'PrefixI 'False) (U1 :: Type > Type) :+: (C1 ('MetaCons "NegInf" 'PrefixI 'False) (U1 :: Type > Type) :+: C1 ('MetaCons "FinInt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))) 
class Continuous a Source #
Instances
Continuous GroundConstant Source #  
Defined in CSL.AS_BASIC_CSL 
:: Ord a  
=> ClosedInterval a 

> ClosedInterval a 

> SetOrdering 
Compares closed intervals [l1, r1] and [l2, r2]. Assumes nonsingular intervals, i.e., l1 < r1 and l2 < r2. Works only for linearly ordered types.
membSoID :: (Discrete a, Ord a) => a > SetOrInterval a > Bool Source #
Membership in SetOrInterval
nullSoID :: (Discrete a, Ord a) => SetOrInterval a > Bool Source #
Checks if the set is empty.
toSingularD :: (Discrete a, Ord a) => SetOrInterval a > Maybe a Source #
If the set is singular, i.e., consists only from one point, then we return this point. Reports error on empty SoI's.
setToClosedIntD :: (Discrete a, Ord a) => SetOrInterval a > ClosedInterval a Source #
Transforms a SetOrInterval
to a closed representation
cmpSoIsD :: (Discrete a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering Source #
Compare sets over discrete types
cmpSoIsExD :: (Discrete a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering Source #
Compare sets helper function which only works on regular (nonsingular) sets
membSoI :: Ord a => a > SetOrInterval a > Bool Source #
Membership in SetOrInterval
nullSoI :: (Continuous a, Ord a) => SetOrInterval a > Bool Source #
Checks if the set is empty. Only for continuous types.
toSingular :: (Continuous a, Ord a) => SetOrInterval a > Maybe a Source #
If the set is singular, i.e., consists only from one point, then we return this point. Reports error on empty SoI's. Only for continuous types.
setToClosedInt :: Ord a => SetOrInterval a > ClosedInterval (CIType a) Source #
Transforms a SetOrInterval
to a closed representation
Only for continuous types.
cmpSoIs :: (Continuous a, Ord a) => SetOrInterval a > SetOrInterval a > SetOrdering Source #
Compare sets over continuous types
cmpSoIsEx :: Ord a => SetOrInterval a > SetOrInterval a > SetOrdering Source #
Compare sets helper function which only works on regular (nonsingular) sets
swapCompare :: Ordering > Ordering Source #
swapCmp :: SetOrdering > SetOrdering Source #
combineCmp :: SetOrdering > SetOrdering > SetOrdering Source #
We combine the comparison outcome of the individual parameters with the following (symmetrical => commutative) table:
\  > < = O D  >  > O > O D <  < < O D =  = O D O  O D D  D , where >  <  =  O  D  RightOf  LeftOf  Equal  Overlap  Disjoint
The purpose of this table is to use it for cartesian products as follows
Let
A', A'' subset A B', B'' subset B
In order to get the comparison result for A' x B' and A'' x B'' we compare
A' and A'' as well as B' and B'' and combine the results with the above table.
Note that for empty sets the comparable results ,,= are preferred over the disjoint result.