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

HGeometry.Measured.Report

Description

 
Synopsis

Documentation

newtype Report a Source #

Report is a type to be used for reporting/collecting all results of a query.

The result is internally represented as a binary tree, so that we can guarantee O(1) time and space (<>).

Constructors

MkReport (Maybe (Report1 a)) 

Bundled Patterns

pattern Report :: [a] -> Report a

Get the results of a Report as a list.

Instances

Instances details
Foldable Report Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

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

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

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

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

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

toList :: Report a -> [a] #

null :: Report a -> Bool #

length :: Report a -> Int #

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

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

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

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

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

Traversable Report Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

Functor Report Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

CanInsert Report a Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

insertMeasure :: a -> Report a -> Report a Source #

Measured Report a Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

measure :: a -> Report a Source #

Monoid (Report a) Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

mempty :: Report a #

mappend :: Report a -> Report a -> Report a #

mconcat :: [Report a] -> Report a #

Semigroup (Report a) Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

(<>) :: Report a -> Report a -> Report a #

sconcat :: NonEmpty (Report a) -> Report a #

stimes :: Integral b => b -> Report a -> Report a #

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

Defined in HGeometry.Measured.Report

Methods

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

show :: Report a -> String #

showList :: [Report a] -> ShowS #

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

Defined in HGeometry.Measured.Report

Methods

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

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

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

Defined in HGeometry.Measured.Report

Methods

compare :: Report a -> Report a -> Ordering #

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

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

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

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

max :: Report a -> Report a -> Report a #

min :: Report a -> Report a -> Report a #

newtype Report1 a Source #

Type to represent reporting elements. The result is represented as a binary tree so that we can support O(1) time and space (<>)

Constructors

Report1 (BinLeafTree (Const () a) a) 

Instances

Instances details
Foldable Report1 Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

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

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

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

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

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

toList :: Report1 a -> [a] #

null :: Report1 a -> Bool #

length :: Report1 a -> Int #

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

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

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

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

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

Foldable1 Report1 Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

toNonEmpty :: Report1 a -> NonEmpty a #

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

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

head :: Report1 a -> a #

last :: Report1 a -> a #

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

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

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

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

Traversable Report1 Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

Functor Report1 Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

Traversable1 Report1 Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

CanInsert Report1 a Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

insertMeasure :: a -> Report1 a -> Report1 a Source #

Measured Report1 a Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

measure :: a -> Report1 a Source #

Semigroup (Report1 a) Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

(<>) :: Report1 a -> Report1 a -> Report1 a #

sconcat :: NonEmpty (Report1 a) -> Report1 a #

stimes :: Integral b => b -> Report1 a -> Report1 a #

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

Defined in HGeometry.Measured.Report

Methods

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

show :: Report1 a -> String #

showList :: [Report1 a] -> ShowS #

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

Defined in HGeometry.Measured.Report

Methods

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

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

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

Defined in HGeometry.Measured.Report

Methods

compare :: Report1 a -> Report1 a -> Ordering #

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

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

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

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

max :: Report1 a -> Report1 a -> Report1 a #

min :: Report1 a -> Report1 a -> Report1 a #

newtype ReportList a Source #

Report is a type to be used for reporting/collecting all results of a query. The result is directly represented as a list.

Constructors

ReportList [a] 

Instances

Instances details
Foldable ReportList Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

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

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

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

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

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

toList :: ReportList a -> [a] #

null :: ReportList a -> Bool #

length :: ReportList a -> Int #

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

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

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

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

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

Traversable ReportList Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

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

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

Functor ReportList Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

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

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

Eq a => CanDelete ReportList a Source # 
Instance details

Defined in HGeometry.Measured.Report

CanInsert ReportList a Source # 
Instance details

Defined in HGeometry.Measured.Report

Measured ReportList a Source # 
Instance details

Defined in HGeometry.Measured.Report

Methods

measure :: a -> ReportList a Source #

Monoid (ReportList a) Source # 
Instance details

Defined in HGeometry.Measured.Report

Semigroup (ReportList a) Source # 
Instance details

Defined in HGeometry.Measured.Report

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

Defined in HGeometry.Measured.Report

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

Defined in HGeometry.Measured.Report

Methods

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

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

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

Defined in HGeometry.Measured.Report