character-cases-0.1.0.6: Exposes subspecies types of Char. And naming cases.
Safe HaskellNone
LanguageHaskell2010

Data.String.Cases

Description

Exposes naming cases.

Synopsis

Documentation

>>> :set -XQuasiQuotes

data Pascal Source #

Non empty PascalCase names "[A-Z][a-zA-Z0-9]*"

Constructors

Pascal UpperChar [AlphaNumChar] 

Instances

Instances details
Eq Pascal Source # 
Instance details

Defined in Data.String.Cases

Methods

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

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

Show Pascal Source # 
Instance details

Defined in Data.String.Cases

Pretty Pascal Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: Pascal -> Doc ann #

prettyList :: [Pascal] -> Doc ann #

pascalQ :: QuasiQuoter Source #

Simular to nonEmptyQ, but naming outsides of Pascal will be rejected.

>>> [pascalQ|Pascal|]
Pascal P [AlphaNumAlpha (AlphaLower A_),AlphaNumAlpha (AlphaLower S_),AlphaNumAlpha (AlphaLower C_),AlphaNumAlpha (AlphaLower A_),AlphaNumAlpha (AlphaLower L_)]

data NonEmpty Source #

Non empty names ".+"

Constructors

NonEmpty Char String 

Instances

Instances details
Eq NonEmpty Source # 
Instance details

Defined in Data.String.Cases

Show NonEmpty Source # 
Instance details

Defined in Data.String.Cases

Pretty NonEmpty Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: NonEmpty -> Doc ann #

prettyList :: [NonEmpty] -> Doc ann #

nonEmptyQ :: QuasiQuoter Source #

Makes a non empty string from String on the compile time. Also throws compile error if the empty string is passed.

>>> [nonEmptyQ|x|]
NonEmpty 'x' ""
>>> [nonEmptyQ|foo|]
NonEmpty 'f' "oo"
>>> [nonEmptyQ|Bar|]
NonEmpty 'B' "ar"

data Camel Source #

Non empty camelCase names "[a-zA-Z][a-zA-Z0-9]*"

Constructors

Camel AlphaChar [AlphaNumChar] 

Instances

Instances details
Eq Camel Source # 
Instance details

Defined in Data.String.Cases

Methods

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

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

Show Camel Source # 
Instance details

Defined in Data.String.Cases

Methods

showsPrec :: Int -> Camel -> ShowS #

show :: Camel -> String #

showList :: [Camel] -> ShowS #

Pretty Camel Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: Camel -> Doc ann #

prettyList :: [Camel] -> Doc ann #

camelQ :: QuasiQuoter Source #

Simular to nonEmptyQ, but naming outsides of Camel will be rejected.

>>> [camelQ|camel|]
"camel"
>>> [camelQ|Pascal|]
"Pascal"

data Snake Source #

Non empty snake_case names "[a-zA-Z_][a-zA-Z0-9_]*"

Constructors

Snake SnakeHeadChar [SnakeChar] 

Instances

Instances details
Eq Snake Source # 
Instance details

Defined in Data.String.Cases

Methods

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

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

Show Snake Source # 
Instance details

Defined in Data.String.Cases

Methods

showsPrec :: Int -> Snake -> ShowS #

show :: Snake -> String #

showList :: [Snake] -> ShowS #

Pretty Snake Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: Snake -> Doc ann #

prettyList :: [Snake] -> Doc ann #

snakeQ :: QuasiQuoter Source #

Simular to nonEmptyQ, but naming outsides of Snake will be rejected.

>>> [snakeQ|foo_bar|]
Snake (SnakeHeadAlpha (AlphaLower F_)) [SnakeAlphaNum (AlphaNumAlpha (AlphaLower O_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower O_)),SnakeUnderscore,SnakeAlphaNum (AlphaNumAlpha (AlphaLower B_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower A_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower R_))]
>>> [snakeQ|__constructor|]
Snake SnakeHeadUnderscore [SnakeUnderscore,SnakeAlphaNum (AlphaNumAlpha (AlphaLower C_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower O_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower N_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower S_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower T_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower R_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower U_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower C_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower T_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower O_)),SnakeAlphaNum (AlphaNumAlpha (AlphaLower R_))]
>>> [snakeQ|FOO_MEE_9|]
Snake (SnakeHeadAlpha (AlphaUpper F)) [SnakeAlphaNum (AlphaNumAlpha (AlphaUpper O)),SnakeAlphaNum (AlphaNumAlpha (AlphaUpper O)),SnakeUnderscore,SnakeAlphaNum (AlphaNumAlpha (AlphaUpper M)),SnakeAlphaNum (AlphaNumAlpha (AlphaUpper E)),SnakeAlphaNum (AlphaNumAlpha (AlphaUpper E)),SnakeUnderscore,SnakeAlphaNum (AlphaNumDigit D9)]

data UpperSnake Source #

A kind of Cases. [A-Z_][A-Z0-9_]*

Instances

Instances details
Eq UpperSnake Source # 
Instance details

Defined in Data.String.Cases

Show UpperSnake Source # 
Instance details

Defined in Data.String.Cases

Pretty UpperSnake Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: UpperSnake -> Doc ann #

prettyList :: [UpperSnake] -> Doc ann #

upperSnakeQ :: QuasiQuoter Source #

>>> [upperSnakeQ|FOO_BAR|]
UpperSnake (UpperSnakeHeadUpper F) [UpperSnakeUpper O,UpperSnakeUpper O,UpperSnakeUnderscore,UpperSnakeUpper B,UpperSnakeUpper A,UpperSnakeUpper R]
>>> [upperSnakeQ|__CONSTRUCTOR|]
UpperSnake UpperSnakeHeadUnderscore [UpperSnakeUnderscore,UpperSnakeUpper C,UpperSnakeUpper O,UpperSnakeUpper N,UpperSnakeUpper S,UpperSnakeUpper T,UpperSnakeUpper R,UpperSnakeUpper U,UpperSnakeUpper C,UpperSnakeUpper T,UpperSnakeUpper O,UpperSnakeUpper R]
>>> [upperSnakeQ|__FOO_MEE_9|]
UpperSnake UpperSnakeHeadUnderscore [UpperSnakeUnderscore,UpperSnakeUpper F,UpperSnakeUpper O,UpperSnakeUpper O,UpperSnakeUnderscore,UpperSnakeUpper M,UpperSnakeUpper E,UpperSnakeUpper E,UpperSnakeUnderscore,UpperSnakeDigit D9]
>>> [upperSnakeQ|FOO_MEE_9|]
UpperSnake (UpperSnakeHeadUpper F) [UpperSnakeUpper O,UpperSnakeUpper O,UpperSnakeUnderscore,UpperSnakeUpper M,UpperSnakeUpper E,UpperSnakeUpper E,UpperSnakeUnderscore,UpperSnakeDigit D9]

data LowerString Source #

Non empty "veryflatten" names [a-z]+

Instances

Instances details
Eq LowerString Source # 
Instance details

Defined in Data.String.Cases

Show LowerString Source # 
Instance details

Defined in Data.String.Cases

Pretty LowerString Source # 
Instance details

Defined in Data.String.Cases

Methods

pretty :: LowerString -> Doc ann #

prettyList :: [LowerString] -> Doc ann #

lowerStringQ :: QuasiQuoter Source #

Simular to nonEmptyQ, but naming outsides of LowerString will be rejected.

>>> [lowerStringQ|imavimmer|]
LowerString I_ [M_,A_,V_,I_,M_,M_,E_,R_]