cased-0.1.0.0: Track string casing in its type

Safe HaskellNone
LanguageHaskell98

Data.Cased

Documentation

data Yes #

data No #

type family IsUpperCased a :: * #

type family IsLowerCased a :: * #

newtype Cased a b #

Constructors

Cased 

Fields

Instances

Eq b => Eq (Cased a b) # 

Methods

(==) :: Cased a b -> Cased a b -> Bool #

(/=) :: Cased a b -> Cased a b -> Bool #

Ord b => Ord (Cased a b) # 

Methods

compare :: Cased a b -> Cased a b -> Ordering #

(<) :: Cased a b -> Cased a b -> Bool #

(<=) :: Cased a b -> Cased a b -> Bool #

(>) :: Cased a b -> Cased a b -> Bool #

(>=) :: Cased a b -> Cased a b -> Bool #

max :: Cased a b -> Cased a b -> Cased a b #

min :: Cased a b -> Cased a b -> Cased a b #

Show b => Show (Cased a b) # 

Methods

showsPrec :: Int -> Cased a b -> ShowS #

show :: Cased a b -> String #

showList :: [Cased a b] -> ShowS #

class Casing a where #

Minimal complete definition

toUpper, toLower

Methods

toUpper :: a -> a #

toLower :: a -> a #

Instances

upperCased :: (Casing b, IsUpperCased a ~ No) => Cased a b -> Cased Upper b #

lowerCased :: (Casing b, IsLowerCased a ~ No) => Cased a b -> Cased Lower b #

force :: (Cased Mixed b -> c) -> b -> c #