predicate-typed-0.7.4.0: Predicates, Refinement types and Dsl

Safe HaskellNone
LanguageHaskell2010

Predicate.Data.Char

Contents

Description

promoted character functions

Synopsis

constructor

data Char1 (s :: Symbol) #

extracts the first character from a non empty Symbol

>>> pz @(Char1 "aBc") ()
Val 'a'
Instances
Show (Char1 s) # 
Instance details

Defined in Predicate.Data.Char

Methods

showsPrec :: Int -> Char1 s -> ShowS #

show :: Char1 s -> String #

showList :: [Char1 s] -> ShowS #

(KnownSymbol s, FailUnlessT (CmpSymbol s "" == GT) (Text "Char1 symbol cannot be empty")) => P (Char1 s :: Type) a # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP (Char1 s) a :: Type #

Methods

eval :: MonadEval m => proxy (Char1 s) -> POpts -> a -> m (TT (PP (Char1 s) a)) #

type PP (Char1 s :: Type) a # 
Instance details

Defined in Predicate.Data.Char

type PP (Char1 s :: Type) a = Char

data C (s :: Symbol) #

extracts the first character from a non empty Symbol: shorthand for Char1

>>> pz @(C "aBc") ()
Val 'a'
Instances
Show (C s) # 
Instance details

Defined in Predicate.Data.Char

Methods

showsPrec :: Int -> C s -> ShowS #

show :: C s -> String #

showList :: [C s] -> ShowS #

P (CT s) x => P (C s :: Type) x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP (C s) x :: Type #

Methods

eval :: MonadEval m => proxy (C s) -> POpts -> x -> m (TT (PP (C s) x)) #

type PP (C s :: Type) x # 
Instance details

Defined in Predicate.Data.Char

type PP (C s :: Type) x

character predicates

data IsLower #

predicate similar to isLower

>>> pz @IsLower 'X'
Val False
>>> pz @IsLower '1'
Val False
>>> pz @IsLower 'a'
Val True
Instances
Show IsLower # 
Instance details

Defined in Predicate.Data.Char

P IsLowerT x => P IsLower x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLower x :: Type #

Methods

eval :: MonadEval m => proxy IsLower -> POpts -> x -> m (TT (PP IsLower x)) #

type PP IsLower x # 
Instance details

Defined in Predicate.Data.Char

type PP IsLower x

data IsUpper #

predicate similar to isUpper

Instances
Show IsUpper # 
Instance details

Defined in Predicate.Data.Char

P IsUpperT x => P IsUpper x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsUpper x :: Type #

Methods

eval :: MonadEval m => proxy IsUpper -> POpts -> x -> m (TT (PP IsUpper x)) #

type PP IsUpper x # 
Instance details

Defined in Predicate.Data.Char

type PP IsUpper x

data IsDigit #

predicate similar to isDigit

>>> pz @IsDigit 'g'
Val False
>>> pz @IsDigit '9'
Val True
Instances
Show IsDigit # 
Instance details

Defined in Predicate.Data.Char

P IsDigitT x => P IsDigit x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsDigit x :: Type #

Methods

eval :: MonadEval m => proxy IsDigit -> POpts -> x -> m (TT (PP IsDigit x)) #

type PP IsDigit x # 
Instance details

Defined in Predicate.Data.Char

type PP IsDigit x = Bool

data IsSpace #

predicate similar to isSpace

>>> pz @IsSpace '\t'
Val True
>>> pz @IsSpace ' '
Val True
>>> pz @IsSpace 'x'
Val False
Instances
Show IsSpace # 
Instance details

Defined in Predicate.Data.Char

P IsSpaceT x => P IsSpace x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSpace x :: Type #

Methods

eval :: MonadEval m => proxy IsSpace -> POpts -> x -> m (TT (PP IsSpace x)) #

type PP IsSpace x # 
Instance details

Defined in Predicate.Data.Char

type PP IsSpace x = Bool

data IsPunctuation #

predicate similar to isPunctuation

Instances
Show IsPunctuation # 
Instance details

Defined in Predicate.Data.Char

P IsPunctuationT x => P IsPunctuation x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsPunctuation x :: Type #

Methods

eval :: MonadEval m => proxy IsPunctuation -> POpts -> x -> m (TT (PP IsPunctuation x)) #

type PP IsPunctuation x # 
Instance details

Defined in Predicate.Data.Char

data IsControl #

predicate similar to isControl

Instances
Show IsControl # 
Instance details

Defined in Predicate.Data.Char

P IsControlT x => P IsControl x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsControl x :: Type #

Methods

eval :: MonadEval m => proxy IsControl -> POpts -> x -> m (TT (PP IsControl x)) #

type PP IsControl x # 
Instance details

