hgeometry-combinatorial-0.10.0.0: Data structures, and Data types.

Safe HaskellNone
LanguageHaskell2010

Data.UnBounded

Synopsis

Documentation

data Top a Source #

`Top a` represents the type a, together with a Top element, i.e. an element that is greater than any other element. We can think of `Top a` being defined as:

>>> data Top a = ValT a | Top
Instances
Monad Top Source # 
Instance details

Defined in Data.UnBounded

Methods

(>>=) :: Top a -> (a -> Top b) -> Top b #

(>>) :: Top a -> Top b -> Top b #

return :: a -> Top a #

fail :: String -> Top a #

Functor Top Source # 
Instance details

Defined in Data.UnBounded

Methods

fmap :: (a -> b) -> Top a -> Top b #

(<$) :: a -> Top b -> Top a #

Applicative Top Source # 
Instance details

Defined in Data.UnBounded

Methods

pure :: a -> Top a #

(<*>) :: Top (a -> b) -> Top a -> Top b #

liftA2 :: (a -> b -> c) -> Top a -> Top b -> Top c #

(*>) :: Top a -> Top b -> Top b #

(<*) :: Top a -> Top b -> Top a #

Foldable Top Source # 
Instance details

Defined in Data.UnBounded

Methods

fold :: Monoid m => Top m -> m #

foldMap :: Monoid m => (a -> m) -> Top a -> m #

foldr :: (a -> b -> b) -> b -> Top a -> b #

foldr' :: (a -> b -> b) -> b -> Top a -> b #

foldl :: (b -> a -> b) -> b -> Top a -> b #

foldl' :: (b -> a -> b) -> b -> Top a -> b #

foldr1 :: (a -> a -> a) -> Top a -> a #

foldl1 :: (a -> a -> a) -> Top a -> a #

toList :: Top a -> [a] #

null :: Top a -> Bool #

length :: Top a -> Int #

elem :: Eq a => a -> Top a -> Bool #

maximum :: Ord a => Top a -> a #

minimum :: Ord a => Top a -> a #

sum :: Num a => Top a -> a #

product :: Num a => Top a -> a #

Traversable Top Source # 
Instance details

Defined in Data.UnBounded

Methods

traverse :: Applicative f => (a -> f b) -> Top a -> f (Top b) #

sequenceA :: Applicative f => Top (f a) -> f (Top a) #

mapM :: Monad m => (a -> m b) -> Top a -> m (Top b) #

sequence :: Monad m => Top (m a) -> m (Top a) #

Eq1 Top Source # 
Instance details

Defined in Data.UnBounded

Methods

liftEq :: (a -> b -> Bool) -> Top a -> Top b -> Bool #

Ord1 Top Source # 
Instance details

Defined in Data.UnBounded

Methods

liftCompare :: (a -> b -> Ordering) -> Top a -> Top b -> Ordering #

Eq a => Eq (Top a) Source # 
Instance details

Defined in Data.UnBounded

Methods

(==) :: Top a -> Top a -> Bool #

(/=) :: Top a -> Top a -> Bool #

Ord a => Ord (Top a) Source # 
Instance details

Defined in Data.UnBounded

Methods

compare :: Top a -> Top a -> Ordering #

(<) :: Top a -> Top a -> Bool #

(<=) :: Top a -> Top a -> Bool #

(>) :: Top a -> Top a -> Bool #

(>=) :: Top a -> Top a -> Bool #

max :: Top a -> Top a -> Top a #

min :: Top a -> Top a -> Top a #

Show a => Show (Top a) Source # 
Instance details

Defined in Data.UnBounded

Methods

showsPrec :: Int -> Top a -> ShowS #

show :: Top a -> String #

showList :: [Top a] -> ShowS #

pattern ValT :: a -> Top a Source #

pattern Top :: Top a Source #

_ValT :: Prism (Top a) (Top b) a b Source #

_Top :: Prism' (Top a) () Source #

data Bottom a Source #

`Bottom a` represents the type a, together with a Bottom element, i.e. an element that is smaller than any other element. We can think of `Bottom a` being defined as:

>>> data Bottom a = Bottom | ValB a
Instances
Monad Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

(>>=) :: Bottom a -> (a -> Bottom b) -> Bottom b #

(>>) :: Bottom a -> Bottom b -> Bottom b #

return :: a -> Bottom a #

fail :: String -> Bottom a #

Functor Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

fmap :: (a -> b) -> Bottom a -> Bottom b #

(<$) :: a -> Bottom b -> Bottom a #

Applicative Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

pure :: a -> Bottom a #

(<*>) :: Bottom (a -> b) -> Bottom a -> Bottom b #

liftA2 :: (a -> b -> c) -> Bottom a -> Bottom b -> Bottom c #

(*>) :: Bottom a -> Bottom b -> Bottom b #

(<*) :: Bottom a -> Bottom b -> Bottom a #

Foldable Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

fold :: Monoid m => Bottom m -> m #

foldMap :: Monoid m => (a -> m) -> Bottom a -> m #

foldr :: (a -> b -> b) -> b -> Bottom a -> b #

foldr' :: (a -> b -> b) -> b -> Bottom a -> b #

foldl :: (b -> a -> b) -> b -> Bottom a -> b #

foldl' :: (b -> a -> b) -> b -> Bottom a -> b #

foldr1 :: (a -> a -> a) -> Bottom a -> a #

foldl1 :: (a -> a -> a) -> Bottom a -> a #

