Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data ASCII'case (letterCase :: Case) superset
- lift :: ASCII'case letterCase superset -> superset
- asciiCaseUnsafe :: superset -> ASCII'case letterCase superset
- type ASCII'upper superset = ASCII'case 'UpperCase superset
- type ASCII'lower superset = ASCII'case 'LowerCase superset
- validateChar :: forall letterCase superset. KnownCase letterCase => CharSuperset superset => superset -> Maybe (ASCII'case letterCase superset)
- fromCaselessChar :: forall letterCase superset. KnownCase letterCase => CharSuperset superset => CaselessChar -> ASCII'case letterCase superset
- toCaselessChar :: CharSuperset superset => ASCII'case letterCase superset -> CaselessChar
- substituteChar :: forall letterCase superset. KnownCase letterCase => CharSuperset superset => superset -> ASCII'case letterCase superset
- asCaselessChar :: forall letterCase superset. KnownCase letterCase => CharSuperset superset => (CaselessChar -> CaselessChar) -> ASCII'case letterCase superset -> ASCII'case letterCase superset
- refineCharToCase :: forall letterCase char. KnownCase letterCase => CharSuperset char => ASCII char -> ASCII'case letterCase char
- validateString :: forall letterCase superset. KnownCase letterCase => StringSuperset superset => superset -> Maybe (ASCII'case letterCase superset)
- fromCaselessCharList :: forall letterCase superset. KnownCase letterCase => StringSuperset superset => [CaselessChar] -> ASCII'case letterCase superset
- toCaselessCharList :: forall letterCase superset. KnownCase letterCase => StringSuperset superset => ASCII'case letterCase superset -> [CaselessChar]
- substituteString :: forall letterCase superset. KnownCase letterCase => StringSuperset superset => superset -> ASCII'case letterCase superset
- mapChars :: forall letterCase superset. KnownCase letterCase => StringSuperset superset => (CaselessChar -> CaselessChar) -> ASCII'case letterCase superset -> ASCII'case letterCase superset
- refineStringToCase :: forall letterCase char. KnownCase letterCase => StringSuperset char => ASCII char -> ASCII'case letterCase char
- class KnownCase (letterCase :: Case) where
ASCII'case type constructor
data ASCII'case (letterCase :: Case) superset Source #
This type constructor indicates that a value from some ASCII superset is
valid ASCII, and also that any letters belong to a particular Case
indicated
by the letterCase
type parameter.
The superset
type parameter is the ASCII superset, which should be a type with
an instance of either CharSuperset
or StringSuperset
.
For example, whereas a Text
value may contain a combination of ASCII
and non-ASCII characters, a value of type
may contain only uppercase ASCII letters and ASCII
non-letters. ASCII'case
'UpperCase
Text
Instances
(Data superset, Typeable letterCase) => Data (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ASCII'case letterCase superset -> c (ASCII'case letterCase superset) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ASCII'case letterCase superset) # toConstr :: ASCII'case letterCase superset -> Constr # dataTypeOf :: ASCII'case letterCase superset -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ASCII'case letterCase superset)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ASCII'case letterCase superset)) # gmapT :: (forall b. Data b => b -> b) -> ASCII'case letterCase superset -> ASCII'case letterCase superset # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ASCII'case letterCase superset -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ASCII'case letterCase superset -> r # gmapQ :: (forall d. Data d => d -> u) -> ASCII'case letterCase superset -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ASCII'case letterCase superset -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ASCII'case letterCase superset -> m (ASCII'case letterCase superset) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ASCII'case letterCase superset -> m (ASCII'case letterCase superset) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ASCII'case letterCase superset -> m (ASCII'case letterCase superset) # | |
Monoid superset => Monoid (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement mempty :: ASCII'case letterCase superset # mappend :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> ASCII'case letterCase superset # mconcat :: [ASCII'case letterCase superset] -> ASCII'case letterCase superset # | |
Semigroup superset => Semigroup (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement (<>) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> ASCII'case letterCase superset # sconcat :: NonEmpty (ASCII'case letterCase superset) -> ASCII'case letterCase superset # stimes :: Integral b => b -> ASCII'case letterCase superset -> ASCII'case letterCase superset # | |
Generic (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement type Rep (ASCII'case letterCase superset) :: Type -> Type # from :: ASCII'case letterCase superset -> Rep (ASCII'case letterCase superset) x # to :: Rep (ASCII'case letterCase superset) x -> ASCII'case letterCase superset # | |
Show superset => Show (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement showsPrec :: Int -> ASCII'case letterCase superset -> ShowS # show :: ASCII'case letterCase superset -> String # showList :: [ASCII'case letterCase superset] -> ShowS # | |
Eq superset => Eq (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement (==) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # (/=) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # | |
Ord superset => Ord (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement compare :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Ordering # (<) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # (<=) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # (>) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # (>=) :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> Bool # max :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> ASCII'case letterCase superset # min :: ASCII'case letterCase superset -> ASCII'case letterCase superset -> ASCII'case letterCase superset # | |
Hashable superset => Hashable (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement hashWithSalt :: Int -> ASCII'case letterCase superset -> Int # hash :: ASCII'case letterCase superset -> Int # | |
Lift (ASCII'case letterCase superset) superset Source # | |
Defined in ASCII.Lift lift :: ASCII'case letterCase superset -> superset Source # | |
type Rep (ASCII'case letterCase superset) Source # | |
Defined in ASCII.CaseRefinement type Rep (ASCII'case letterCase superset) = D1 ('MetaData "ASCII'case" "ASCII.CaseRefinement" "ascii-superset-1.2.1.0-PqYFz49aqaKbvHkGGEUDQ" 'True) (C1 ('MetaCons "ASCII'case_Unsafe" 'PrefixI 'True) (S1 ('MetaSel ('Just "lift") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 superset))) |
lift :: ASCII'case letterCase superset -> superset Source #
Discard the evidence that the value is known to consist entirely of ASCII characters in a particular case
asciiCaseUnsafe :: superset -> ASCII'case letterCase superset Source #
Change the type of an ASCII superset value that is known to be valid ASCII where
letters are restricted to the Case
designated by the letterCase
type variable.
This is "unsafe" because this assertion is unchecked, so this function is capable
of producing an invalid ASCII'case
value.
Aliases
The ASCII'upper
and ASCII'lower
type aliases exist primarily so that you can
use ASCII'case
without the DataKinds language extension.
type ASCII'upper superset = ASCII'case 'UpperCase superset Source #
type ASCII'lower superset = ASCII'case 'LowerCase superset Source #
Character functions
:: forall letterCase superset. KnownCase letterCase | |
=> CharSuperset superset | |
=> superset | Character which may or may not be in the ASCII character set; if a letter, may be in any case |
-> Maybe (ASCII'case letterCase superset) |
Return Just
an ASCII'case
character if the input is an ASCII character
in the proper case, or Nothing
otherwise
:: forall letterCase superset. KnownCase letterCase | |
=> CharSuperset superset | |
=> CaselessChar | Character which, if it is a letter, does not have a specified case |
-> ASCII'case letterCase superset |
Lift a CaselessChar
into a superset type, wrapped in the ASCII'case
refinement to save the evidence that it is ASCII in a particular case
:: CharSuperset superset | |
=> ASCII'case letterCase superset | Character that is known to be ASCII, and in the particular case if it is a letter |
-> CaselessChar |
Given a character from some type that is known to represent an ASCII character in a particular case, obtain the caseless ASCII character it represents
substituteChar :: forall letterCase superset. KnownCase letterCase => CharSuperset superset => superset -> ASCII'case letterCase superset Source #
Return an ASCII'case
character if the input is an ASCII character in the
proper case, or Substitute
otherwise
:: forall letterCase superset. KnownCase letterCase | |
=> CharSuperset superset | |
=> (CaselessChar -> CaselessChar) | Case-insensitive function over ASCII characters |
-> ASCII'case letterCase superset | Character that is known to be ASCII, and in the particular case if it is a letter |
-> ASCII'case letterCase superset |
Given a character from a larger set that is known to represent an ASCII character, manipulate it as if it were an ASCII character
refineCharToCase :: forall letterCase char. KnownCase letterCase => CharSuperset char => ASCII char -> ASCII'case letterCase char Source #
Given an ASCII superset character that is known to be valid ASCII, refine it further by converting it to a particular letter case
String functions
:: forall letterCase superset. KnownCase letterCase | |
=> StringSuperset superset | |
=> superset | String which may or may not be valid ASCII, where letters may be in any case |
-> Maybe (ASCII'case letterCase superset) |
Return Just
an ASCII'case
string if the input consists entirely of ASCII
characters in the proper case, or Nothing
otherwise
:: forall letterCase superset. KnownCase letterCase | |
=> StringSuperset superset | |
=> [CaselessChar] | Case-insensitive ASCII string represented as a list of caseless characters |
-> ASCII'case letterCase superset |
Lift a list of CaselessChar
into a superset string type, wrapped in the
ASCII'case
refinement to save the evidence that all of the characters in the
string are ASCII in a particular case.
:: forall letterCase superset. KnownCase letterCase | |
=> StringSuperset superset | |
=> ASCII'case letterCase superset | String that is known to be valid ASCII in a particular case |
-> [CaselessChar] |
Given a string from some type that is known to represent only ASCII characters in a particular case, obtain the caseless characters it represents
:: forall letterCase superset. KnownCase letterCase | |
=> StringSuperset superset | |
=> superset | String which may or may not be valid ASCII, where letters may be in any case |
-> ASCII'case letterCase superset |
Forces a string from a larger character set into cased ASCII by using the
Substitute
character in place of any unacceptable characters.
:: forall letterCase superset. KnownCase letterCase | |
=> StringSuperset superset | |
=> (CaselessChar -> CaselessChar) | Case-insensitive function over ASCII characters |
-> ASCII'case letterCase superset | String that is known to be valid ASCII in a particular case |
-> ASCII'case letterCase superset |
Given a string from a larger set that is known to consist entirely of ASCII characters in a particular case, map over the characters in the string as if they were caseless ASCII characters
refineStringToCase :: forall letterCase char. KnownCase letterCase => StringSuperset char => ASCII char -> ASCII'case letterCase char Source #
Given an ASCII superset string that is known to be valid ASCII, refine it further by converting it to a particular letter case