Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Define the requirements & capabilities of a data-type which is designed to consume data.
- This module also facilitates investigation of group-behaviour, by defining operations on either concatenations or alternations of
Consumer
s. - This module is specifically for use in a regex-engine, in which the meta-data from which the regex is composed, are considered to consume input data, whilst concatenation & alternation of such elements, behave as a different types of groups of consumer.
Synopsis
- class Consumer c where
- consumptionProfile :: c -> ConsumptionProfile
- starHeight :: c -> StarHeight
- accumulateConsumptionProfiles :: Consumer c => [c] -> AccumulatedConsumptionProfiles
- aggregateConsumptionProfilesFromAlternatives :: Consumer c => [c] -> ConsumptionProfile
- aggregateConsumptionProfilesFromConcatenation :: Consumer c => [c] -> ConsumptionProfile
- getConsumptionBounds :: Consumer c => c -> ConsumptionBounds
- getFewest :: Consumer c => c -> DataLength
- getHasSpecificRequirement :: Consumer c => c -> Bool
Type-classes
class Consumer c where Source #
- The interface, to which types, which have a data-requirement, may conform.
- Regrettably, methods requiring reference to the type of the consumable, would require multi-parameter type-classes.
consumptionProfile
defines the quantity-range of data which may be consumed, & any specific data-requirements.starHeight
measures the complexity of theConsumer
.
consumptionProfile :: c -> ConsumptionProfile Source #
starHeight :: c -> StarHeight Source #
Instances
Types
Type-synonyms
Functions
accumulateConsumptionProfiles :: Consumer c => [c] -> AccumulatedConsumptionProfiles Source #
Get the ConsumptionProfile
for the specified list of Consumer
s, then accumulate them.
aggregateConsumptionProfilesFromAlternatives :: Consumer c => [c] -> ConsumptionProfile Source #
The aggregate of the specified alternation of ConsumptionProfile
s.
aggregateConsumptionProfilesFromConcatenation :: Consumer c => [c] -> ConsumptionProfile Source #
Get the ConsumptionProfile
s for the specified list of Consumer
s, then find the net effect of concatenating them.
Query
getConsumptionBounds :: Consumer c => c -> ConsumptionBounds Source #
Convenience-function, to query the ConsumptionBounds
of a Consumer
.
getFewest :: Consumer c => c -> DataLength Source #
Determine the minimum acceptable quantity of data.