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

HGeometry.Small.OneOrTwo

Description

A type expressing that some value may have one or two values

Synopsis

Documentation

data OneOrTwo a Source #

At most two elements

Constructors

One !a 
Two !a !a 

Instances

Instances details
Foldable1 OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

fold1 :: Semigroup m => OneOrTwo m -> m #

foldMap1 :: Semigroup m => (a -> m) -> OneOrTwo a -> m #

foldMap1' :: Semigroup m => (a -> m) -> OneOrTwo a -> m #

toNonEmpty :: OneOrTwo a -> NonEmpty a #

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

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

head :: OneOrTwo a -> a #

last :: OneOrTwo a -> a #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> OneOrTwo a -> b #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> OneOrTwo a -> b #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> OneOrTwo a -> b #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> OneOrTwo a -> b #

Eq1 OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

Ord1 OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

Show1 OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

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

Functor OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

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

Foldable OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

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

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

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

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

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

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

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

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

toList :: OneOrTwo a -> [a] #

null :: OneOrTwo a -> Bool #

length :: OneOrTwo a -> Int #

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

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

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

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

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

Traversable OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

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

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

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

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

Traversable1 OneOrTwo Source # 
Instance details

Defined in HGeometry.Small.OneOrTwo

Methods

traverse1 :: Apply f => (a -> f b) -> OneOrTwo a -> f (OneOrTwo b) Source #

sequence1 :: Apply f => OneOrTwo (f b) -> f (OneOrTwo b) Source #

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

Defined in HGeometry.Small.OneOrTwo

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

Defined in HGeometry.Small.OneOrTwo

Methods

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

show :: OneOrTwo a -> String #

showList :: [OneOrTwo a] -> ShowS #

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

Defined in HGeometry.Small.OneOrTwo

Methods

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

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

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

Defined in HGeometry.Small.OneOrTwo

Methods

compare :: OneOrTwo a -> OneOrTwo a -> Ordering #

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

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

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

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

max :: OneOrTwo a -> OneOrTwo a -> OneOrTwo a #

min :: OneOrTwo a -> OneOrTwo a -> OneOrTwo a #