## BooleanAlgebra overview

Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).

Instances should satisfy the following laws in addition to the `HeytingAlgebra` laws:

• Excluded middle: `a ∨ ¬a <-> 1`

Boolean algebras generalize classical logic: one is equivalent to “true” and zero is equivalent to “false”.

# instances

## booleanAlgebraVoid

Signature

``````export declare const booleanAlgebraVoid: BooleanAlgebra<void>
``````

# model

## BooleanAlgebra (interface)

Signature

``````export interface BooleanAlgebra<A> extends HeytingAlgebra<A> {}
``````

# utils

## reverse

Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet.

Signature

``````export declare const reverse: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A>
``````

# zone of death

## booleanAlgebraBoolean

Use `BooleanAlgebra` instead.

Signature

``````export declare const booleanAlgebraBoolean: BooleanAlgebra<boolean>
``````

## getDualBooleanAlgebra

Use `reverse` instead.

Signature

``````export declare const getDualBooleanAlgebra: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A>
``````

Use `getBooleanAlgebra` instead.
``````export declare const getFunctionBooleanAlgebra: <B>(