toList :: Bottom a -> [a] #

null :: Bottom a -> Bool #

length :: Bottom a -> Int #

elem :: Eq a => a -> Bottom a -> Bool #

maximum :: Ord a => Bottom a -> a #

minimum :: Ord a => Bottom a -> a #

sum :: Num a => Bottom a -> a #

product :: Num a => Bottom a -> a #

Traversable Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

traverse :: Applicative f => (a -> f b) -> Bottom a -> f (Bottom b) #

sequenceA :: Applicative f => Bottom (f a) -> f (Bottom a) #

mapM :: Monad m => (a -> m b) -> Bottom a -> m (Bottom b) #

sequence :: Monad m => Bottom (m a) -> m (Bottom a) #

Eq1 Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

liftEq :: (a -> b -> Bool) -> Bottom a -> Bottom b -> Bool #

Ord1 Bottom Source # 
Instance details

Defined in Data.UnBounded

Methods

liftCompare :: (a -> b -> Ordering) -> Bottom a -> Bottom b -> Ordering #

Eq a => Eq (Bottom a) Source # 
Instance details

Defined in Data.UnBounded

Methods

(==) :: Bottom a -> Bottom a -> Bool #

(/=) :: Bottom a -> Bottom a -> Bool #

Ord a => Ord (Bottom a) Source # 
Instance details

Defined in Data.UnBounded

Methods

compare :: Bottom a -> Bottom a -> Ordering #

(<) :: Bottom a -> Bottom a -> Bool #

(<=) :: Bottom a -> Bottom a -> Bool #

(>) :: Bottom a -> Bottom a -> Bool #

(>=) :: Bottom a -> Bottom a -> Bool #

max :: Bottom a -> Bottom a -> Bottom a #

min :: Bottom a -> Bottom a -> Bottom a #

Show a => Show (Bottom a) Source # 
Instance details

Defined in Data.UnBounded

Methods

showsPrec :: Int -> Bottom a -> ShowS #

show :: Bottom a -> String #

showList :: [Bottom a] -> ShowS #

pattern Bottom :: Bottom a Source #

pattern ValB :: a -> Bottom a Source #

_ValB :: Prism (Bottom a) (Bottom b) a b Source #

data UnBounded a Source #

`UnBounded a` represents the type a, together with an element MaxInfinity larger than any other element, and an element MinInfinity, smaller than any other element.

Constructors

MinInfinity 
Val 

Fields

MaxInfinity 
Instances
Functor UnBounded Source # 
Instance details

Defined in Data.UnBounded

Methods

fmap :: (a -> b) -> UnBounded a -> UnBounded b #

(<$) :: a -> UnBounded b -> UnBounded a #

Foldable UnBounded Source # 
Instance details

Defined in Data.UnBounded

Methods

fold :: Monoid m => UnBounded m -> m #

foldMap :: Monoid m => (a -> m) -> UnBounded a -> m #

foldr :: (a -> b -> b) -> b -> UnBounded a -> b #

foldr' :: (a -> b -> b) -> b -> UnBounded a -> b #

foldl :: (b -> a -> b) -> b -> UnBounded a -> b #

foldl' :: (b -> a -> b) -> b -> UnBounded a -> b #

foldr1 :: (a -> a -> a) -> UnBounded a -> a #

foldl1 :: (a -> a -> a) -> UnBounded a -> a #

toList :: UnBounded a -> [a] #

null :: UnBounded a -> Bool #

length :: UnBounded a -> Int #

elem :: Eq a => a -> UnBounded a -> Bool #

maximum :: Ord a => UnBounded a -> a #

minimum :: Ord a => UnBounded a -> a #

sum :: Num a => UnBounded a -> a #

product :: Num a => UnBounded a -> a #

Traversable UnBounded Source # 
Instance details

Defined in Data.UnBounded

Methods

traverse :: Applicative f => (a -> f b) -> UnBounded a -> f (UnBounded b) #

sequenceA :: Applicative f => UnBounded (f a) -> f (UnBounded a) #

mapM :: Monad m => (a -> m b) -> UnBounded a -> m (UnBounded b) #

sequence :: Monad m => UnBounded (m a) -> m (UnBounded a) #

Eq a => Eq (UnBounded a) Source # 
Instance details

Defined in Data.UnBounded

Methods

(==) :: UnBounded a -> UnBounded a -> Bool #

(/=) :: UnBounded a -> UnBounded a -> Bool #

Fractional a => Fractional (UnBounded a) Source # 
Instance details

Defined in Data.UnBounded

Num a => Num (UnBounded a) Source # 
Instance details

Defined in Data.UnBounded

Ord a => Ord (UnBounded a) Source # 
Instance details

Defined in Data.UnBounded

Show a => Show (UnBounded a) Source # 
Instance details

Defined in Data.UnBounded

unUnBounded :: forall a a. Traversal (UnBounded a) (UnBounded a) a a Source #

_MinInfinity :: forall a. Prism' (UnBounded a) () Source #

_Val :: forall a a. Prism (UnBounded a) (UnBounded a) a a Source #

_MaxInfinity :: forall a. Prism' (UnBounded a) () Source #

unBoundedToMaybe :: UnBounded a -> Maybe a Source #

Test if an Unbounded is actually bounded.

>>> unBoundedToMaybe (Val 5)
Just 5
>>> unBoundedToMaybe MinInfinity
Nothing
>>> unBoundedToMaybe MaxInfinity
Nothing