`System.Rpm.Combinators`

provides a mechanism for comparing
attributes of an Rpm against some sort of specification.

- type Rpm a = RpmInfo -> a
- type RpmP = Rpm Bool
- zeroP :: RpmP
- oneP :: RpmP
- notP :: RpmP -> RpmP
- (.==.) :: Eq a => Rpm a -> a -> RpmP
- (./=.) :: Eq a => Rpm a -> a -> RpmP
- (.<=.) :: Ord a => Rpm a -> a -> RpmP
- (.<.) :: Ord a => Rpm a -> a -> RpmP
- (.>=.) :: Ord a => Rpm a -> a -> RpmP
- (.>.) :: Ord a => Rpm a -> a -> RpmP
- (.&&.) :: RpmP -> RpmP -> RpmP
- (.||.) :: RpmP -> RpmP -> RpmP

# Documentation

A predicate type that takes an `RpmInfo`

datatype and returns a
value of Bool depending on its evaluation.

`notP`

is used to negate its `RpmP`

when run.

(.&&.) :: RpmP -> RpmP -> RpmPSource

This is a logical combinator used for constructing more complex sequences of combinators by requiring both predicates to be true.

(.||.) :: RpmP -> RpmP -> RpmPSource

This is a logical combinator used for constructing more complex sequences of combinators by requiring one of the predicates to be true.