Defined in Predicate.Data.Char

type PP IsControl x = Bool

data IsHexDigit #

predicate similar to isHexDigit

>>> pz @IsHexDigit 'A'
Val True
>>> pz @IsHexDigit 'g'
Val False
Instances
Show IsHexDigit # 
Instance details

Defined in Predicate.Data.Char

P IsHexDigitT x => P IsHexDigit x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsHexDigit x :: Type #

Methods

eval :: MonadEval m => proxy IsHexDigit -> POpts -> x -> m (TT (PP IsHexDigit x)) #

type PP IsHexDigit x # 
Instance details

Defined in Predicate.Data.Char

type PP IsHexDigit x = Bool

data IsOctDigit #

predicate similar to isOctDigit

Instances
Show IsOctDigit # 
Instance details

Defined in Predicate.Data.Char

P IsOctDigitT x => P IsOctDigit x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsOctDigit x :: Type #

Methods

eval :: MonadEval m => proxy IsOctDigit -> POpts -> x -> m (TT (PP IsOctDigit x)) #

type PP IsOctDigit x # 
Instance details

Defined in Predicate.Data.Char

type PP IsOctDigit x = Bool

data IsSeparator #

predicate similar to isSeparator

Instances
Show IsSeparator # 
Instance details

Defined in Predicate.Data.Char

P IsSeparatorT x => P IsSeparator x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSeparator x :: Type #

Methods

eval :: MonadEval m => proxy IsSeparator -> POpts -> x -> m (TT (PP IsSeparator x)) #

type PP IsSeparator x # 
Instance details

Defined in Predicate.Data.Char

data IsLatin1 #

predicate similar to isLatin1

Instances
Show IsLatin1 # 
Instance details

Defined in Predicate.Data.Char

P IsLatin1T x => P IsLatin1 x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLatin1 x :: Type #

Methods

eval :: MonadEval m => proxy IsLatin1 -> POpts -> x -> m (TT (PP IsLatin1 x)) #

type PP IsLatin1 x # 
Instance details

Defined in Predicate.Data.Char

type PP IsLatin1 x = Bool

string predicates

data IsLowerAll #

predicate for determining if a string is all lowercase

>>> pz @IsLowerAll "abc"
Val True
>>> pz @IsLowerAll "abcX"
Val False
>>> pz @IsLowerAll (T.pack "abcX")
Val False
>>> pz @IsLowerAll "abcdef213"
Val False
>>> pz @IsLowerAll ""
Val True
Instances
Show IsLowerAll # 
Instance details

Defined in Predicate.Data.Char

P IsLowerAllT x => P IsLowerAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLowerAll x :: Type #

Methods

eval :: MonadEval m => proxy IsLowerAll -> POpts -> x -> m (TT (PP IsLowerAll x)) #

type PP IsLowerAll x # 
Instance details

Defined in Predicate.Data.Char

type PP IsLowerAll x

data IsUpperAll #

predicate for determining if a string is all uppercase

Instances
Show IsUpperAll # 
Instance details

Defined in Predicate.Data.Char

P IsUpperAllT x => P IsUpperAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsUpperAll x :: Type #

Methods

eval :: MonadEval m => proxy IsUpperAll -> POpts -> x -> m (TT (PP IsUpperAll x)) #

type PP IsUpperAll x # 
Instance details

Defined in Predicate.Data.Char

type PP IsUpperAll x

data IsDigitAll #

predicate for determining if the string is all digits

>>> pz @IsDigitAll "213G"
Val False
>>> pz @IsDigitAll "929"
Val True
Instances
Show IsDigitAll # 
Instance details

Defined in Predicate.Data.Char

P IsDigitAllT x => P IsDigitAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsDigitAll x :: Type #

Methods

eval :: MonadEval m => proxy IsDigitAll -> POpts -> x -> m (TT (PP IsDigitAll x)) #

type PP IsDigitAll x # 
Instance details

Defined in Predicate.Data.Char

type PP IsDigitAll x = Bool

data IsSpaceAll #

predicate for determining if the string is all spaces

>>> pz @IsSpaceAll "213G"
Val False
>>> pz @IsSpaceAll "    "
Val True
>>> pz @IsSpaceAll ""
Val True
Instances
Show IsSpaceAll # 
Instance details

Defined in Predicate.Data.Char

P IsSpaceAllT x => P IsSpaceAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSpaceAll x :: Type #

Methods

eval :: MonadEval m => proxy IsSpaceAll -> POpts -> x -> m (TT (PP IsSpaceAll x)) #

type PP IsSpaceAll x # 
Instance details

Defined in Predicate.Data.Char

type PP IsSpaceAll x = Bool

data IsPunctuationAll #

predicate for determining if a string has all punctuation

