| Copyright | (C) 2026 - Eitan Chatav |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Eitan Chatav <eitan.chatav@gmail.com> |
| Stability | provisional |
| Portability | non-portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Control.Lens.Grammar.Boole
Contents
Description
See Boole, The Mathematical Analysis of Logic. Categorized token classes form a Boolean algebra.
Synopsis
- class BooleanAlgebra b where
- andB :: (Foldable f, BooleanAlgebra b) => f b -> b
- orB :: (Foldable f, BooleanAlgebra b) => f b -> b
- allB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b
- anyB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b
- class Tokenized token p => TokenAlgebra token p where
- tokenClass :: TokenTest token -> p
- newtype TokenTest token = TokenTest (RegExam token (TokenTest token))
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 (>&&<) :: (b ~ f bool, BooleanAlgebra bool, Applicative f) => b -> b -> b Source #
(>||<) :: b -> b -> b Source #
disjunction
default (>||<) :: (b ~ f bool, BooleanAlgebra bool, Applicative f) => b -> b -> b Source #
negation
fromBool :: Bool -> b Source #
inclusion
default fromBool :: (b ~ f bool, BooleanAlgebra bool, Applicative f) => Bool -> b Source #
Instances
| BooleanAlgebra Bool Source # | |
| Categorized token => BooleanAlgebra (TokenTest token) Source # | |
| Categorized token => BooleanAlgebra (RegExam token (TokenTest token)) Source # | |
Defined in Control.Lens.Grammar.Boole Methods (>&&<) :: RegExam token (TokenTest token) -> RegExam token (TokenTest token) -> RegExam token (TokenTest token) Source # (>||<) :: RegExam token (TokenTest token) -> RegExam token (TokenTest token) -> RegExam token (TokenTest token) Source # notB :: RegExam token (TokenTest token) -> RegExam token (TokenTest token) Source # fromBool :: Bool -> RegExam token (TokenTest token) Source # | |
| BooleanAlgebra (x -> Bool) Source # | |
| (Applicative f, BooleanAlgebra bool) => BooleanAlgebra (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
TokenAlgebra
class Tokenized token p => TokenAlgebra token p where Source #
TokenAlgebra extends Tokenized methods to support
BooleanAlgebra operations in a tokenClass
Minimal complete definition
Nothing
Methods
tokenClass :: TokenTest token -> p Source #
Arguments of tokenClass can be constructed from
Tokenized and BooleanAlgebra methods.
default tokenClass :: (p ~ q token token, Alternator q, Cochoice q) => TokenTest token -> p Source #
Instances
newtype TokenTest token Source #
TokenTest forms a closed Tokenized BooleanAlgebra
of Categorized tokenClasses.