on master help sign in
Rename :!: to :*: for consistency with other stream-based packages.

--HG-- extra : convert_revision : cee510be1abf9d4e8dfed25e4de6407c1e21db88

commitcd3c522c430c3dcc4e00767fc729887e3382f118 authorBryan O'Sullivan <bos@serpentine.com> dateTue 6 Oct 2009, 22:23 (17 years ago) parentb69c074
7 files changed+336−335
Data/Text/Fusion.hs+5−5 Data/Text/Fusion/CaseMapping.hs+223−223 Data/Text/Fusion/Common.hs+82−82 Data/Text/Fusion/Internal.hs+2−2 Data/Text/Lazy/Encoding/Fusion.hs+16−16 Data/Text/Lazy/Fusion.hs+5−5 Data/Text/Search.hs+3−2
Data/Text/Fusion.hs+5−5
@@ -157,14 +157,14 @@ reverse (Stream next s len0)
157157-- | /O(n)/ Perform the equivalent of 'scanr' over a list, only with
158158-- the input and result reversed.
159159reverseScanr :: (Char -> Char -> Char) -> Char -> Stream Char -> Stream Char
160−reverseScanr f z0 (Stream next0 s0 len) = Stream next (S1 :!: z0 :!: s0) (len+1) -- HINT maybe too low
160+reverseScanr f z0 (Stream next0 s0 len) = Stream next (S1 :*: z0 :*: s0) (len+1) -- HINT maybe too low
161161 where
162162 {-# INLINE next #-}
163− next (S1 :!: z :!: s) = Yield z (S2 :!: z :!: s)
164− next (S2 :!: z :!: s) = case next0 s of
163+ next (S1 :*: z :*: s) = Yield z (S2 :*: z :*: s)
164+ next (S2 :*: z :*: s) = case next0 s of
165165 Yield x s' -> let !x' = f x z
166− in Yield x' (S2 :!: x' :!: s')
167− Skip s' -> Skip (S2 :!: z :!: s')
166+ in Yield x' (S2 :*: x' :*: s')
167+ Skip s' -> Skip (S2 :*: z :*: s')
168168 Done -> Done
169169{-# INLINE reverseScanr #-}
170170
Data/Text/Fusion/CaseMapping.hs+223−223
@@ -8,449 +8,449 @@ import Data.Text.Fusion.Internal
88upperMapping :: forall s. Char -> s -> Step (PairS (PairS s Char) Char) Char
99{-# INLINE upperMapping #-}
1010-- LATIN SMALL LETTER SHARP S
11−upperMapping '\x00df' s = Yield '\x0053' (s :!: '\x0053' :!: '\x0000')
11+upperMapping '\x00df' s = Yield '\x0053' (s :*: '\x0053' :*: '\x0000')
1212-- LATIN SMALL LIGATURE FF
13−upperMapping '\xfb00' s = Yield '\x0046' (s :!: '\x0046' :!: '\x0000')
13+upperMapping '\xfb00' s = Yield '\x0046' (s :*: '\x0046' :*: '\x0000')
1414-- LATIN SMALL LIGATURE FI
15−upperMapping '\xfb01' s = Yield '\x0046' (s :!: '\x0049' :!: '\x0000')
15+upperMapping '\xfb01' s = Yield '\x0046' (s :*: '\x0049' :*: '\x0000')
1616-- LATIN SMALL LIGATURE FL
17−upperMapping '\xfb02' s = Yield '\x0046' (s :!: '\x004c' :!: '\x0000')
17+upperMapping '\xfb02' s = Yield '\x0046' (s :*: '\x004c' :*: '\x0000')
1818-- LATIN SMALL LIGATURE FFI
19−upperMapping '\xfb03' s = Yield '\x0046' (s :!: '\x0046' :!: '\x0049')
19+upperMapping '\xfb03' s = Yield '\x0046' (s :*: '\x0046' :*: '\x0049')
2020-- LATIN SMALL LIGATURE FFL
21−upperMapping '\xfb04' s = Yield '\x0046' (s :!: '\x0046' :!: '\x004c')
21+upperMapping '\xfb04' s = Yield '\x0046' (s :*: '\x0046' :*: '\x004c')
2222-- LATIN SMALL LIGATURE LONG S T
23−upperMapping '\xfb05' s = Yield '\x0053' (s :!: '\x0054' :!: '\x0000')
23+upperMapping '\xfb05' s = Yield '\x0053' (s :*: '\x0054' :*: '\x0000')
2424-- LATIN SMALL LIGATURE ST
25−upperMapping '\xfb06' s = Yield '\x0053' (s :!: '\x0054' :!: '\x0000')
25+upperMapping '\xfb06' s = Yield '\x0053' (s :*: '\x0054' :*: '\x0000')
2626-- ARMENIAN SMALL LIGATURE ECH YIWN
27−upperMapping '\x0587' s = Yield '\x0535' (s :!: '\x0552' :!: '\x0000')
27+upperMapping '\x0587' s = Yield '\x0535' (s :*: '\x0552' :*: '\x0000')
2828-- ARMENIAN SMALL LIGATURE MEN NOW
29−upperMapping '\xfb13' s = Yield '\x0544' (s :!: '\x0546' :!: '\x0000')
29+upperMapping '\xfb13' s = Yield '\x0544' (s :*: '\x0546' :*: '\x0000')
3030-- ARMENIAN SMALL LIGATURE MEN ECH
31−upperMapping '\xfb14' s = Yield '\x0544' (s :!: '\x0535' :!: '\x0000')
31+upperMapping '\xfb14' s = Yield '\x0544' (s :*: '\x0535' :*: '\x0000')
3232-- ARMENIAN SMALL LIGATURE MEN INI
33−upperMapping '\xfb15' s = Yield '\x0544' (s :!: '\x053b' :!: '\x0000')
33+upperMapping '\xfb15' s = Yield '\x0544' (s :*: '\x053b' :*: '\x0000')
3434-- ARMENIAN SMALL LIGATURE VEW NOW
35−upperMapping '\xfb16' s = Yield '\x054e' (s :!: '\x0546' :!: '\x0000')
35+upperMapping '\xfb16' s = Yield '\x054e' (s :*: '\x0546' :*: '\x0000')
3636-- ARMENIAN SMALL LIGATURE MEN XEH
37−upperMapping '\xfb17' s = Yield '\x0544' (s :!: '\x053d' :!: '\x0000')
37+upperMapping '\xfb17' s = Yield '\x0544' (s :*: '\x053d' :*: '\x0000')
3838-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
39−upperMapping '\x0149' s = Yield '\x02bc' (s :!: '\x004e' :!: '\x0000')
39+upperMapping '\x0149' s = Yield '\x02bc' (s :*: '\x004e' :*: '\x0000')
4040-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
41−upperMapping '\x0390' s = Yield '\x0399' (s :!: '\x0308' :!: '\x0301')
41+upperMapping '\x0390' s = Yield '\x0399' (s :*: '\x0308' :*: '\x0301')
4242-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
43−upperMapping '\x03b0' s = Yield '\x03a5' (s :!: '\x0308' :!: '\x0301')
43+upperMapping '\x03b0' s = Yield '\x03a5' (s :*: '\x0308' :*: '\x0301')
4444-- LATIN SMALL LETTER J WITH CARON
45−upperMapping '\x01f0' s = Yield '\x004a' (s :!: '\x030c' :!: '\x0000')
45+upperMapping '\x01f0' s = Yield '\x004a' (s :*: '\x030c' :*: '\x0000')
4646-- LATIN SMALL LETTER H WITH LINE BELOW
47−upperMapping '\x1e96' s = Yield '\x0048' (s :!: '\x0331' :!: '\x0000')
47+upperMapping '\x1e96' s = Yield '\x0048' (s :*: '\x0331' :*: '\x0000')
4848-- LATIN SMALL LETTER T WITH DIAERESIS
49−upperMapping '\x1e97' s = Yield '\x0054' (s :!: '\x0308' :!: '\x0000')
49+upperMapping '\x1e97' s = Yield '\x0054' (s :*: '\x0308' :*: '\x0000')
5050-- LATIN SMALL LETTER W WITH RING ABOVE
51−upperMapping '\x1e98' s = Yield '\x0057' (s :!: '\x030a' :!: '\x0000')
51+upperMapping '\x1e98' s = Yield '\x0057' (s :*: '\x030a' :*: '\x0000')
5252-- LATIN SMALL LETTER Y WITH RING ABOVE
53−upperMapping '\x1e99' s = Yield '\x0059' (s :!: '\x030a' :!: '\x0000')
53+upperMapping '\x1e99' s = Yield '\x0059' (s :*: '\x030a' :*: '\x0000')
5454-- LATIN SMALL LETTER A WITH RIGHT HALF RING
55−upperMapping '\x1e9a' s = Yield '\x0041' (s :!: '\x02be' :!: '\x0000')
55+upperMapping '\x1e9a' s = Yield '\x0041' (s :*: '\x02be' :*: '\x0000')
5656-- GREEK SMALL LETTER UPSILON WITH PSILI
57−upperMapping '\x1f50' s = Yield '\x03a5' (s :!: '\x0313' :!: '\x0000')
57+upperMapping '\x1f50' s = Yield '\x03a5' (s :*: '\x0313' :*: '\x0000')
5858-- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
59−upperMapping '\x1f52' s = Yield '\x03a5' (s :!: '\x0313' :!: '\x0300')
59+upperMapping '\x1f52' s = Yield '\x03a5' (s :*: '\x0313' :*: '\x0300')
6060-- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
61−upperMapping '\x1f54' s = Yield '\x03a5' (s :!: '\x0313' :!: '\x0301')
61+upperMapping '\x1f54' s = Yield '\x03a5' (s :*: '\x0313' :*: '\x0301')
6262-- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
63−upperMapping '\x1f56' s = Yield '\x03a5' (s :!: '\x0313' :!: '\x0342')
63+upperMapping '\x1f56' s = Yield '\x03a5' (s :*: '\x0313' :*: '\x0342')
6464-- GREEK SMALL LETTER ALPHA WITH PERISPOMENI
65−upperMapping '\x1fb6' s = Yield '\x0391' (s :!: '\x0342' :!: '\x0000')
65+upperMapping '\x1fb6' s = Yield '\x0391' (s :*: '\x0342' :*: '\x0000')
6666-- GREEK SMALL LETTER ETA WITH PERISPOMENI
67−upperMapping '\x1fc6' s = Yield '\x0397' (s :!: '\x0342' :!: '\x0000')
67+upperMapping '\x1fc6' s = Yield '\x0397' (s :*: '\x0342' :*: '\x0000')
6868-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
69−upperMapping '\x1fd2' s = Yield '\x0399' (s :!: '\x0308' :!: '\x0300')
69+upperMapping '\x1fd2' s = Yield '\x0399' (s :*: '\x0308' :*: '\x0300')
7070-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
71−upperMapping '\x1fd3' s = Yield '\x0399' (s :!: '\x0308' :!: '\x0301')
71+upperMapping '\x1fd3' s = Yield '\x0399' (s :*: '\x0308' :*: '\x0301')
7272-- GREEK SMALL LETTER IOTA WITH PERISPOMENI
73−upperMapping '\x1fd6' s = Yield '\x0399' (s :!: '\x0342' :!: '\x0000')
73+upperMapping '\x1fd6' s = Yield '\x0399' (s :*: '\x0342' :*: '\x0000')
7474-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
75−upperMapping '\x1fd7' s = Yield '\x0399' (s :!: '\x0308' :!: '\x0342')
75+upperMapping '\x1fd7' s = Yield '\x0399' (s :*: '\x0308' :*: '\x0342')
7676-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
77−upperMapping '\x1fe2' s = Yield '\x03a5' (s :!: '\x0308' :!: '\x0300')
77+upperMapping '\x1fe2' s = Yield '\x03a5' (s :*: '\x0308' :*: '\x0300')
7878-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
79−upperMapping '\x1fe3' s = Yield '\x03a5' (s :!: '\x0308' :!: '\x0301')
79+upperMapping '\x1fe3' s = Yield '\x03a5' (s :*: '\x0308' :*: '\x0301')
8080-- GREEK SMALL LETTER RHO WITH PSILI
81−upperMapping '\x1fe4' s = Yield '\x03a1' (s :!: '\x0313' :!: '\x0000')
81+upperMapping '\x1fe4' s = Yield '\x03a1' (s :*: '\x0313' :*: '\x0000')
8282-- GREEK SMALL LETTER UPSILON WITH PERISPOMENI
83−upperMapping '\x1fe6' s = Yield '\x03a5' (s :!: '\x0342' :!: '\x0000')
83+upperMapping '\x1fe6' s = Yield '\x03a5' (s :*: '\x0342' :*: '\x0000')
8484-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
85−upperMapping '\x1fe7' s = Yield '\x03a5' (s :!: '\x0308' :!: '\x0342')
85+upperMapping '\x1fe7' s = Yield '\x03a5' (s :*: '\x0308' :*: '\x0342')
8686-- GREEK SMALL LETTER OMEGA WITH PERISPOMENI
87−upperMapping '\x1ff6' s = Yield '\x03a9' (s :!: '\x0342' :!: '\x0000')
87+upperMapping '\x1ff6' s = Yield '\x03a9' (s :*: '\x0342' :*: '\x0000')
8888-- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
89−upperMapping '\x1f80' s = Yield '\x1f08' (s :!: '\x0399' :!: '\x0000')
89+upperMapping '\x1f80' s = Yield '\x1f08' (s :*: '\x0399' :*: '\x0000')
9090-- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
91−upperMapping '\x1f81' s = Yield '\x1f09' (s :!: '\x0399' :!: '\x0000')
91+upperMapping '\x1f81' s = Yield '\x1f09' (s :*: '\x0399' :*: '\x0000')
9292-- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
93−upperMapping '\x1f82' s = Yield '\x1f0a' (s :!: '\x0399' :!: '\x0000')
93+upperMapping '\x1f82' s = Yield '\x1f0a' (s :*: '\x0399' :*: '\x0000')
9494-- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
95−upperMapping '\x1f83' s = Yield '\x1f0b' (s :!: '\x0399' :!: '\x0000')
95+upperMapping '\x1f83' s = Yield '\x1f0b' (s :*: '\x0399' :*: '\x0000')
9696-- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
97−upperMapping '\x1f84' s = Yield '\x1f0c' (s :!: '\x0399' :!: '\x0000')
97+upperMapping '\x1f84' s = Yield '\x1f0c' (s :*: '\x0399' :*: '\x0000')
9898-- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
99−upperMapping '\x1f85' s = Yield '\x1f0d' (s :!: '\x0399' :!: '\x0000')
99+upperMapping '\x1f85' s = Yield '\x1f0d' (s :*: '\x0399' :*: '\x0000')
100100-- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
101−upperMapping '\x1f86' s = Yield '\x1f0e' (s :!: '\x0399' :!: '\x0000')
101+upperMapping '\x1f86' s = Yield '\x1f0e' (s :*: '\x0399' :*: '\x0000')
102102-- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
103−upperMapping '\x1f87' s = Yield '\x1f0f' (s :!: '\x0399' :!: '\x0000')
103+upperMapping '\x1f87' s = Yield '\x1f0f' (s :*: '\x0399' :*: '\x0000')
104104-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
105−upperMapping '\x1f88' s = Yield '\x1f08' (s :!: '\x0399' :!: '\x0000')
105+upperMapping '\x1f88' s = Yield '\x1f08' (s :*: '\x0399' :*: '\x0000')
106106-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
107−upperMapping '\x1f89' s = Yield '\x1f09' (s :!: '\x0399' :!: '\x0000')
107+upperMapping '\x1f89' s = Yield '\x1f09' (s :*: '\x0399' :*: '\x0000')
108108-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
109−upperMapping '\x1f8a' s = Yield '\x1f0a' (s :!: '\x0399' :!: '\x0000')
109+upperMapping '\x1f8a' s = Yield '\x1f0a' (s :*: '\x0399' :*: '\x0000')
110110-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
111−upperMapping '\x1f8b' s = Yield '\x1f0b' (s :!: '\x0399' :!: '\x0000')
111+upperMapping '\x1f8b' s = Yield '\x1f0b' (s :*: '\x0399' :*: '\x0000')
112112-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
113−upperMapping '\x1f8c' s = Yield '\x1f0c' (s :!: '\x0399' :!: '\x0000')
113+upperMapping '\x1f8c' s = Yield '\x1f0c' (s :*: '\x0399' :*: '\x0000')
114114-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
115−upperMapping '\x1f8d' s = Yield '\x1f0d' (s :!: '\x0399' :!: '\x0000')
115+upperMapping '\x1f8d' s = Yield '\x1f0d' (s :*: '\x0399' :*: '\x0000')
116116-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
117−upperMapping '\x1f8e' s = Yield '\x1f0e' (s :!: '\x0399' :!: '\x0000')
117+upperMapping '\x1f8e' s = Yield '\x1f0e' (s :*: '\x0399' :*: '\x0000')
118118-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
119−upperMapping '\x1f8f' s = Yield '\x1f0f' (s :!: '\x0399' :!: '\x0000')
119+upperMapping '\x1f8f' s = Yield '\x1f0f' (s :*: '\x0399' :*: '\x0000')
120120-- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
121−upperMapping '\x1f90' s = Yield '\x1f28' (s :!: '\x0399' :!: '\x0000')
121+upperMapping '\x1f90' s = Yield '\x1f28' (s :*: '\x0399' :*: '\x0000')
122122-- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
123−upperMapping '\x1f91' s = Yield '\x1f29' (s :!: '\x0399' :!: '\x0000')
123+upperMapping '\x1f91' s = Yield '\x1f29' (s :*: '\x0399' :*: '\x0000')
124124-- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
125−upperMapping '\x1f92' s = Yield '\x1f2a' (s :!: '\x0399' :!: '\x0000')
125+upperMapping '\x1f92' s = Yield '\x1f2a' (s :*: '\x0399' :*: '\x0000')
126126-- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
127−upperMapping '\x1f93' s = Yield '\x1f2b' (s :!: '\x0399' :!: '\x0000')
127+upperMapping '\x1f93' s = Yield '\x1f2b' (s :*: '\x0399' :*: '\x0000')
128128-- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
129−upperMapping '\x1f94' s = Yield '\x1f2c' (s :!: '\x0399' :!: '\x0000')
129+upperMapping '\x1f94' s = Yield '\x1f2c' (s :*: '\x0399' :*: '\x0000')
130130-- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
131−upperMapping '\x1f95' s = Yield '\x1f2d' (s :!: '\x0399' :!: '\x0000')
131+upperMapping '\x1f95' s = Yield '\x1f2d' (s :*: '\x0399' :*: '\x0000')
132132-- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
133−upperMapping '\x1f96' s = Yield '\x1f2e' (s :!: '\x0399' :!: '\x0000')
133+upperMapping '\x1f96' s = Yield '\x1f2e' (s :*: '\x0399' :*: '\x0000')
134134-- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
135−upperMapping '\x1f97' s = Yield '\x1f2f' (s :!: '\x0399' :!: '\x0000')
135+upperMapping '\x1f97' s = Yield '\x1f2f' (s :*: '\x0399' :*: '\x0000')
136136-- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
137−upperMapping '\x1f98' s = Yield '\x1f28' (s :!: '\x0399' :!: '\x0000')
137+upperMapping '\x1f98' s = Yield '\x1f28' (s :*: '\x0399' :*: '\x0000')
138138-- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
139−upperMapping '\x1f99' s = Yield '\x1f29' (s :!: '\x0399' :!: '\x0000')
139+upperMapping '\x1f99' s = Yield '\x1f29' (s :*: '\x0399' :*: '\x0000')
140140-- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
141−upperMapping '\x1f9a' s = Yield '\x1f2a' (s :!: '\x0399' :!: '\x0000')
141+upperMapping '\x1f9a' s = Yield '\x1f2a' (s :*: '\x0399' :*: '\x0000')
142142-- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
143−upperMapping '\x1f9b' s = Yield '\x1f2b' (s :!: '\x0399' :!: '\x0000')
143+upperMapping '\x1f9b' s = Yield '\x1f2b' (s :*: '\x0399' :*: '\x0000')
144144-- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
145−upperMapping '\x1f9c' s = Yield '\x1f2c' (s :!: '\x0399' :!: '\x0000')
145+upperMapping '\x1f9c' s = Yield '\x1f2c' (s :*: '\x0399' :*: '\x0000')
146146-- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
147−upperMapping '\x1f9d' s = Yield '\x1f2d' (s :!: '\x0399' :!: '\x0000')
147+upperMapping '\x1f9d' s = Yield '\x1f2d' (s :*: '\x0399' :*: '\x0000')
148148-- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
149−upperMapping '\x1f9e' s = Yield '\x1f2e' (s :!: '\x0399' :!: '\x0000')
149+upperMapping '\x1f9e' s = Yield '\x1f2e' (s :*: '\x0399' :*: '\x0000')
150150-- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
151−upperMapping '\x1f9f' s = Yield '\x1f2f' (s :!: '\x0399' :!: '\x0000')
151+upperMapping '\x1f9f' s = Yield '\x1f2f' (s :*: '\x0399' :*: '\x0000')
152152-- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
153−upperMapping '\x1fa0' s = Yield '\x1f68' (s :!: '\x0399' :!: '\x0000')
153+upperMapping '\x1fa0' s = Yield '\x1f68' (s :*: '\x0399' :*: '\x0000')
154154-- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
155−upperMapping '\x1fa1' s = Yield '\x1f69' (s :!: '\x0399' :!: '\x0000')
155+upperMapping '\x1fa1' s = Yield '\x1f69' (s :*: '\x0399' :*: '\x0000')
156156-- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
157−upperMapping '\x1fa2' s = Yield '\x1f6a' (s :!: '\x0399' :!: '\x0000')
157+upperMapping '\x1fa2' s = Yield '\x1f6a' (s :*: '\x0399' :*: '\x0000')
158158-- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
159−upperMapping '\x1fa3' s = Yield '\x1f6b' (s :!: '\x0399' :!: '\x0000')
159+upperMapping '\x1fa3' s = Yield '\x1f6b' (s :*: '\x0399' :*: '\x0000')
160160-- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
161−upperMapping '\x1fa4' s = Yield '\x1f6c' (s :!: '\x0399' :!: '\x0000')
161+upperMapping '\x1fa4' s = Yield '\x1f6c' (s :*: '\x0399' :*: '\x0000')
162162-- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
163−upperMapping '\x1fa5' s = Yield '\x1f6d' (s :!: '\x0399' :!: '\x0000')
163+upperMapping '\x1fa5' s = Yield '\x1f6d' (s :*: '\x0399' :*: '\x0000')
164164-- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
165−upperMapping '\x1fa6' s = Yield '\x1f6e' (s :!: '\x0399' :!: '\x0000')
165+upperMapping '\x1fa6' s = Yield '\x1f6e' (s :*: '\x0399' :*: '\x0000')
166166-- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
167−upperMapping '\x1fa7' s = Yield '\x1f6f' (s :!: '\x0399' :!: '\x0000')
167+upperMapping '\x1fa7' s = Yield '\x1f6f' (s :*: '\x0399' :*: '\x0000')
168168-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
169−upperMapping '\x1fa8' s = Yield '\x1f68' (s :!: '\x0399' :!: '\x0000')
169+upperMapping '\x1fa8' s = Yield '\x1f68' (s :*: '\x0399' :*: '\x0000')
170170-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
171−upperMapping '\x1fa9' s = Yield '\x1f69' (s :!: '\x0399' :!: '\x0000')
171+upperMapping '\x1fa9' s = Yield '\x1f69' (s :*: '\x0399' :*: '\x0000')
172172-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
173−upperMapping '\x1faa' s = Yield '\x1f6a' (s :!: '\x0399' :!: '\x0000')
173+upperMapping '\x1faa' s = Yield '\x1f6a' (s :*: '\x0399' :*: '\x0000')
174174-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
175−upperMapping '\x1fab' s = Yield '\x1f6b' (s :!: '\x0399' :!: '\x0000')
175+upperMapping '\x1fab' s = Yield '\x1f6b' (s :*: '\x0399' :*: '\x0000')
176176-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
177−upperMapping '\x1fac' s = Yield '\x1f6c' (s :!: '\x0399' :!: '\x0000')
177+upperMapping '\x1fac' s = Yield '\x1f6c' (s :*: '\x0399' :*: '\x0000')
178178-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
179−upperMapping '\x1fad' s = Yield '\x1f6d' (s :!: '\x0399' :!: '\x0000')
179+upperMapping '\x1fad' s = Yield '\x1f6d' (s :*: '\x0399' :*: '\x0000')
180180-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
181−upperMapping '\x1fae' s = Yield '\x1f6e' (s :!: '\x0399' :!: '\x0000')
181+upperMapping '\x1fae' s = Yield '\x1f6e' (s :*: '\x0399' :*: '\x0000')
182182-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
183−upperMapping '\x1faf' s = Yield '\x1f6f' (s :!: '\x0399' :!: '\x0000')
183+upperMapping '\x1faf' s = Yield '\x1f6f' (s :*: '\x0399' :*: '\x0000')
184184-- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
185−upperMapping '\x1fb3' s = Yield '\x0391' (s :!: '\x0399' :!: '\x0000')
185+upperMapping '\x1fb3' s = Yield '\x0391' (s :*: '\x0399' :*: '\x0000')
186186-- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
187−upperMapping '\x1fbc' s = Yield '\x0391' (s :!: '\x0399' :!: '\x0000')
187+upperMapping '\x1fbc' s = Yield '\x0391' (s :*: '\x0399' :*: '\x0000')
188188-- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
189−upperMapping '\x1fc3' s = Yield '\x0397' (s :!: '\x0399' :!: '\x0000')
189+upperMapping '\x1fc3' s = Yield '\x0397' (s :*: '\x0399' :*: '\x0000')
190190-- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
191−upperMapping '\x1fcc' s = Yield '\x0397' (s :!: '\x0399' :!: '\x0000')
191+upperMapping '\x1fcc' s = Yield '\x0397' (s :*: '\x0399' :*: '\x0000')
192192-- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
193−upperMapping '\x1ff3' s = Yield '\x03a9' (s :!: '\x0399' :!: '\x0000')
193+upperMapping '\x1ff3' s = Yield '\x03a9' (s :*: '\x0399' :*: '\x0000')
194194-- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
195−upperMapping '\x1ffc' s = Yield '\x03a9' (s :!: '\x0399' :!: '\x0000')
195+upperMapping '\x1ffc' s = Yield '\x03a9' (s :*: '\x0399' :*: '\x0000')
196196-- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
197−upperMapping '\x1fb2' s = Yield '\x1fba' (s :!: '\x0399' :!: '\x0000')
197+upperMapping '\x1fb2' s = Yield '\x1fba' (s :*: '\x0399' :*: '\x0000')
198198-- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
199−upperMapping '\x1fb4' s = Yield '\x0386' (s :!: '\x0399' :!: '\x0000')
199+upperMapping '\x1fb4' s = Yield '\x0386' (s :*: '\x0399' :*: '\x0000')
200200-- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
201−upperMapping '\x1fc2' s = Yield '\x1fca' (s :!: '\x0399' :!: '\x0000')
201+upperMapping '\x1fc2' s = Yield '\x1fca' (s :*: '\x0399' :*: '\x0000')
202202-- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
203−upperMapping '\x1fc4' s = Yield '\x0389' (s :!: '\x0399' :!: '\x0000')
203+upperMapping '\x1fc4' s = Yield '\x0389' (s :*: '\x0399' :*: '\x0000')
204204-- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
205−upperMapping '\x1ff2' s = Yield '\x1ffa' (s :!: '\x0399' :!: '\x0000')
205+upperMapping '\x1ff2' s = Yield '\x1ffa' (s :*: '\x0399' :*: '\x0000')
206206-- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
207−upperMapping '\x1ff4' s = Yield '\x038f' (s :!: '\x0399' :!: '\x0000')
207+upperMapping '\x1ff4' s = Yield '\x038f' (s :*: '\x0399' :*: '\x0000')
208208-- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
209−upperMapping '\x1fb7' s = Yield '\x0391' (s :!: '\x0342' :!: '\x0399')
209+upperMapping '\x1fb7' s = Yield '\x0391' (s :*: '\x0342' :*: '\x0399')
210210-- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
211−upperMapping '\x1fc7' s = Yield '\x0397' (s :!: '\x0342' :!: '\x0399')
211+upperMapping '\x1fc7' s = Yield '\x0397' (s :*: '\x0342' :*: '\x0399')
212212-- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
213−upperMapping '\x1ff7' s = Yield '\x03a9' (s :!: '\x0342' :!: '\x0399')
214−upperMapping c s = Yield (toUpper c) (s :!: '\0' :!: '\0')
213+upperMapping '\x1ff7' s = Yield '\x03a9' (s :*: '\x0342' :*: '\x0399')
214+upperMapping c s = Yield (toUpper c) (s :*: '\0' :*: '\0')
215215lowerMapping :: forall s. Char -> s -> Step (PairS (PairS s Char) Char) Char
216216{-# INLINE lowerMapping #-}
217217-- LATIN CAPITAL LETTER I WITH DOT ABOVE
218−lowerMapping '\x0130' s = Yield '\x0069' (s :!: '\x0307' :!: '\x0000')
219−lowerMapping c s = Yield (toLower c) (s :!: '\0' :!: '\0')
218+lowerMapping '\x0130' s = Yield '\x0069' (s :*: '\x0307' :*: '\x0000')
219+lowerMapping c s = Yield (toLower c) (s :*: '\0' :*: '\0')
220220foldMapping :: forall s. Char -> s -> Step (PairS (PairS s Char) Char) Char
221221{-# INLINE foldMapping #-}
222222-- MICRO SIGN
223−foldMapping '\x00b5' s = Yield '\x03bc' (s :!: '\x0000' :!: '\x0000')
223+foldMapping '\x00b5' s = Yield '\x03bc' (s :*: '\x0000' :*: '\x0000')
224224-- LATIN SMALL LETTER SHARP S
225−foldMapping '\x00df' s = Yield '\x0073' (s :!: '\x0073' :!: '\x0000')
225+foldMapping '\x00df' s = Yield '\x0073' (s :*: '\x0073' :*: '\x0000')
226226-- LATIN CAPITAL LETTER I WITH DOT ABOVE
227−foldMapping '\x0130' s = Yield '\x0069' (s :!: '\x0307' :!: '\x0000')
227+foldMapping '\x0130' s = Yield '\x0069' (s :*: '\x0307' :*: '\x0000')
228228-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
229−foldMapping '\x0149' s = Yield '\x02bc' (s :!: '\x006e' :!: '\x0000')
229+foldMapping '\x0149' s = Yield '\x02bc' (s :*: '\x006e' :*: '\x0000')
230230-- LATIN SMALL LETTER LONG S
231−foldMapping '\x017f' s = Yield '\x0073' (s :!: '\x0000' :!: '\x0000')
231+foldMapping '\x017f' s = Yield '\x0073' (s :*: '\x0000' :*: '\x0000')
232232-- LATIN SMALL LETTER J WITH CARON
233−foldMapping '\x01f0' s = Yield '\x006a' (s :!: '\x030c' :!: '\x0000')
233+foldMapping '\x01f0' s = Yield '\x006a' (s :*: '\x030c' :*: '\x0000')
234234-- COMBINING GREEK YPOGEGRAMMENI
235−foldMapping '\x0345' s = Yield '\x03b9' (s :!: '\x0000' :!: '\x0000')
235+foldMapping '\x0345' s = Yield '\x03b9' (s :*: '\x0000' :*: '\x0000')
236236-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
237−foldMapping '\x0390' s = Yield '\x03b9' (s :!: '\x0308' :!: '\x0301')
237+foldMapping '\x0390' s = Yield '\x03b9' (s :*: '\x0308' :*: '\x0301')
238238-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
239−foldMapping '\x03b0' s = Yield '\x03c5' (s :!: '\x0308' :!: '\x0301')
239+foldMapping '\x03b0' s = Yield '\x03c5' (s :*: '\x0308' :*: '\x0301')
240240-- GREEK SMALL LETTER FINAL SIGMA
241−foldMapping '\x03c2' s = Yield '\x03c3' (s :!: '\x0000' :!: '\x0000')
241+foldMapping '\x03c2' s = Yield '\x03c3' (s :*: '\x0000' :*: '\x0000')
242242-- GREEK BETA SYMBOL
243−foldMapping '\x03d0' s = Yield '\x03b2' (s :!: '\x0000' :!: '\x0000')
243+foldMapping '\x03d0' s = Yield '\x03b2' (s :*: '\x0000' :*: '\x0000')
244244-- GREEK THETA SYMBOL
245−foldMapping '\x03d1' s = Yield '\x03b8' (s :!: '\x0000' :!: '\x0000')
245+foldMapping '\x03d1' s = Yield '\x03b8' (s :*: '\x0000' :*: '\x0000')
246246-- GREEK PHI SYMBOL
247−foldMapping '\x03d5' s = Yield '\x03c6' (s :!: '\x0000' :!: '\x0000')
247+foldMapping '\x03d5' s = Yield '\x03c6' (s :*: '\x0000' :*: '\x0000')
248248-- GREEK PI SYMBOL
249−foldMapping '\x03d6' s = Yield '\x03c0' (s :!: '\x0000' :!: '\x0000')
249+foldMapping '\x03d6' s = Yield '\x03c0' (s :*: '\x0000' :*: '\x0000')
250250-- GREEK KAPPA SYMBOL
251−foldMapping '\x03f0' s = Yield '\x03ba' (s :!: '\x0000' :!: '\x0000')
251+foldMapping '\x03f0' s = Yield '\x03ba' (s :*: '\x0000' :*: '\x0000')
252252-- GREEK RHO SYMBOL
253−foldMapping '\x03f1' s = Yield '\x03c1' (s :!: '\x0000' :!: '\x0000')
253+foldMapping '\x03f1' s = Yield '\x03c1' (s :*: '\x0000' :*: '\x0000')
254254-- GREEK LUNATE EPSILON SYMBOL
255−foldMapping '\x03f5' s = Yield '\x03b5' (s :!: '\x0000' :!: '\x0000')
255+foldMapping '\x03f5' s = Yield '\x03b5' (s :*: '\x0000' :*: '\x0000')
256256-- ARMENIAN SMALL LIGATURE ECH YIWN
257−foldMapping '\x0587' s = Yield '\x0565' (s :!: '\x0582' :!: '\x0000')
257+foldMapping '\x0587' s = Yield '\x0565' (s :*: '\x0582' :*: '\x0000')
258258-- LATIN SMALL LETTER H WITH LINE BELOW
259−foldMapping '\x1e96' s = Yield '\x0068' (s :!: '\x0331' :!: '\x0000')
259+foldMapping '\x1e96' s = Yield '\x0068' (s :*: '\x0331' :*: '\x0000')
260260-- LATIN SMALL LETTER T WITH DIAERESIS
261−foldMapping '\x1e97' s = Yield '\x0074' (s :!: '\x0308' :!: '\x0000')
261+foldMapping '\x1e97' s = Yield '\x0074' (s :*: '\x0308' :*: '\x0000')
262262-- LATIN SMALL LETTER W WITH RING ABOVE
263−foldMapping '\x1e98' s = Yield '\x0077' (s :!: '\x030a' :!: '\x0000')
263+foldMapping '\x1e98' s = Yield '\x0077' (s :*: '\x030a' :*: '\x0000')
264264-- LATIN SMALL LETTER Y WITH RING ABOVE
265−foldMapping '\x1e99' s = Yield '\x0079' (s :!: '\x030a' :!: '\x0000')
265+foldMapping '\x1e99' s = Yield '\x0079' (s :*: '\x030a' :*: '\x0000')
266266-- LATIN SMALL LETTER A WITH RIGHT HALF RING
267−foldMapping '\x1e9a' s = Yield '\x0061' (s :!: '\x02be' :!: '\x0000')
267+foldMapping '\x1e9a' s = Yield '\x0061' (s :*: '\x02be' :*: '\x0000')
268268-- LATIN SMALL LETTER LONG S WITH DOT ABOVE
269−foldMapping '\x1e9b' s = Yield '\x1e61' (s :!: '\x0000' :!: '\x0000')
269+foldMapping '\x1e9b' s = Yield '\x1e61' (s :*: '\x0000' :*: '\x0000')
270270-- LATIN CAPITAL LETTER SHARP S
271−foldMapping '\x1e9e' s = Yield '\x0073' (s :!: '\x0073' :!: '\x0000')
271+foldMapping '\x1e9e' s = Yield '\x0073' (s :*: '\x0073' :*: '\x0000')
272272-- GREEK SMALL LETTER UPSILON WITH PSILI
273−foldMapping '\x1f50' s = Yield '\x03c5' (s :!: '\x0313' :!: '\x0000')
273+foldMapping '\x1f50' s = Yield '\x03c5' (s :*: '\x0313' :*: '\x0000')
274274-- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
275−foldMapping '\x1f52' s = Yield '\x03c5' (s :!: '\x0313' :!: '\x0300')
275+foldMapping '\x1f52' s = Yield '\x03c5' (s :*: '\x0313' :*: '\x0300')
276276-- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
277−foldMapping '\x1f54' s = Yield '\x03c5' (s :!: '\x0313' :!: '\x0301')
277+foldMapping '\x1f54' s = Yield '\x03c5' (s :*: '\x0313' :*: '\x0301')
278278-- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
279−foldMapping '\x1f56' s = Yield '\x03c5' (s :!: '\x0313' :!: '\x0342')
279+foldMapping '\x1f56' s = Yield '\x03c5' (s :*: '\x0313' :*: '\x0342')
280280-- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
281−foldMapping '\x1f80' s = Yield '\x1f00' (s :!: '\x03b9' :!: '\x0000')
281+foldMapping '\x1f80' s = Yield '\x1f00' (s :*: '\x03b9' :*: '\x0000')
282282-- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
283−foldMapping '\x1f81' s = Yield '\x1f01' (s :!: '\x03b9' :!: '\x0000')
283+foldMapping '\x1f81' s = Yield '\x1f01' (s :*: '\x03b9' :*: '\x0000')
284284-- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
285−foldMapping '\x1f82' s = Yield '\x1f02' (s :!: '\x03b9' :!: '\x0000')
285+foldMapping '\x1f82' s = Yield '\x1f02' (s :*: '\x03b9' :*: '\x0000')
286286-- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
287−foldMapping '\x1f83' s = Yield '\x1f03' (s :!: '\x03b9' :!: '\x0000')
287+foldMapping '\x1f83' s = Yield '\x1f03' (s :*: '\x03b9' :*: '\x0000')
288288-- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
289−foldMapping '\x1f84' s = Yield '\x1f04' (s :!: '\x03b9' :!: '\x0000')
289+foldMapping '\x1f84' s = Yield '\x1f04' (s :*: '\x03b9' :*: '\x0000')
290290-- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
291−foldMapping '\x1f85' s = Yield '\x1f05' (s :!: '\x03b9' :!: '\x0000')
291+foldMapping '\x1f85' s = Yield '\x1f05' (s :*: '\x03b9' :*: '\x0000')
292292-- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
293−foldMapping '\x1f86' s = Yield '\x1f06' (s :!: '\x03b9' :!: '\x0000')
293+foldMapping '\x1f86' s = Yield '\x1f06' (s :*: '\x03b9' :*: '\x0000')
294294-- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
295−foldMapping '\x1f87' s = Yield '\x1f07' (s :!: '\x03b9' :!: '\x0000')
295+foldMapping '\x1f87' s = Yield '\x1f07' (s :*: '\x03b9' :*: '\x0000')
296296-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
297−foldMapping '\x1f88' s = Yield '\x1f00' (s :!: '\x03b9' :!: '\x0000')
297+foldMapping '\x1f88' s = Yield '\x1f00' (s :*: '\x03b9' :*: '\x0000')
298298-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
299−foldMapping '\x1f89' s = Yield '\x1f01' (s :!: '\x03b9' :!: '\x0000')
299+foldMapping '\x1f89' s = Yield '\x1f01' (s :*: '\x03b9' :*: '\x0000')
300300-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
301−foldMapping '\x1f8a' s = Yield '\x1f02' (s :!: '\x03b9' :!: '\x0000')
301+foldMapping '\x1f8a' s = Yield '\x1f02' (s :*: '\x03b9' :*: '\x0000')
302302-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
303−foldMapping '\x1f8b' s = Yield '\x1f03' (s :!: '\x03b9' :!: '\x0000')
303+foldMapping '\x1f8b' s = Yield '\x1f03' (s :*: '\x03b9' :*: '\x0000')
304304-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
305−foldMapping '\x1f8c' s = Yield '\x1f04' (s :!: '\x03b9' :!: '\x0000')
305+foldMapping '\x1f8c' s = Yield '\x1f04' (s :*: '\x03b9' :*: '\x0000')
306306-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
307−foldMapping '\x1f8d' s = Yield '\x1f05' (s :!: '\x03b9' :!: '\x0000')
307+foldMapping '\x1f8d' s = Yield '\x1f05' (s :*: '\x03b9' :*: '\x0000')
308308-- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
309−foldMapping '\x1f8e' s = Yield '\x1f06' (s :!: '\x03b9' :!: '\x0000')
309+foldMapping '\x1f8e' s = Yield '\x1f06' (s :*: '\x03b9' :*: '\x0000')
310310-- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
311−foldMapping '\x1f8f' s = Yield '\x1f07' (s :!: '\x03b9' :!: '\x0000')
311+foldMapping '\x1f8f' s = Yield '\x1f07' (s :*: '\x03b9' :*: '\x0000')
312312-- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
313−foldMapping '\x1f90' s = Yield '\x1f20' (s :!: '\x03b9' :!: '\x0000')
313+foldMapping '\x1f90' s = Yield '\x1f20' (s :*: '\x03b9' :*: '\x0000')
314314-- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
315−foldMapping '\x1f91' s = Yield '\x1f21' (s :!: '\x03b9' :!: '\x0000')
315+foldMapping '\x1f91' s = Yield '\x1f21' (s :*: '\x03b9' :*: '\x0000')
316316-- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
317−foldMapping '\x1f92' s = Yield '\x1f22' (s :!: '\x03b9' :!: '\x0000')
317+foldMapping '\x1f92' s = Yield '\x1f22' (s :*: '\x03b9' :*: '\x0000')
318318-- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
319−foldMapping '\x1f93' s = Yield '\x1f23' (s :!: '\x03b9' :!: '\x0000')
319+foldMapping '\x1f93' s = Yield '\x1f23' (s :*: '\x03b9' :*: '\x0000')
320320-- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
321−foldMapping '\x1f94' s = Yield '\x1f24' (s :!: '\x03b9' :!: '\x0000')
321+foldMapping '\x1f94' s = Yield '\x1f24' (s :*: '\x03b9' :*: '\x0000')
322322-- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
323−foldMapping '\x1f95' s = Yield '\x1f25' (s :!: '\x03b9' :!: '\x0000')
323+foldMapping '\x1f95' s = Yield '\x1f25' (s :*: '\x03b9' :*: '\x0000')
324324-- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
325−foldMapping '\x1f96' s = Yield '\x1f26' (s :!: '\x03b9' :!: '\x0000')
325+foldMapping '\x1f96' s = Yield '\x1f26' (s :*: '\x03b9' :*: '\x0000')
326326-- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
327−foldMapping '\x1f97' s = Yield '\x1f27' (s :!: '\x03b9' :!: '\x0000')
327+foldMapping '\x1f97' s = Yield '\x1f27' (s :*: '\x03b9' :*: '\x0000')
328328-- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
329−foldMapping '\x1f98' s = Yield '\x1f20' (s :!: '\x03b9' :!: '\x0000')
329+foldMapping '\x1f98' s = Yield '\x1f20' (s :*: '\x03b9' :*: '\x0000')
330330-- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
331−foldMapping '\x1f99' s = Yield '\x1f21' (s :!: '\x03b9' :!: '\x0000')
331+foldMapping '\x1f99' s = Yield '\x1f21' (s :*: '\x03b9' :*: '\x0000')
332332-- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
333−foldMapping '\x1f9a' s = Yield '\x1f22' (s :!: '\x03b9' :!: '\x0000')
333+foldMapping '\x1f9a' s = Yield '\x1f22' (s :*: '\x03b9' :*: '\x0000')
334334-- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
335−foldMapping '\x1f9b' s = Yield '\x1f23' (s :!: '\x03b9' :!: '\x0000')
335+foldMapping '\x1f9b' s = Yield '\x1f23' (s :*: '\x03b9' :*: '\x0000')
336336-- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
337−foldMapping '\x1f9c' s = Yield '\x1f24' (s :!: '\x03b9' :!: '\x0000')
337+foldMapping '\x1f9c' s = Yield '\x1f24' (s :*: '\x03b9' :*: '\x0000')
338338-- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
339−foldMapping '\x1f9d' s = Yield '\x1f25' (s :!: '\x03b9' :!: '\x0000')
339+foldMapping '\x1f9d' s = Yield '\x1f25' (s :*: '\x03b9' :*: '\x0000')
340340-- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
341−foldMapping '\x1f9e' s = Yield '\x1f26' (s :!: '\x03b9' :!: '\x0000')
341+foldMapping '\x1f9e' s = Yield '\x1f26' (s :*: '\x03b9' :*: '\x0000')
342342-- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
343−foldMapping '\x1f9f' s = Yield '\x1f27' (s :!: '\x03b9' :!: '\x0000')
343+foldMapping '\x1f9f' s = Yield '\x1f27' (s :*: '\x03b9' :*: '\x0000')
344344-- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
345−foldMapping '\x1fa0' s = Yield '\x1f60' (s :!: '\x03b9' :!: '\x0000')
345+foldMapping '\x1fa0' s = Yield '\x1f60' (s :*: '\x03b9' :*: '\x0000')
346346-- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
347−foldMapping '\x1fa1' s = Yield '\x1f61' (s :!: '\x03b9' :!: '\x0000')
347+foldMapping '\x1fa1' s = Yield '\x1f61' (s :*: '\x03b9' :*: '\x0000')
348348-- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
349−foldMapping '\x1fa2' s = Yield '\x1f62' (s :!: '\x03b9' :!: '\x0000')
349+foldMapping '\x1fa2' s = Yield '\x1f62' (s :*: '\x03b9' :*: '\x0000')
350350-- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
351−foldMapping '\x1fa3' s = Yield '\x1f63' (s :!: '\x03b9' :!: '\x0000')
351+foldMapping '\x1fa3' s = Yield '\x1f63' (s :*: '\x03b9' :*: '\x0000')
352352-- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
353−foldMapping '\x1fa4' s = Yield '\x1f64' (s :!: '\x03b9' :!: '\x0000')
353+foldMapping '\x1fa4' s = Yield '\x1f64' (s :*: '\x03b9' :*: '\x0000')
354354-- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
355−foldMapping '\x1fa5' s = Yield '\x1f65' (s :!: '\x03b9' :!: '\x0000')
355+foldMapping '\x1fa5' s = Yield '\x1f65' (s :*: '\x03b9' :*: '\x0000')
356356-- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
357−foldMapping '\x1fa6' s = Yield '\x1f66' (s :!: '\x03b9' :!: '\x0000')
357+foldMapping '\x1fa6' s = Yield '\x1f66' (s :*: '\x03b9' :*: '\x0000')
358358-- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
359−foldMapping '\x1fa7' s = Yield '\x1f67' (s :!: '\x03b9' :!: '\x0000')
359+foldMapping '\x1fa7' s = Yield '\x1f67' (s :*: '\x03b9' :*: '\x0000')
360360-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
361−foldMapping '\x1fa8' s = Yield '\x1f60' (s :!: '\x03b9' :!: '\x0000')
361+foldMapping '\x1fa8' s = Yield '\x1f60' (s :*: '\x03b9' :*: '\x0000')
362362-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
363−foldMapping '\x1fa9' s = Yield '\x1f61' (s :!: '\x03b9' :!: '\x0000')
363+foldMapping '\x1fa9' s = Yield '\x1f61' (s :*: '\x03b9' :*: '\x0000')
364364-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
365−foldMapping '\x1faa' s = Yield '\x1f62' (s :!: '\x03b9' :!: '\x0000')
365+foldMapping '\x1faa' s = Yield '\x1f62' (s :*: '\x03b9' :*: '\x0000')
366366-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
367−foldMapping '\x1fab' s = Yield '\x1f63' (s :!: '\x03b9' :!: '\x0000')
367+foldMapping '\x1fab' s = Yield '\x1f63' (s :*: '\x03b9' :*: '\x0000')
368368-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
369−foldMapping '\x1fac' s = Yield '\x1f64' (s :!: '\x03b9' :!: '\x0000')
369+foldMapping '\x1fac' s = Yield '\x1f64' (s :*: '\x03b9' :*: '\x0000')
370370-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
371−foldMapping '\x1fad' s = Yield '\x1f65' (s :!: '\x03b9' :!: '\x0000')
371+foldMapping '\x1fad' s = Yield '\x1f65' (s :*: '\x03b9' :*: '\x0000')
372372-- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
373−foldMapping '\x1fae' s = Yield '\x1f66' (s :!: '\x03b9' :!: '\x0000')
373+foldMapping '\x1fae' s = Yield '\x1f66' (s :*: '\x03b9' :*: '\x0000')
374374-- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
375−foldMapping '\x1faf' s = Yield '\x1f67' (s :!: '\x03b9' :!: '\x0000')
375+foldMapping '\x1faf' s = Yield '\x1f67' (s :*: '\x03b9' :*: '\x0000')
376376-- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
377−foldMapping '\x1fb2' s = Yield '\x1f70' (s :!: '\x03b9' :!: '\x0000')
377+foldMapping '\x1fb2' s = Yield '\x1f70' (s :*: '\x03b9' :*: '\x0000')
378378-- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
379−foldMapping '\x1fb3' s = Yield '\x03b1' (s :!: '\x03b9' :!: '\x0000')
379+foldMapping '\x1fb3' s = Yield '\x03b1' (s :*: '\x03b9' :*: '\x0000')
380380-- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
381−foldMapping '\x1fb4' s = Yield '\x03ac' (s :!: '\x03b9' :!: '\x0000')
381+foldMapping '\x1fb4' s = Yield '\x03ac' (s :*: '\x03b9' :*: '\x0000')
382382-- GREEK SMALL LETTER ALPHA WITH PERISPOMENI
383−foldMapping '\x1fb6' s = Yield '\x03b1' (s :!: '\x0342' :!: '\x0000')
383+foldMapping '\x1fb6' s = Yield '\x03b1' (s :*: '\x0342' :*: '\x0000')
384384-- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
385−foldMapping '\x1fb7' s = Yield '\x03b1' (s :!: '\x0342' :!: '\x03b9')
385+foldMapping '\x1fb7' s = Yield '\x03b1' (s :*: '\x0342' :*: '\x03b9')
386386-- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
387−foldMapping '\x1fbc' s = Yield '\x03b1' (s :!: '\x03b9' :!: '\x0000')
387+foldMapping '\x1fbc' s = Yield '\x03b1' (s :*: '\x03b9' :*: '\x0000')
388388-- GREEK PROSGEGRAMMENI
389−foldMapping '\x1fbe' s = Yield '\x03b9' (s :!: '\x0000' :!: '\x0000')
389+foldMapping '\x1fbe' s = Yield '\x03b9' (s :*: '\x0000' :*: '\x0000')
390390-- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
391−foldMapping '\x1fc2' s = Yield '\x1f74' (s :!: '\x03b9' :!: '\x0000')
391+foldMapping '\x1fc2' s = Yield '\x1f74' (s :*: '\x03b9' :*: '\x0000')
392392-- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
393−foldMapping '\x1fc3' s = Yield '\x03b7' (s :!: '\x03b9' :!: '\x0000')
393+foldMapping '\x1fc3' s = Yield '\x03b7' (s :*: '\x03b9' :*: '\x0000')
394394-- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
395−foldMapping '\x1fc4' s = Yield '\x03ae' (s :!: '\x03b9' :!: '\x0000')
395+foldMapping '\x1fc4' s = Yield '\x03ae' (s :*: '\x03b9' :*: '\x0000')
396396-- GREEK SMALL LETTER ETA WITH PERISPOMENI
397−foldMapping '\x1fc6' s = Yield '\x03b7' (s :!: '\x0342' :!: '\x0000')
397+foldMapping '\x1fc6' s = Yield '\x03b7' (s :*: '\x0342' :*: '\x0000')
398398-- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
399−foldMapping '\x1fc7' s = Yield '\x03b7' (s :!: '\x0342' :!: '\x03b9')
399+foldMapping '\x1fc7' s = Yield '\x03b7' (s :*: '\x0342' :*: '\x03b9')
400400-- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
401−foldMapping '\x1fcc' s = Yield '\x03b7' (s :!: '\x03b9' :!: '\x0000')
401+foldMapping '\x1fcc' s = Yield '\x03b7' (s :*: '\x03b9' :*: '\x0000')
402402-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
403−foldMapping '\x1fd2' s = Yield '\x03b9' (s :!: '\x0308' :!: '\x0300')
403+foldMapping '\x1fd2' s = Yield '\x03b9' (s :*: '\x0308' :*: '\x0300')
404404-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
405−foldMapping '\x1fd3' s = Yield '\x03b9' (s :!: '\x0308' :!: '\x0301')
405+foldMapping '\x1fd3' s = Yield '\x03b9' (s :*: '\x0308' :*: '\x0301')
406406-- GREEK SMALL LETTER IOTA WITH PERISPOMENI
407−foldMapping '\x1fd6' s = Yield '\x03b9' (s :!: '\x0342' :!: '\x0000')
407+foldMapping '\x1fd6' s = Yield '\x03b9' (s :*: '\x0342' :*: '\x0000')
408408-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
409−foldMapping '\x1fd7' s = Yield '\x03b9' (s :!: '\x0308' :!: '\x0342')
409+foldMapping '\x1fd7' s = Yield '\x03b9' (s :*: '\x0308' :*: '\x0342')
410410-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
411−foldMapping '\x1fe2' s = Yield '\x03c5' (s :!: '\x0308' :!: '\x0300')
411+foldMapping '\x1fe2' s = Yield '\x03c5' (s :*: '\x0308' :*: '\x0300')
412412-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
413−foldMapping '\x1fe3' s = Yield '\x03c5' (s :!: '\x0308' :!: '\x0301')
413+foldMapping '\x1fe3' s = Yield '\x03c5' (s :*: '\x0308' :*: '\x0301')
414414-- GREEK SMALL LETTER RHO WITH PSILI
415−foldMapping '\x1fe4' s = Yield '\x03c1' (s :!: '\x0313' :!: '\x0000')
415+foldMapping '\x1fe4' s = Yield '\x03c1' (s :*: '\x0313' :*: '\x0000')
416416-- GREEK SMALL LETTER UPSILON WITH PERISPOMENI
417−foldMapping '\x1fe6' s = Yield '\x03c5' (s :!: '\x0342' :!: '\x0000')
417+foldMapping '\x1fe6' s = Yield '\x03c5' (s :*: '\x0342' :*: '\x0000')
418418-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
419−foldMapping '\x1fe7' s = Yield '\x03c5' (s :!: '\x0308' :!: '\x0342')
419+foldMapping '\x1fe7' s = Yield '\x03c5' (s :*: '\x0308' :*: '\x0342')
420420-- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
421−foldMapping '\x1ff2' s = Yield '\x1f7c' (s :!: '\x03b9' :!: '\x0000')
421+foldMapping '\x1ff2' s = Yield '\x1f7c' (s :*: '\x03b9' :*: '\x0000')
422422-- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
423−foldMapping '\x1ff3' s = Yield '\x03c9' (s :!: '\x03b9' :!: '\x0000')
423+foldMapping '\x1ff3' s = Yield '\x03c9' (s :*: '\x03b9' :*: '\x0000')
424424-- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
425−foldMapping '\x1ff4' s = Yield '\x03ce' (s :!: '\x03b9' :!: '\x0000')
425+foldMapping '\x1ff4' s = Yield '\x03ce' (s :*: '\x03b9' :*: '\x0000')
426426-- GREEK SMALL LETTER OMEGA WITH PERISPOMENI
427−foldMapping '\x1ff6' s = Yield '\x03c9' (s :!: '\x0342' :!: '\x0000')
427+foldMapping '\x1ff6' s = Yield '\x03c9' (s :*: '\x0342' :*: '\x0000')
428428-- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
429−foldMapping '\x1ff7' s = Yield '\x03c9' (s :!: '\x0342' :!: '\x03b9')
429+foldMapping '\x1ff7' s = Yield '\x03c9' (s :*: '\x0342' :*: '\x03b9')
430430-- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
431−foldMapping '\x1ffc' s = Yield '\x03c9' (s :!: '\x03b9' :!: '\x0000')
431+foldMapping '\x1ffc' s = Yield '\x03c9' (s :*: '\x03b9' :*: '\x0000')
432432-- LATIN SMALL LIGATURE FF
433−foldMapping '\xfb00' s = Yield '\x0066' (s :!: '\x0066' :!: '\x0000')
433+foldMapping '\xfb00' s = Yield '\x0066' (s :*: '\x0066' :*: '\x0000')
434434-- LATIN SMALL LIGATURE FI
435−foldMapping '\xfb01' s = Yield '\x0066' (s :!: '\x0069' :!: '\x0000')
435+foldMapping '\xfb01' s = Yield '\x0066' (s :*: '\x0069' :*: '\x0000')
436436-- LATIN SMALL LIGATURE FL
437−foldMapping '\xfb02' s = Yield '\x0066' (s :!: '\x006c' :!: '\x0000')
437+foldMapping '\xfb02' s = Yield '\x0066' (s :*: '\x006c' :*: '\x0000')
438438-- LATIN SMALL LIGATURE FFI
439−foldMapping '\xfb03' s = Yield '\x0066' (s :!: '\x0066' :!: '\x0069')
439+foldMapping '\xfb03' s = Yield '\x0066' (s :*: '\x0066' :*: '\x0069')
440440-- LATIN SMALL LIGATURE FFL
441−foldMapping '\xfb04' s = Yield '\x0066' (s :!: '\x0066' :!: '\x006c')
441+foldMapping '\xfb04' s = Yield '\x0066' (s :*: '\x0066' :*: '\x006c')
442442-- LATIN SMALL LIGATURE LONG S T
443−foldMapping '\xfb05' s = Yield '\x0073' (s :!: '\x0074' :!: '\x0000')
443+foldMapping '\xfb05' s = Yield '\x0073' (s :*: '\x0074' :*: '\x0000')
444444-- LATIN SMALL LIGATURE ST
445−foldMapping '\xfb06' s = Yield '\x0073' (s :!: '\x0074' :!: '\x0000')
445+foldMapping '\xfb06' s = Yield '\x0073' (s :*: '\x0074' :*: '\x0000')
446446-- ARMENIAN SMALL LIGATURE MEN NOW
447−foldMapping '\xfb13' s = Yield '\x0574' (s :!: '\x0576' :!: '\x0000')
447+foldMapping '\xfb13' s = Yield '\x0574' (s :*: '\x0576' :*: '\x0000')
448448-- ARMENIAN SMALL LIGATURE MEN ECH
449−foldMapping '\xfb14' s = Yield '\x0574' (s :!: '\x0565' :!: '\x0000')
449+foldMapping '\xfb14' s = Yield '\x0574' (s :*: '\x0565' :*: '\x0000')
450450-- ARMENIAN SMALL LIGATURE MEN INI
451−foldMapping '\xfb15' s = Yield '\x0574' (s :!: '\x056b' :!: '\x0000')
451+foldMapping '\xfb15' s = Yield '\x0574' (s :*: '\x056b' :*: '\x0000')
452452-- ARMENIAN SMALL LIGATURE VEW NOW
453−foldMapping '\xfb16' s = Yield '\x057e' (s :!: '\x0576' :!: '\x0000')
453+foldMapping '\xfb16' s = Yield '\x057e' (s :*: '\x0576' :*: '\x0000')
454454-- ARMENIAN SMALL LIGATURE MEN XEH
455−foldMapping '\xfb17' s = Yield '\x0574' (s :!: '\x056d' :!: '\x0000')
456−foldMapping c s = Yield (toLower c) (s :!: '\0' :!: '\0')
455+foldMapping '\xfb17' s = Yield '\x0574' (s :*: '\x056d' :*: '\x0000')
456+foldMapping c s = Yield (toLower c) (s :*: '\0' :*: '\0')
Data/Text/Fusion/Common.hs+82−82
@@ -135,14 +135,14 @@ unstreamList (Stream next s0 _len) = unfold s0
135135
136136-- | /O(n)/ Adds a character to the front of a Stream Char.
137137cons :: Char -> Stream Char -> Stream Char
138−cons w (Stream next0 s0 len) = Stream next (S2 :!: s0) (len+1)
138+cons w (Stream next0 s0 len) = Stream next (S2 :*: s0) (len+1)
139139 where
140140 {-# INLINE next #-}
141− next (S2 :!: s) = Yield w (S1 :!: s)
142− next (S1 :!: s) = case next0 s of
141+ next (S2 :*: s) = Yield w (S1 :*: s)
142+ next (S1 :*: s) = case next0 s of
143143 Done -> Done
144− Skip s' -> Skip (S1 :!: s')
145− Yield x s' -> Yield x (S1 :!: s')
144+ Skip s' -> Skip (S1 :*: s')
145+ Yield x s' -> Yield x (S1 :*: s')
146146{-# INLINE [0] cons #-}
147147
148148-- | /O(n)/ Adds a character to the end of a stream.
@@ -213,34 +213,34 @@ last (Stream next s0 _len) = loop0_last s0
213213-- | /O(1)/ Returns all characters after the head of a Stream Char, which must
214214-- be non-empty.
215215tail :: Stream Char -> Stream Char
216−tail (Stream next0 s0 len) = Stream next (False :!: s0) (len-1)
216+tail (Stream next0 s0 len) = Stream next (False :*: s0) (len-1)
217217 where
218218 {-# INLINE next #-}
219− next (False :!: s) = case next0 s of
219+ next (False :*: s) = case next0 s of
220220 Done -> emptyError "tail"
221− Skip s' -> Skip (False :!: s')
222− Yield _ s' -> Skip (True :!: s')
223− next (True :!: s) = case next0 s of
221+ Skip s' -> Skip (False :*: s')
222+ Yield _ s' -> Skip (True :*: s')
223+ next (True :*: s) = case next0 s of
224224 Done -> Done
225− Skip s' -> Skip (True :!: s')
226− Yield x s' -> Yield x (True :!: s')
225+ Skip s' -> Skip (True :*: s')
226+ Yield x s' -> Yield x (True :*: s')
227227{-# INLINE [0] tail #-}
228228
229229
230230-- | /O(1)/ Returns all but the last character of a Stream Char, which
231231-- must be non-empty.
232232init :: Stream Char -> Stream Char
233−init (Stream next0 s0 len) = Stream next (N :!: s0) (len-1)
233+init (Stream next0 s0 len) = Stream next (N :*: s0) (len-1)
234234 where
235235 {-# INLINE next #-}
236− next (N :!: s) = case next0 s of
236+ next (N :*: s) = case next0 s of
237237 Done -> emptyError "init"
238− Skip s' -> Skip (N :!: s')
239− Yield x s' -> Skip (J x :!: s')
240− next (J x :!: s) = case next0 s of
238+ Skip s' -> Skip (N :*: s')
239+ Yield x s' -> Skip (J x :*: s')
240+ next (J x :*: s) = case next0 s of
241241 Done -> Done
242− Skip s' -> Skip (J x :!: s')
243− Yield x' s' -> Yield x (J x' :!: s')
242+ Skip s' -> Skip (J x :*: s')
243+ Yield x' s' -> Yield x (J x' :*: s')
244244{-# INLINE [0] init #-}
245245
246246-- | /O(1)/ Tests whether a Stream Char is empty or not.
@@ -298,18 +298,18 @@ map f (Stream next0 s0 len) = Stream next s0 len
298298-- | /O(n)/ Take a character and place it between each of the
299299-- characters of a 'Stream Char'.
300300intersperse :: Char -> Stream Char -> Stream Char
301−intersperse c (Stream next0 s0 len) = Stream next (s0 :!: N :!: S1) len
301+intersperse c (Stream next0 s0 len) = Stream next (s0 :*: N :*: S1) len
302302 where
303303 {-# INLINE next #-}
304− next (s :!: N :!: S1) = case next0 s of
304+ next (s :*: N :*: S1) = case next0 s of
305305 Done -> Done
306− Skip s' -> Skip (s' :!: N :!: S1)
307− Yield x s' -> Skip (s' :!: J x :!: S1)
308− next (s :!: J x :!: S1) = Yield x (s :!: N :!: S2)
309− next (s :!: N :!: S2) = case next0 s of
306+ Skip s' -> Skip (s' :*: N :*: S1)
307+ Yield x s' -> Skip (s' :*: J x :*: S1)
308+ next (s :*: J x :*: S1) = Yield x (s :*: N :*: S2)
309+ next (s :*: N :*: S2) = case next0 s of
310310 Done -> Done
311− Skip s' -> Skip (s' :!: N :!: S2)
312− Yield x s' -> Yield c (s' :!: J x :!: S1)
311+ Skip s' -> Skip (s' :*: N :*: S2)
312+ Yield x s' -> Yield c (s' :*: J x :*: S1)
313313 next _ = internalError "intersperse"
314314{-# INLINE [0] intersperse #-}
315315
@@ -327,15 +327,15 @@ intersperse c (Stream next0 s0 len) = Stream next (s0 :!: N :!: S1) len
327327
328328caseConvert :: (forall s. Char -> s -> Step (PairS (PairS s Char) Char) Char)
329329 -> Stream Char -> Stream Char
330−caseConvert remap (Stream next0 s0 len) = Stream next (s0 :!: '\0' :!: '\0') len
330+caseConvert remap (Stream next0 s0 len) = Stream next (s0 :*: '\0' :*: '\0') len
331331 where
332332 {-# INLINE next #-}
333− next (s :!: '\0' :!: _) =
333+ next (s :*: '\0' :*: _) =
334334 case next0 s of
335335 Done -> Done
336− Skip s' -> Skip (s' :!: '\0' :!: '\0')
336+ Skip s' -> Skip (s' :*: '\0' :*: '\0')
337337 Yield c s' -> remap c s'
338− next (s :!: a :!: b) = Yield a (s :!: b :!: '\0')
338+ next (s :*: a :*: b) = Yield a (s :*: b :*: '\0')
339339
340340-- | /O(n)/ Convert a string to folded case. This function is mainly
341341-- useful for performing caseless (or case insensitive) string
@@ -374,15 +374,15 @@ toLower = caseConvert lowerMapping
374374
375375justifyLeftI :: Integral a => a -> Char -> Stream Char -> Stream Char
376376justifyLeftI k c (Stream next0 s0 len) =
377− Stream next (s0 :!: S1 :!: 0) (larger (fromIntegral k) len)
377+ Stream next (s0 :*: S1 :*: 0) (larger (fromIntegral k) len)
378378 where
379− next (s :!: S1 :!: n) =
379+ next (s :*: S1 :*: n) =
380380 case next0 s of
381− Done -> next (s :!: S2 :!: n)
382− Skip s' -> Skip (s' :!: S1 :!: n)
383− Yield x s' -> Yield x (s' :!: S1 :!: n+1)
384− next (s :!: S2 :!: n)
385− | n < k = Yield c (s :!: S2 :!: n+1)
381+ Done -> next (s :*: S2 :*: n)
382+ Skip s' -> Skip (s' :*: S1 :*: n)
383+ Yield x s' -> Yield x (s' :*: S1 :*: n+1)
384+ next (s :*: S2 :*: n)
385+ | n < k = Yield c (s :*: S2 :*: n+1)
386386 | otherwise = Done
387387 {-# INLINE next #-}
388388{-# INLINE [0] justifyLeftI #-}
@@ -548,14 +548,14 @@ minimum (Stream next0 s0 _len) = loop0_minimum s0
548548-- * Building streams
549549
550550scanl :: (Char -> Char -> Char) -> Char -> Stream Char -> Stream Char
551−scanl f z0 (Stream next0 s0 len) = Stream next (S1 :!: z0 :!: s0) (len+1) -- HINT maybe too low
551+scanl f z0 (Stream next0 s0 len) = Stream next (S1 :*: z0 :*: s0) (len+1) -- HINT maybe too low
552552 where
553553 {-# INLINE next #-}
554− next (S1 :!: z :!: s) = Yield z (S2 :!: z :!: s)
555− next (S2 :!: z :!: s) = case next0 s of
554+ next (S1 :*: z :*: s) = Yield z (S2 :*: z :*: s)
555+ next (S2 :*: z :*: s) = case next0 s of
556556 Yield x s' -> let !x' = f z x
557− in Yield x' (S2 :!: x' :!: s')
558− Skip s' -> Skip (S2 :!: z :!: s')
557+ in Yield x' (S2 :*: x' :*: s')
558+ Skip s' -> Skip (S2 :*: z :*: s')
559559 Done -> Done
560560{-# INLINE [0] scanl #-}
561561
@@ -571,13 +571,13 @@ scanl f z0 (Stream next0 s0 len) = Stream next (S1 :!: z0 :!: s0) (len+1) -- HIN
571571-- return a final value for the accumulator, because the nature of
572572-- streams precludes it.
573573mapAccumL :: (a -> b -> (a,b)) -> a -> Stream b -> Stream b
574−mapAccumL f z0 (Stream next0 s0 len) = Stream next (s0 :!: z0) len -- HINT depends on f
574+mapAccumL f z0 (Stream next0 s0 len) = Stream next (s0 :*: z0) len -- HINT depends on f
575575 where
576576 {-# INLINE next #-}
577− next (s :!: z) = case next0 s of
577+ next (s :*: z) = case next0 s of
578578 Yield x s' -> let (z',y) = f z x
579− in Yield y (s' :!: z')
580− Skip s' -> Skip (s' :!: z)
579+ in Yield y (s' :*: z')
580+ Skip s' -> Skip (s' :*: z)
581581 Done -> Done
582582{-# INLINE [0] mapAccumL #-}
583583-}
@@ -597,14 +597,14 @@ replicateCharI n c
597597
598598replicateI :: Int64 -> Stream Char -> Stream Char
599599replicateI n (Stream next0 s0 len) =
600− Stream next (0 :!: s0) (fromIntegral (max 0 n) * len)
600+ Stream next (0 :*: s0) (fromIntegral (max 0 n) * len)
601601 where
602− next (k :!: s)
602+ next (k :*: s)
603603 | k >= n = Done
604604 | otherwise = case next0 s of
605− Done -> Skip (k+1 :!: s0)
606− Skip s' -> Skip (k :!: s')
607− Yield x s' -> Yield x (k :!: s')
605+ Done -> Skip (k+1 :*: s0)
606+ Skip s' -> Skip (k :*: s')
607+ Yield x s' -> Yield x (k :*: s')
608608{-# INLINE [0] replicateI #-}
609609
610610-- | /O(n)/, where @n@ is the length of the result. The unfoldr function
@@ -628,13 +628,13 @@ unfoldr f s0 = Stream next s0 1 -- HINT maybe too low
628628-- 'unfoldr' when the length of the result is known.
629629unfoldrNI :: Integral a => a -> (b -> Maybe (Char,b)) -> b -> Stream Char
630630unfoldrNI n f s0 | n < 0 = empty
631− | otherwise = Stream next (0 :!: s0) (fromIntegral (n*2)) -- HINT maybe too high
631+ | otherwise = Stream next (0 :*: s0) (fromIntegral (n*2)) -- HINT maybe too high
632632 where
633633 {-# INLINE next #-}
634− next (z :!: s) = case f s of
634+ next (z :*: s) = case f s of
635635 Nothing -> Done
636636 Just (w, s') | z >= n -> Done
637− | otherwise -> Yield w ((z + 1) :!: s')
637+ | otherwise -> Yield w ((z + 1) :*: s')
638638{-# INLINE unfoldrNI #-}
639639
640640-------------------------------------------------------------------------------
@@ -645,14 +645,14 @@ unfoldrNI n f s0 | n < 0 = empty
645645-- length of the stream.
646646take :: Integral a => a -> Stream Char -> Stream Char
647647take n0 (Stream next0 s0 len) =
648− Stream next (n0 :!: s0) (smaller len (fromIntegral (max 0 n0)))
648+ Stream next (n0 :*: s0) (smaller len (fromIntegral (max 0 n0)))
649649 where
650650 {-# INLINE next #-}
651− next (n :!: s) | n <= 0 = Done
651+ next (n :*: s) | n <= 0 = Done
652652 | otherwise = case next0 s of
653653 Done -> Done
654− Skip s' -> Skip (n :!: s')
655− Yield x s' -> Yield x ((n-1) :!: s')
654+ Skip s' -> Skip (n :*: s')
655+ Yield x s' -> Yield x ((n-1) :*: s')
656656{-# INLINE [0] take #-}
657657
658658-- | /O(n)/ drop n, applied to a stream, returns the suffix of the
@@ -660,19 +660,19 @@ take n0 (Stream next0 s0 len) =
660660-- length of the stream.
661661drop :: Integral a => a -> Stream Char -> Stream Char
662662drop n0 (Stream next0 s0 len) =
663− Stream next (J n0 :!: s0) (len - fromIntegral (max 0 n0))
663+ Stream next (J n0 :*: s0) (len - fromIntegral (max 0 n0))
664664 where
665665 {-# INLINE next #-}
666− next (J n :!: s)
667− | n <= 0 = Skip (N :!: s)
666+ next (J n :*: s)
667+ | n <= 0 = Skip (N :*: s)
668668 | otherwise = case next0 s of
669669 Done -> Done
670− Skip s' -> Skip (J n :!: s')
671− Yield _ s' -> Skip (J (n-1) :!: s')
672− next (N :!: s) = case next0 s of
670+ Skip s' -> Skip (J n :*: s')
671+ Yield _ s' -> Skip (J (n-1) :*: s')
672+ next (N :*: s) = case next0 s of
673673 Done -> Done
674− Skip s' -> Skip (N :!: s')
675− Yield x s' -> Yield x (N :!: s')
674+ Skip s' -> Skip (N :*: s')
675+ Yield x s' -> Yield x (N :*: s')
676676{-# INLINE [0] drop #-}
677677
678678-- | takeWhile, applied to a predicate @p@ and a stream, returns the
@@ -690,18 +690,18 @@ takeWhile p (Stream next0 s0 len) = Stream next s0 len -- HINT maybe too high
690690
691691-- | dropWhile @p @xs returns the suffix remaining after takeWhile @p @xs.
692692dropWhile :: (Char -> Bool) -> Stream Char -> Stream Char
693−dropWhile p (Stream next0 s0 len) = Stream next (S1 :!: s0) len -- HINT maybe too high
693+dropWhile p (Stream next0 s0 len) = Stream next (S1 :*: s0) len -- HINT maybe too high
694694 where
695695 {-# INLINE next #-}
696− next (S1 :!: s) = case next0 s of
696+ next (S1 :*: s) = case next0 s of
697697 Done -> Done
698− Skip s' -> Skip (S1 :!: s')
699− Yield x s' | p x -> Skip (S1 :!: s')
700− | otherwise -> Yield x (S2 :!: s')
701− next (S2 :!: s) = case next0 s of
698+ Skip s' -> Skip (S1 :*: s')
699+ Yield x s' | p x -> Skip (S1 :*: s')
700+ | otherwise -> Yield x (S2 :*: s')
701+ next (S2 :*: s) = case next0 s of
702702 Done -> Done
703− Skip s' -> Skip (S2 :!: s')
704− Yield x s' -> Yield x (S2 :!: s')
703+ Skip s' -> Skip (S2 :*: s')
704+ Yield x s' -> Yield x (S2 :*: s')
705705{-# INLINE [0] dropWhile #-}
706706
707707-- | /O(n)/ The 'isPrefixOf' function takes two 'Stream's and returns
@@ -814,18 +814,18 @@ findIndicesI p (Stream next s0 _len) = loop_findIndex 0 s0
814814-- the first argument, instead of a tupling function.
815815zipWith :: (a -> a -> b) -> Stream a -> Stream a -> Stream b
816816zipWith f (Stream next0 sa0 len1) (Stream next1 sb0 len2) =
817− Stream next (sa0 :!: sb0 :!: N) (smaller len1 len2)
817+ Stream next (sa0 :*: sb0 :*: N) (smaller len1 len2)
818818 where
819819 {-# INLINE next #-}
820− next (sa :!: sb :!: N) = case next0 sa of
820+ next (sa :*: sb :*: N) = case next0 sa of
821821 Done -> Done
822− Skip sa' -> Skip (sa' :!: sb :!: N)
823− Yield a sa' -> Skip (sa' :!: sb :!: J a)
822+ Skip sa' -> Skip (sa' :*: sb :*: N)
823+ Yield a sa' -> Skip (sa' :*: sb :*: J a)
824824
825− next (sa' :!: sb :!: J a) = case next1 sb of
825+ next (sa' :*: sb :*: J a) = case next1 sb of
826826 Done -> Done
827− Skip sb' -> Skip (sa' :!: sb' :!: J a)
828− Yield b sb' -> Yield (f a b) (sa' :!: sb' :!: N)
827+ Skip sb' -> Skip (sa' :*: sb' :*: J a)
828+ Yield b sb' -> Yield (f a b) (sa' :*: sb' :*: N)
829829{-# INLINE [0] zipWith #-}
830830
831831-- | /O(n)/ The 'countCharI' function returns the number of times the
Data/Text/Fusion/Internal.hs+2−2
@@ -38,8 +38,8 @@ type M8 = M Word8
3838data S s = S {-# UNPACK #-} !s
3939 {-# UNPACK #-} !M8 {-# UNPACK #-} !M8 {-# UNPACK #-} !M8
4040
41−infixl 2 :!:
42−data PairS a b = !a :!: !b
41+infixl 2 :*:
42+data PairS a b = {-# UNPACK #-} !a :*: {-# UNPACK #-} !b
4343
4444-- | Allow a function over a stream to switch between two states.
4545data Switch = S1 | S2
Data/Text/Lazy/Encoding/Fusion.hs+16−16
@@ -50,25 +50,25 @@ import qualified Data.ByteString.Internal as B
5050-- | /O(n)/ Convert a lazy 'ByteString' into a 'Stream Char', using
5151-- UTF-8 encoding.
5252streamUtf8 :: OnDecodeError -> ByteString -> Stream Char
53−streamUtf8 onErr bs0 = Stream next (bs0 :!: empty :!: 0) unknownSize
53+streamUtf8 onErr bs0 = Stream next (bs0 :*: empty :*: 0) unknownSize
5454 where
5555 empty = S N N N N
5656 {-# INLINE next #-}
57− next (bs@(Chunk ps _) :!: S N _ _ _ :!: i)
57+ next (bs@(Chunk ps _) :*: S N _ _ _ :*: i)
5858 | i < len && U8.validate1 a =
59− Yield (unsafeChr8 a) (bs :!: empty :!: i+1)
59+ Yield (unsafeChr8 a) (bs :*: empty :*: i+1)
6060 | i + 1 < len && U8.validate2 a b =
61− Yield (U8.chr2 a b) (bs :!: empty :!: i+2)
61+ Yield (U8.chr2 a b) (bs :*: empty :*: i+2)
6262 | i + 2 < len && U8.validate3 a b c =
63− Yield (U8.chr3 a b c) (bs :!: empty :!: i+3)
63+ Yield (U8.chr3 a b c) (bs :*: empty :*: i+3)
6464 | i + 4 < len && U8.validate4 a b c d =
65− Yield (U8.chr4 a b c d) (bs :!: empty :!: i+4)
65+ Yield (U8.chr4 a b c d) (bs :*: empty :*: i+4)
6666 where len = B.length ps
6767 a = B.unsafeIndex ps i
6868 b = B.unsafeIndex ps (i+1)
6969 c = B.unsafeIndex ps (i+2)
7070 d = B.unsafeIndex ps (i+3)
71− next st@(bs :!: s :!: i) =
71+ next st@(bs :*: s :*: i) =
7272 case s of
7373 S (J a) N _ _ | U8.validate1 a ->
7474 Yield (unsafeChr8 a) es
@@ -79,20 +79,20 @@ streamUtf8 onErr bs0 = Stream next (bs0 :!: empty :!: 0) unknownSize
7979 S (J a) (J b) (J c) (J d) | U8.validate4 a b c d ->
8080 Yield (U8.chr4 a b c d) es
8181 _ -> consume st
82− where es = bs :!: empty :!: i
82+ where es = bs :*: empty :*: i
8383 {-# INLINE consume #-}
84− consume (bs@(Chunk ps rest) :!: s :!: i)
85− | i >= B.length ps = consume (rest :!: s :!: 0)
84+ consume (bs@(Chunk ps rest) :*: s :*: i)
85+ | i >= B.length ps = consume (rest :*: s :*: 0)
8686 | otherwise =
8787 case s of
88− S N _ _ _ -> next (bs :!: S x N N N :!: i+1)
89− S a N _ _ -> next (bs :!: S a x N N :!: i+1)
90− S a b N _ -> next (bs :!: S a b x N :!: i+1)
91− S a b c N -> next (bs :!: S a b c x :!: i+1)
88+ S N _ _ _ -> next (bs :*: S x N N N :*: i+1)
89+ S a N _ _ -> next (bs :*: S a x N N :*: i+1)
90+ S a b N _ -> next (bs :*: S a b x N :*: i+1)
91+ S a b c N -> next (bs :*: S a b c x :*: i+1)
9292 S (J a) b c d -> decodeError "streamUtf8" "UTF-8" onErr (Just a)
93− (bs :!: S b c d N :!: i+1)
93+ (bs :*: S b c d N :*: i+1)
9494 where x = J (B.unsafeIndex ps i)
95− consume (Empty :!: S N _ _ _ :!: _) = Done
95+ consume (Empty :*: S N _ _ _ :*: _) = Done
9696 consume st = decodeError "streamUtf8" "UTF-8" onErr Nothing st
9797{-# INLINE [0] streamUtf8 #-}
9898
Data/Text/Lazy/Fusion.hs+5−5
@@ -36,12 +36,12 @@ default(Int64)
3636
3737-- | /O(n)/ Convert a 'Text' into a 'Stream Char'.
3838stream :: Text -> Stream Char
39−stream text = Stream next (text :!: 0) 4 -- random HINT
39+stream text = Stream next (text :*: 0) 4 -- random HINT
4040 where
41− next (Empty :!: _) = Done
42− next (txt@(Chunk t@(I.Text _ _ len) ts) :!: i)
43− | i >= len = next (ts :!: 0)
44− | otherwise = Yield c (txt :!: i+d)
41+ next (Empty :*: _) = Done
42+ next (txt@(Chunk t@(I.Text _ _ len) ts) :*: i)
43+ | i >= len = next (ts :*: 0)
44+ | otherwise = Yield c (txt :*: i+d)
4545 where (c,d) = iter t i
4646{-# INLINE [0] stream #-}
4747
Data/Text/Search.hs+3−2
@@ -35,6 +35,7 @@ module Data.Text.Search
3535import qualified Data.Text.Array as A
3636import Data.Word (Word64)
3737import Data.Text.Internal (Text(..))
38+import Data.Text.Fusion.Internal (PairS(..))
3839import Data.Bits ((.|.), (.&.))
3940import Data.Text.UnsafeShift (shiftL)
4041
@@ -56,9 +57,9 @@ indices _needle@(Text narr noff nlen) _haystack@(Text harr hoff hlen)
5657 z = nindex nlast
5758 nindex k = A.unsafeIndex narr (noff+k)
5859 hindex k = A.unsafeIndex harr (hoff+k)
59− (mask :: Word64, skip) = buildTable 0 0 (nlen-2)
60+ (mask :: Word64) :*: skip = buildTable 0 0 (nlen-2)
6061 buildTable !i !msk !skp
61− | i >= nlast = (msk .|. swizzle z, skp)
62+ | i >= nlast = (msk .|. swizzle z) :*: skp
6263 | otherwise = buildTable (i+1) (msk .|. swizzle c) skp'
6364 where c = nindex i
6465 skp' | c == z = nlen - i - 2