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 Source #

Ord1 AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

Show1 AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

Functor AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

Foldable AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

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

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

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

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

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

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

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

toList :: AtMostTwo a -> [a] Source #

null :: AtMostTwo a -> Bool Source #

length :: AtMostTwo a -> Int Source #

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

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

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

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

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

Traversable AtMostTwo Source # 
Instance details

Defined in HGeometry.Small.AtMostTwo

Methods

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

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

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

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

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

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

Defined in HGeometry.Small.AtMostTwo