-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Unicode security mechanisms database
--
-- unicode-data-security provides Haskell APIs to access the
-- Unicode security mechanisms database.
--
-- The Haskell data structures are generated programmatically from the
-- database. The latest Unicode version supported by this library is
-- 15.0.0.
@package unicode-data-security
@version 0.3.0
-- | Unicode Security Mechanisms functions based on Unicode Technical
-- Standard #39.
module Unicode.Char.Identifiers.Security
-- | Version of the Unicode standard used by this package: 15.0.0.
unicodeVersion :: Version
-- | Returns True if the given character is allowed in an
-- identifier.
--
--
-- - Restricted characters should be treated with caution when
-- considering possible use in identifiers, and should be disallowed
-- unless there is good reason to allow them in the environment in
-- question.
-- - Allowed characters are not typically used as is by
-- implementations. Instead, they are applied as filters to the set of
-- supported characters.
--
isAllowedInIdentifier :: Char -> Bool
-- | Identifier type
data IdentifierType
-- | Unassigned characters, private use characters, surrogates,
-- non-whitespace control characters.
NotCharacter :: IdentifierType
-- | Characters with the Unicode property Deprecated=Yes.
Deprecated :: IdentifierType
-- | Characters with the Unicode property
-- Default_Ignorable_Code_Point=Yes.
DefaultIgnorable :: IdentifierType
-- | Characters that cannot occur in strings normalized to NFKC.
NotNFKC :: IdentifierType
-- | Characters that do not qualify as default Unicode identifiers; that
-- is, they do not have the Unicode property XID_Continue=True.
NotXID :: IdentifierType
-- | Characters with Script_Extensions values containing a script
-- in Excluded Scripts, and no script from Limited Use
-- Scripts or Recommended Scripts, other than “Common” or
-- “Inherited”.
Exclusion :: IdentifierType
-- | Characters that are no longer in modern use, or that are not commonly
-- used in modern text.
Obsolete :: IdentifierType
-- | Specialized usage: technical, liturgical, etc.
Technical :: IdentifierType
-- | Characters that are uncommon, or are limited in use, or whose usage is
-- uncertain.
UncommonUse :: IdentifierType
-- | Characters from scripts that are in limited use.
LimitedUse :: IdentifierType
-- | Exceptionally allowed characters.
Inclusion :: IdentifierType
-- | Characters from scripts that are in widespread everyday common use.
Recommended :: IdentifierType
-- | Returns the IdentifierTypes corresponding to a character.
identifierTypes :: Char -> NonEmpty IdentifierType
-- | Return True if the given IdentifierType is allowed.
isIdentifierTypeAllowed :: IdentifierType -> Bool
-- | Returns the prototype of a character if it is
-- unintentionally confusable, else Nothing.
confusablePrototype :: Char -> String
-- | Returns the list of intentional confusables of a character, if
-- any.
intentionalConfusables :: Char -> String
-- | Returns True if the character is intentionally
-- confusable.
isIntentionallyConfusable :: Char -> Bool