#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimental;GHC Types representing segments representable in the IPANone,17>Mg;!&ipa#Level lexical tones in Chao lettersipaALevel lexical tones, diacritic. The tone is a combining characteripa%Lexical tone contours in Chao lettersipaLLexical tone contours, as diacritics. Each contour is a combining character ipaSyllable stress ipaExplicit syllable break ipaAbsence of a breakipaeVarious articulatory features with a diacritic represenation in the IPA. These can be combined with  s using the ( constructor of that type to produce a 4 annotated with a given articulatory feature, e.g.:HtoIPA $ WithSegmentalFeature (Length Long) (Vowel Close Front Unrounded)Just (IPA "i\720") -- i0ipaKVowel length; also serves as a notation for consonant gemination in the IPA4ipaqThe default/unmarked length; using this constructor doesn't affect the default IPA representation of the segment6ipa%Lexical tone represented as a contourAipa)Lexical tone with Chao-style tone lettersIipaVowel roundednessLipaVowel backnessRipa Vowel heightZipahVowel type. Note that this type does not prevent the construction of non-sensical vowel values such as )Diphthong (Diphthong ...) (Diphthong ...)^ipa"Sibilance for fricative consonantsaipaPhonation (voicing)dipa!Consonantal place of articulationqipa"Consonantal manner of articulation}ipa$Pulmonic and non-pulmonic consonantsipaj! place represents a lateral clickipa*Constraint synonym for syllable containersipaSMultiple segments, or combination of multiple segments with suprasegmental featureipa?A grouping of segments without extra suprasegmental informationipa?Articulatory features that affect/encompass the entire syllableipaFA single segment, or combination of a segment and articulatory featureipa$Pulmonic and non-pulmonic consonantsipaMonoph-, diph-, and triphthongsipaA null/zero phoneipa#Various other articulatory featuresipaA segment that is conventionally surrounded by parentheses. This is not an official part of the IPA, but is nevertheless encountered fairly frequently in IPA notation in the wildipaX-SAMPA is an ASCII encoding of the IPA (ca. 1993). Note that fewer transcriptions are possible using X-SAMPA than the IPA, so certain valid  #s have no direct equivalence using  . As with ,  is an instance of ipa The wrapped % should only contain ASCII charactersipaTextual representation of a speech segment or grouping of segments, with zero or more articulatory features; encoded in IPA transcription. Note this has a  instance, so various )s can conveniently be concatenated with <>ipaThe  value should be d to  ipas  value to   before wrapping it in *. This is to ensure the comparability of  valuesipaWraps a  value in 3, provided the text only contains ASCII characters   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~qrstuvwxyz{|defghijklmnopabc^_`Z[\]RSTUVWXYLMNOPQIJK  6789:;<=>?@ABCDEFGH 012345 !"#$%&'()*+,-./(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNoneXb ipa:Parse a single literal segment in IPA notation, returning  upon failure and a ] upon success. Note that supplying two or more segment literals will cause the parse to failparseSegment "h"NRight (WithSegmentalFeature (Length OverLong) (Vowel Close Central Unrounded))parseSegment "hb"1Left (InvalidIPA "Failed to parse character 'b'")ipa4Parse a literal syllable in IPA notation, returning  upon failure and a A upon success, where the syllable is parameterized by some type t satisfying a ! constraint. Note that, as with G, supplying two or more syllable literals will cause the parse to failparseSyllable @[] "ma"@Right (WithSuprasegmentalFeature (LexicalToneContour HighRising)Y (Syllable [Consonant (Pulmonic Voiced Bilabial Nasal),Vowel Open Front Unrounded]))ipaoParse several syllables into a container parameterized by the same type as that parameterizing the individual Fs. Whitespace between syllables is interpreted as a syllable boundaryparseSyllables @[] "haj Sa" <Right [ WithSuprasegmentalFeature (LevelLexicalTone MidTone)T (Syllable [ Consonant (Pulmonic Voiceless Glottal (Fricative NonSibilant))U , WithSegmentalFeature (Length Long) (Vowel Open Front Unrounded)E , Consonant (Pulmonic Voiced Palatal Approximant) ])< , WithSuprasegmentalFeature (LevelLexicalTone MidTone); (Syllable [ Consonant (Implosive Voiced Bilabial)U , WithSegmentalFeature (Length Long) (Vowel Open Front Unrounded) ]) ]ipaParser for syllables. This function is exposed to allow users to create more specific parsers for aggregations of multiple syllablesipayParser for segments. This function is exposed to allow users to create more specific parsers for multi-segment sequencesipaaParser for poly-syllabic sequences, with individual syllables separated by (optional) whitespaceipaAs , but in X-SAMPA notationipaAs , but in X-SAMPA notationipaAs , but in X-SAMPA notationipaAs , but in X-SAMPA notationipaAs , but in X-SAMPA notation (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone"#_kipaQEntities representable through X-SAMPA transcription, an ASCII subset of the IPAipa Similar to ; produces an  transcription given a valid .ipaParse text in X-SAMPA notationipa0Entities representable through IPA transcriptionipa Produces an  transcription given a valid ; a result of NothingS indicates either an unattested-yet-possible segment, or one considered impossibleipaParse text in IPA notation(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone "#SX_kMipa Convert an  value to its equivalent in l; note that several features and segments that can be transcribed in IPA notation are missing from X-SAMPAipa Convert an  value to its equivalent in ipa!Partial function for creating an H. Useful if you are certain that the sound in question is representableipa!Partial function for creating an ,. NB: Certain segments that have a defined  representation have no  equivalentipa@Does a text value in IPA notation represent a valid instance of ? Note that you will need -XTypeApplications( to use this, and that this just calls  to determine validityisValid @Segment "L"FalseisValid @Segment ""Trueipa1Does a text value represent valid individual IPA ?ipaIs a text value a valid IPA ?ipa Tests if a 1 is obstruent, i.e. formed by obstructing airflowipa Tests if F is sonorant, i.e. if it is created with an uninterrupted flow of airipaTests pulmonic }Q membership in the labial category, whose active articulator is one or both lipsipaTests pulmonic }V membership in the coronal class, whose active articulator is the front of the tongueipaTests pulmonic }] membership in the dorsal class, whose active articulator is the dorsum (back of the tongue)ipaTests pulmonic }K membership in the laryngeal class, whose active articulator is the larynxipa Tests if }| is rhotic, a vague category of R-like sounds typically represented lexicographically by some variant of the Latin letter ripa Tests if a }B is liquid, a category of rhotics and voiced lateral approximants   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]      ipa-0.3-inplaceLanguage.IPA.TypesLanguage.IPA.ParserLanguage.IPA.Class Language.IPA IPAException InvalidIPA InvalidXSampaSuprasegmentalFeatureLevelLexicalToneLevelLexicalToneDiacriticLexicalToneContourLexicalToneContourDiacritic ToneNumberStressBreakLinkingPrimary SecondarySegmentalFeatureVoicingLengthSecondaryArticulation Aspirated MoreRounded LessRoundedAdvanced Retracted CentralizedMidCentralized CompressedSyllabic NonSyllabic Rhotacized BreathyVoice CreakyVoiceLinguoLabialized Labialized Palatalized VelarizedPharyngealizedRaisedLoweredAdvancedTongueRootRetractedTongueRoot DentalizedApicalLaminal Nasalized NasalReleaseLateralReleaseNoAudibleReleaseOverLongHalfLongLongShort ExtraShort ToneContourRisingFalling HighRising LowRising HighFalling LowFalling RisingFalling FallingRising GlobalRise GlobalFall LevelTone ExtraHighToneHighToneMidToneLowTone ExtraLowToneDownStepUpStep RoundednessRounded UnroundedBacknessFront NearFrontCentralNearBackBackHeightClose NearCloseCloseMidMidOpenMidNearOpenOpenVowelPure DiphthongizedTriphthongized SibilanceSibilant NonSibilant PhonationVoiced VoicelessPlaceBilabial LabioDental LinguoLabialDentalAlveolar PostAlveolar RetroflexPalatalVelarUvular PharyngealGlottalMannerNasalPlosive Fricative Affricate ApproximantFlapTrillLateralAffricateLateralFricativeLateralApproximant LateralFlap ConsonantPulmonicEjective ImplosiveClickDoublyArticulated MultiSegmentSyllableWithSuprasegmentalFeatureSegmentZeroWithSegmentalFeatureOptionalXSampaunXSampaIPAunIPA Triphthong Diphthong PureVowelDoublyArticulatedConsonantImplosiveConsonantClickConsonantEjectiveConsonantPulmonicConsonantmkIPAmkXSampa$fExceptionIPAException $fShowIPA$fEqIPA $fGenericIPA$fSemigroupIPA $fShowXSampa $fEqXSampa$fGenericXSampa$fSemigroupXSampa $fShowPlace $fEqPlace$fGenericPlace $fOrdPlace$fShowPhonation $fEqPhonation$fGenericPhonation$fShowSibilance $fEqSibilance$fGenericSibilance $fShowManner $fEqManner$fGenericManner$fShowConsonant $fEqConsonant$fGenericConsonant $fShowHeight $fEqHeight$fGenericHeight$fShowBackness $fEqBackness$fGenericBackness $fOrdBackness$fShowRoundedness$fEqRoundedness$fGenericRoundedness $fShowVowel $fEqVowel$fGenericVowel$fShowLevelTone $fEqLevelTone$fGenericLevelTone$fOrdLevelTone$fShowToneContour$fEqToneContour$fGenericToneContour$fOrdToneContour $fShowLength $fEqLength$fGenericLength $fOrdLength$fShowSegmentalFeature$fEqSegmentalFeature$fGenericSegmentalFeature $fShowSegment $fEqSegment$fGenericSegment $fShowStress $fEqStress$fGenericStress $fOrdStress$fShowSuprasegmentalFeature$fEqSuprasegmentalFeature$fGenericSuprasegmentalFeature$fGenericSyllable$fShowIPAException$fEqIPAException$fGenericIPAException $fEqSyllable$fShowSyllable parseSegment parseSyllableparseSyllables syllablePsegmentP syllablesPparseSegmentXSampaparseSyllableXSampaparseSyllablesXSampasegmentXSampaPsyllableXSampaP ReprXSampatoXSampa parseXSampaReprIPAtoIPAparseIPA$fReprIPASegment$fReprIPASyllable$fReprXSampaSegment$fReprXSampaSyllable ipaToXSampa xSampaToIpatoIPA' toXSampa'isValidisValidSegmentisValidSyllable isObstruent isSonorantisLabial isCoronalisDorsal isLaryngealisRhoticisLiquidbaseGHC.Base Semigroup text-1.2.4.0Data.Text.InternalText1unicode-transforms-0.3.7.1-L1CWTxaXhxdKwQQ95lgGKwData.Text.Normalize normalizeData.Unicode.TypesNFC