distributors-0.6.0.0: Unifying Parsers, Printers & Grammars
Copyright(C) 2026 - Eitan Chatav
LicenseBSD-style (see the file LICENSE)
MaintainerEitan Chatav <eitan.chatav@gmail.com>
Stabilityprovisional
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Control.Lens.Grammar.Boole

Description

Synopsis

BooleanAlgebra

class BooleanAlgebra b where Source #

A BooleanAlgebra, like Bool, supporting classical logical operations.

Minimal complete definition

Nothing

Methods

(>&&<) :: b -> b -> b Source #

conjunction

default (>&&<) :: forall (f :: Type -> Type) bool. (b ~ f bool, BooleanAlgebra bool, Applicative f) => b -> b -> b Source #

(>||<) :: b -> b -> b Source #

disjunction

default (>||<) :: forall (f :: Type -> Type) bool. (b ~ f bool, BooleanAlgebra bool, Applicative f) => b -> b -> b Source #

notB :: b -> b Source #

negation

default notB :: forall (f :: Type -> Type) bool. (b ~ f bool, BooleanAlgebra bool, Functor f) => b -> b Source #

trueB :: b Source #

true

default trueB :: forall (f :: Type -> Type) bool. (b ~ f bool, BooleanAlgebra bool, Applicative f) => b Source #

falseB :: b Source #

false

default falseB :: forall (f :: Type -> Type) bool. (b ~ f bool, BooleanAlgebra bool, Applicative f) => b Source #

Instances

Instances details
BooleanAlgebra Bool Source # 
Instance details

Defined in Control.Lens.Grammar.Boole

Categorized token => BooleanAlgebra (TokenClass token) Source # 
Instance details

Defined in Control.Lens.Grammar.Kleene

Methods

(>&&<) :: TokenClass token -> TokenClass token -> TokenClass token Source #

(>||<) :: TokenClass token -> TokenClass token -> TokenClass token Source #

notB :: TokenClass token -> TokenClass token Source #

trueB :: TokenClass token Source #

falseB :: TokenClass token Source #

Categorized token => BooleanAlgebra (RegExam token (TokenClass token)) Source # 
Instance details

Defined in Control.Lens.Grammar.Kleene

Methods

(>&&<) :: RegExam token (TokenClass token) -> RegExam token (TokenClass token) -> RegExam token (TokenClass token) Source #

(>||<) :: RegExam token (TokenClass token) -> RegExam token (TokenClass token) -> RegExam token (TokenClass token) Source #

notB :: RegExam token (TokenClass token) -> RegExam token (TokenClass token) Source #

trueB :: RegExam token (TokenClass token) Source #

falseB :: RegExam token (TokenClass token) Source #

BooleanAlgebra (x -> Bool) Source # 
Instance details

Defined in Control.Lens.Grammar.Boole

Methods

(>&&<) :: (x -> Bool) -> (x -> Bool) -> x -> Bool Source #

(>||<) :: (x -> Bool) -> (x -> Bool) -> x -> Bool Source #

notB :: (x -> Bool) -> x -> Bool Source #

trueB :: x -> Bool Source #

falseB :: x -> Bool Source #

(Applicative f, BooleanAlgebra bool) => BooleanAlgebra (Ap f bool) Source # 
Instance details

Defined in Control.Lens.Grammar.Boole

Methods

(>&&<) :: Ap f bool -> Ap f bool -> Ap f bool Source #

(>||<) :: Ap f bool -> Ap f bool -> Ap f bool Source #

notB :: Ap f bool -> Ap f bool Source #

trueB :: Ap f bool Source #

falseB :: Ap f bool Source #

andB :: (Foldable f, BooleanAlgebra b) => f b -> b Source #

cumulative conjunction

orB :: (Foldable f, BooleanAlgebra b) => f b -> b Source #

cumulative disjunction

allB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b Source #

universal

anyB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b Source #

existential