hgeometry-combinatorial
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2021

HGeometry.Small.AtMostTwo

Description

A type expressing that some value may have at most two values

Synopsis

Documentation

data AtMostTwo a Source #

At most two elements

Constructors

Zero 
One !a 
Two !a !a 

Instances

Instances details
Eq1 AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

Ord1 AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

Show1 AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> AtMostTwo a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [AtMostTwo a] -> ShowS #

Functor AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

Foldable AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

foldMap' :: Monoid m => (a -> m) -> AtMostTwo a -> m #

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

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

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

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

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

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

toList :: AtMostTwo a -> [a] #

null :: AtMostTwo a -> Bool #

length :: AtMostTwo a -> Int #

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

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

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

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

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

Traversable AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

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

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

Read a => Read (AtMostTwo a) Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

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

Defined in HGeometry.Small.AtMostTwo

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

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

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

Defined in HGeometry.Small.AtMostTwo