lazy-search-0.1.2.1: Finds values satisfying a lazy predicate

Safe HaskellNone
LanguageHaskell2010

Data.Coolean

Contents

Description

Proper documentation is TBD

Synopsis

Documentation

data Cool Source #

Concurrent booleans. Writing properties with the Cool data type often yields faster searches compared to Bool.

Constructors

Atom Bool 
Not Cool 
And Cool Cool 
Seq Cool Cool

Sequential conjunction, the second operator is not evaluated unless the first is true.

Instances
Show Cool Source # 
Instance details

Defined in Data.Coolean

Methods

showsPrec :: Int -> Cool -> ShowS #

show :: Cool -> String #

showList :: [Cool] -> ShowS #

Coolean Cool Source # 
Instance details

Defined in Data.Coolean

Methods

toCool :: Cool -> Cool Source #

toBool :: Cool -> Bool Source #

isCool :: (a -> Cool) -> Bool Source #

Overloaded parallel operators

class Coolean b where Source #

Provides better interoperability between Bool and Cool by overloading operators.

Methods

toCool :: b -> Cool Source #

toBool :: b -> Bool Source #

isCool :: (a -> b) -> Bool Source #

Instances
Coolean Bool Source # 
Instance details

Defined in Data.Coolean

Methods

toCool :: Bool -> Cool Source #

toBool :: Bool -> Bool Source #

isCool :: (a -> Bool) -> Bool Source #

Coolean Cool Source # 
Instance details

Defined in Data.Coolean

Methods

toCool :: Cool -> Cool Source #

toBool :: Cool -> Bool Source #

isCool :: (a -> Cool) -> Bool Source #

nott :: Coolean a => a -> Cool Source #

Negation

(&&&) :: (Coolean a, Coolean b) => a -> b -> Cool infixr 3 Source #

Commutative conjunction

(|||) :: (Coolean a, Coolean b) => a -> b -> Cool infixr 2 Source #

Commutative disjunction

(==>) :: (Coolean a, Coolean b) => a -> b -> Cool infixr 0 Source #

Parallel implication

Overloaded sequential operators

(!&&) :: (Coolean a, Coolean b) => a -> b -> Cool Source #

Sequential conjunction. Does not evaluate second operand unless first is True.

(!||) :: (Coolean a, Coolean b) => a -> b -> Cool Source #

Sequential disjunction. Does not evaluate second operand unless first is True.

(!=>) :: (Coolean a, Coolean b) => a -> b -> Cool Source #

Sequential implication. Does not evaluate second operand unless first is True.

Consumers

data Sched Source #

Constructors

Flip Bool Sched Sched 
Unsched 
Instances
Eq Sched Source # 
Instance details

Defined in Data.Coolean

Methods

(==) :: Sched -> Sched -> Bool #

(/=) :: Sched -> Sched -> Bool #

Show Sched Source # 
Instance details

Defined in Data.Coolean

Methods

showsPrec :: Int -> Sched -> ShowS #

show :: Sched -> String #

showList :: [Sched] -> ShowS #