Instances
Show IsPunctuationAll # 
Instance details

Defined in Predicate.Data.Char

P IsPunctuationAllT x => P IsPunctuationAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsPunctuationAll x :: Type #

Methods

eval :: MonadEval m => proxy IsPunctuationAll -> POpts -> x -> m (TT (PP IsPunctuationAll x)) #

type PP IsPunctuationAll x # 
Instance details

Defined in Predicate.Data.Char

data IsControlAll #

predicate for determining if a string has all control chars

Instances
Show IsControlAll # 
Instance details

Defined in Predicate.Data.Char

P IsControlAllT x => P IsControlAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsControlAll x :: Type #

Methods

eval :: MonadEval m => proxy IsControlAll -> POpts -> x -> m (TT (PP IsControlAll x)) #

type PP IsControlAll x # 
Instance details

Defined in Predicate.Data.Char

data IsHexDigitAll #

predicate for determining if the string is all hex digits

>>> pz @IsHexDigitAll "01efA"
Val True
>>> pz @IsHexDigitAll "01egfA"
Val False
Instances
Show IsHexDigitAll # 
Instance details

Defined in Predicate.Data.Char

P IsHexDigitAllT x => P IsHexDigitAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsHexDigitAll x :: Type #

Methods

eval :: MonadEval m => proxy IsHexDigitAll -> POpts -> x -> m (TT (PP IsHexDigitAll x)) #

type PP IsHexDigitAll x # 
Instance details

Defined in Predicate.Data.Char

data IsOctDigitAll #

predicate for determining if the string is all octal digits

Instances
Show IsOctDigitAll # 
Instance details

Defined in Predicate.Data.Char

P IsOctDigitAllT x => P IsOctDigitAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsOctDigitAll x :: Type #

Methods

eval :: MonadEval m => proxy IsOctDigitAll -> POpts -> x -> m (TT (PP IsOctDigitAll x)) #

type PP IsOctDigitAll x # 
Instance details

Defined in Predicate.Data.Char

data IsSeparatorAll #

predicate for determining if the string has all separators

Instances
Show IsSeparatorAll # 
Instance details

Defined in Predicate.Data.Char

P IsSeparatorAllT x => P IsSeparatorAll x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSeparatorAll x :: Type #

Methods

eval :: MonadEval m => proxy IsSeparatorAll -> POpts -> x -> m (TT (PP IsSeparatorAll x)) #

type PP IsSeparatorAll x # 
Instance details

Defined in Predicate.Data.Char

data IsLatin1All #

predicate for determining if the string is all latin chars

Instances
Show IsLatin1All # 
Instance details

Defined in Predicate.Data.Char

P IsLatin1AllT x => P IsLatin1All x # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLatin1All x :: Type #

Methods

eval :: MonadEval m => proxy IsLatin1All -> POpts -> x -> m (TT (PP IsLatin1All x)) #

type PP IsLatin1All x # 
Instance details

Defined in Predicate.Data.Char

change case

data ToTitle #

converts a string IsText value to title case

>>> pz @ToTitle "HeLlO wOrld!"
Val "Hello world!"
>>> data Color = Red | White | Blue | Green | Black deriving (Show,Eq,Enum,Bounded,Read)
>>> pz @(ToTitle >> ReadP Color Id) "red"
Val Red
Instances
Show ToTitle # 
Instance details

Defined in Predicate.Data.Char

(Show a, IsText a) => P ToTitle a # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToTitle a :: Type #

Methods

eval :: MonadEval m => proxy ToTitle -> POpts -> a -> m (TT (PP ToTitle a)) #

type PP ToTitle a # 
Instance details

Defined in Predicate.Data.Char

type PP ToTitle a = a

data ToUpper #

converts a string IsText value to upper case

>>> pz @ToUpper "HeLlO wOrld!"
Val "HELLO WORLD!"
Instances
Show ToUpper # 
Instance details

Defined in Predicate.Data.Char

(Show a, IsText a) => P ToUpper a # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToUpper a :: Type #

Methods

eval :: MonadEval m => proxy ToUpper -> POpts -> a -> m (TT (PP ToUpper a)) #

type PP ToUpper a # 
Instance details

Defined in Predicate.Data.Char

type PP ToUpper a = a

data ToLower #

converts a string IsText value to lower case

>>> pz @ToLower "HeLlO wOrld!"
Val "hello world!"
Instances
Show ToLower # 
Instance details

Defined in Predicate.Data.Char

(Show a, IsText a) => P ToLower a # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToLower a :: Type #

Methods

eval :: MonadEval m => proxy ToLower -> POpts -> a -> m (TT (PP ToLower a)) #

type PP ToLower a # 
Instance details

Defined in Predicate.Data.Char

type PP ToLower a = a