    {-# LANGUAGE Rank2Types #-}
    -- AUTOMATICALLY GENERATED - DO NOT EDIT
    -- Generated by scripts/CaseMapping.hs
    -- CaseFolding-7.0.0.txt
    -- Date: 2014-04-09, 20:00:56 GMT [MD]
    -- SpecialCasing-7.0.0.txt
    -- Date: 2014-03-18, 07:18:02 GMT [MD]

    module Data.Text.Internal.Fusion.CaseMapping where
    import Data.Char
    import Data.Text.Internal.Fusion.Types

    upperMapping :: forall s. Char -> s -> Step (CC s) Char
    {-# NOINLINE upperMapping #-}
    -- LATIN SMALL LETTER SHARP S
    upperMapping '\x00df' s = Yield '\x0053' (CC s '\x0053' '\x0000')
    -- LATIN SMALL LIGATURE FF
    upperMapping '\xfb00' s = Yield '\x0046' (CC s '\x0046' '\x0000')
    -- LATIN SMALL LIGATURE FI
    upperMapping '\xfb01' s = Yield '\x0046' (CC s '\x0049' '\x0000')
    -- LATIN SMALL LIGATURE FL
    upperMapping '\xfb02' s = Yield '\x0046' (CC s '\x004c' '\x0000')
    -- LATIN SMALL LIGATURE FFI
    upperMapping '\xfb03' s = Yield '\x0046' (CC s '\x0046' '\x0049')
    -- LATIN SMALL LIGATURE FFL
    upperMapping '\xfb04' s = Yield '\x0046' (CC s '\x0046' '\x004c')
    -- LATIN SMALL LIGATURE LONG S T
    upperMapping '\xfb05' s = Yield '\x0053' (CC s '\x0054' '\x0000')
    -- LATIN SMALL LIGATURE ST
    upperMapping '\xfb06' s = Yield '\x0053' (CC s '\x0054' '\x0000')
    -- ARMENIAN SMALL LIGATURE ECH YIWN
    upperMapping '\x0587' s = Yield '\x0535' (CC s '\x0552' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN NOW
    upperMapping '\xfb13' s = Yield '\x0544' (CC s '\x0546' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN ECH
    upperMapping '\xfb14' s = Yield '\x0544' (CC s '\x0535' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN INI
    upperMapping '\xfb15' s = Yield '\x0544' (CC s '\x053b' '\x0000')
    -- ARMENIAN SMALL LIGATURE VEW NOW
    upperMapping '\xfb16' s = Yield '\x054e' (CC s '\x0546' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN XEH
    upperMapping '\xfb17' s = Yield '\x0544' (CC s '\x053d' '\x0000')
    -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
    upperMapping '\x0149' s = Yield '\x02bc' (CC s '\x004e' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
    upperMapping '\x0390' s = Yield '\x0399' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
    upperMapping '\x03b0' s = Yield '\x03a5' (CC s '\x0308' '\x0301')
    -- LATIN SMALL LETTER J WITH CARON
    upperMapping '\x01f0' s = Yield '\x004a' (CC s '\x030c' '\x0000')
    -- LATIN SMALL LETTER H WITH LINE BELOW
    upperMapping '\x1e96' s = Yield '\x0048' (CC s '\x0331' '\x0000')
    -- LATIN SMALL LETTER T WITH DIAERESIS
    upperMapping '\x1e97' s = Yield '\x0054' (CC s '\x0308' '\x0000')
    -- LATIN SMALL LETTER W WITH RING ABOVE
    upperMapping '\x1e98' s = Yield '\x0057' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER Y WITH RING ABOVE
    upperMapping '\x1e99' s = Yield '\x0059' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER A WITH RIGHT HALF RING
    upperMapping '\x1e9a' s = Yield '\x0041' (CC s '\x02be' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI
    upperMapping '\x1f50' s = Yield '\x03a5' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
    upperMapping '\x1f52' s = Yield '\x03a5' (CC s '\x0313' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
    upperMapping '\x1f54' s = Yield '\x03a5' (CC s '\x0313' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
    upperMapping '\x1f56' s = Yield '\x03a5' (CC s '\x0313' '\x0342')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI
    upperMapping '\x1fb6' s = Yield '\x0391' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI
    upperMapping '\x1fc6' s = Yield '\x0397' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
    upperMapping '\x1fd2' s = Yield '\x0399' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
    upperMapping '\x1fd3' s = Yield '\x0399' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER IOTA WITH PERISPOMENI
    upperMapping '\x1fd6' s = Yield '\x0399' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
    upperMapping '\x1fd7' s = Yield '\x0399' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
    upperMapping '\x1fe2' s = Yield '\x03a5' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
    upperMapping '\x1fe3' s = Yield '\x03a5' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER RHO WITH PSILI
    upperMapping '\x1fe4' s = Yield '\x03a1' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI
    upperMapping '\x1fe6' s = Yield '\x03a5' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
    upperMapping '\x1fe7' s = Yield '\x03a5' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI
    upperMapping '\x1ff6' s = Yield '\x03a9' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
    upperMapping '\x1f80' s = Yield '\x1f08' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
    upperMapping '\x1f81' s = Yield '\x1f09' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1f82' s = Yield '\x1f0a' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1f83' s = Yield '\x1f0b' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1f84' s = Yield '\x1f0c' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1f85' s = Yield '\x1f0d' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1f86' s = Yield '\x1f0e' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1f87' s = Yield '\x1f0f' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
    upperMapping '\x1f88' s = Yield '\x1f08' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
    upperMapping '\x1f89' s = Yield '\x1f09' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1f8a' s = Yield '\x1f0a' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1f8b' s = Yield '\x1f0b' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1f8c' s = Yield '\x1f0c' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1f8d' s = Yield '\x1f0d' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1f8e' s = Yield '\x1f0e' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1f8f' s = Yield '\x1f0f' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
    upperMapping '\x1f90' s = Yield '\x1f28' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
    upperMapping '\x1f91' s = Yield '\x1f29' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1f92' s = Yield '\x1f2a' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1f93' s = Yield '\x1f2b' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1f94' s = Yield '\x1f2c' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1f95' s = Yield '\x1f2d' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1f96' s = Yield '\x1f2e' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1f97' s = Yield '\x1f2f' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
    upperMapping '\x1f98' s = Yield '\x1f28' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
    upperMapping '\x1f99' s = Yield '\x1f29' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1f9a' s = Yield '\x1f2a' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1f9b' s = Yield '\x1f2b' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1f9c' s = Yield '\x1f2c' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1f9d' s = Yield '\x1f2d' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1f9e' s = Yield '\x1f2e' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1f9f' s = Yield '\x1f2f' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
    upperMapping '\x1fa0' s = Yield '\x1f68' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
    upperMapping '\x1fa1' s = Yield '\x1f69' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1fa2' s = Yield '\x1f6a' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    upperMapping '\x1fa3' s = Yield '\x1f6b' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1fa4' s = Yield '\x1f6c' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    upperMapping '\x1fa5' s = Yield '\x1f6d' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1fa6' s = Yield '\x1f6e' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1fa7' s = Yield '\x1f6f' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
    upperMapping '\x1fa8' s = Yield '\x1f68' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
    upperMapping '\x1fa9' s = Yield '\x1f69' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1faa' s = Yield '\x1f6a' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    upperMapping '\x1fab' s = Yield '\x1f6b' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1fac' s = Yield '\x1f6c' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    upperMapping '\x1fad' s = Yield '\x1f6d' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1fae' s = Yield '\x1f6e' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    upperMapping '\x1faf' s = Yield '\x1f6f' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
    upperMapping '\x1fb3' s = Yield '\x0391' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
    upperMapping '\x1fbc' s = Yield '\x0391' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
    upperMapping '\x1fc3' s = Yield '\x0397' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
    upperMapping '\x1fcc' s = Yield '\x0397' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
    upperMapping '\x1ff3' s = Yield '\x03a9' (CC s '\x0399' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
    upperMapping '\x1ffc' s = Yield '\x03a9' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
    upperMapping '\x1fb2' s = Yield '\x1fba' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
    upperMapping '\x1fb4' s = Yield '\x0386' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
    upperMapping '\x1fc2' s = Yield '\x1fca' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
    upperMapping '\x1fc4' s = Yield '\x0389' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
    upperMapping '\x1ff2' s = Yield '\x1ffa' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
    upperMapping '\x1ff4' s = Yield '\x038f' (CC s '\x0399' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1fb7' s = Yield '\x0391' (CC s '\x0342' '\x0399')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1fc7' s = Yield '\x0397' (CC s '\x0342' '\x0399')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
    upperMapping '\x1ff7' s = Yield '\x03a9' (CC s '\x0342' '\x0399')
    upperMapping c s = Yield (toUpper c) (CC s '\0' '\0')
    lowerMapping :: forall s. Char -> s -> Step (CC s) Char
    {-# NOINLINE lowerMapping #-}
    -- LATIN CAPITAL LETTER I WITH DOT ABOVE
    lowerMapping '\x0130' s = Yield '\x0069' (CC s '\x0307' '\x0000')
    lowerMapping c s = Yield (toLower c) (CC s '\0' '\0')
    titleMapping :: forall s. Char -> s -> Step (CC s) Char
    {-# NOINLINE titleMapping #-}
    -- LATIN SMALL LETTER SHARP S
    titleMapping '\x00df' s = Yield '\x0053' (CC s '\x0073' '\x0000')
    -- LATIN SMALL LIGATURE FF
    titleMapping '\xfb00' s = Yield '\x0046' (CC s '\x0066' '\x0000')
    -- LATIN SMALL LIGATURE FI
    titleMapping '\xfb01' s = Yield '\x0046' (CC s '\x0069' '\x0000')
    -- LATIN SMALL LIGATURE FL
    titleMapping '\xfb02' s = Yield '\x0046' (CC s '\x006c' '\x0000')
    -- LATIN SMALL LIGATURE FFI
    titleMapping '\xfb03' s = Yield '\x0046' (CC s '\x0066' '\x0069')
    -- LATIN SMALL LIGATURE FFL
    titleMapping '\xfb04' s = Yield '\x0046' (CC s '\x0066' '\x006c')
    -- LATIN SMALL LIGATURE LONG S T
    titleMapping '\xfb05' s = Yield '\x0053' (CC s '\x0074' '\x0000')
    -- LATIN SMALL LIGATURE ST
    titleMapping '\xfb06' s = Yield '\x0053' (CC s '\x0074' '\x0000')
    -- ARMENIAN SMALL LIGATURE ECH YIWN
    titleMapping '\x0587' s = Yield '\x0535' (CC s '\x0582' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN NOW
    titleMapping '\xfb13' s = Yield '\x0544' (CC s '\x0576' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN ECH
    titleMapping '\xfb14' s = Yield '\x0544' (CC s '\x0565' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN INI
    titleMapping '\xfb15' s = Yield '\x0544' (CC s '\x056b' '\x0000')
    -- ARMENIAN SMALL LIGATURE VEW NOW
    titleMapping '\xfb16' s = Yield '\x054e' (CC s '\x0576' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN XEH
    titleMapping '\xfb17' s = Yield '\x0544' (CC s '\x056d' '\x0000')
    -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
    titleMapping '\x0149' s = Yield '\x02bc' (CC s '\x004e' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
    titleMapping '\x0390' s = Yield '\x0399' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
    titleMapping '\x03b0' s = Yield '\x03a5' (CC s '\x0308' '\x0301')
    -- LATIN SMALL LETTER J WITH CARON
    titleMapping '\x01f0' s = Yield '\x004a' (CC s '\x030c' '\x0000')
    -- LATIN SMALL LETTER H WITH LINE BELOW
    titleMapping '\x1e96' s = Yield '\x0048' (CC s '\x0331' '\x0000')
    -- LATIN SMALL LETTER T WITH DIAERESIS
    titleMapping '\x1e97' s = Yield '\x0054' (CC s '\x0308' '\x0000')
    -- LATIN SMALL LETTER W WITH RING ABOVE
    titleMapping '\x1e98' s = Yield '\x0057' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER Y WITH RING ABOVE
    titleMapping '\x1e99' s = Yield '\x0059' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER A WITH RIGHT HALF RING
    titleMapping '\x1e9a' s = Yield '\x0041' (CC s '\x02be' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI
    titleMapping '\x1f50' s = Yield '\x03a5' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
    titleMapping '\x1f52' s = Yield '\x03a5' (CC s '\x0313' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
    titleMapping '\x1f54' s = Yield '\x03a5' (CC s '\x0313' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
    titleMapping '\x1f56' s = Yield '\x03a5' (CC s '\x0313' '\x0342')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI
    titleMapping '\x1fb6' s = Yield '\x0391' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI
    titleMapping '\x1fc6' s = Yield '\x0397' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
    titleMapping '\x1fd2' s = Yield '\x0399' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
    titleMapping '\x1fd3' s = Yield '\x0399' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER IOTA WITH PERISPOMENI
    titleMapping '\x1fd6' s = Yield '\x0399' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
    titleMapping '\x1fd7' s = Yield '\x0399' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
    titleMapping '\x1fe2' s = Yield '\x03a5' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
    titleMapping '\x1fe3' s = Yield '\x03a5' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER RHO WITH PSILI
    titleMapping '\x1fe4' s = Yield '\x03a1' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI
    titleMapping '\x1fe6' s = Yield '\x03a5' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
    titleMapping '\x1fe7' s = Yield '\x03a5' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI
    titleMapping '\x1ff6' s = Yield '\x03a9' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
    titleMapping '\x1fb2' s = Yield '\x1fba' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
    titleMapping '\x1fb4' s = Yield '\x0386' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
    titleMapping '\x1fc2' s = Yield '\x1fca' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
    titleMapping '\x1fc4' s = Yield '\x0389' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
    titleMapping '\x1ff2' s = Yield '\x1ffa' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
    titleMapping '\x1ff4' s = Yield '\x038f' (CC s '\x0345' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
    titleMapping '\x1fb7' s = Yield '\x0391' (CC s '\x0342' '\x0345')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
    titleMapping '\x1fc7' s = Yield '\x0397' (CC s '\x0342' '\x0345')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
    titleMapping '\x1ff7' s = Yield '\x03a9' (CC s '\x0342' '\x0345')
    titleMapping c s = Yield (toTitle c) (CC s '\0' '\0')
    foldMapping :: forall s. Char -> s -> Step (CC s) Char
    {-# NOINLINE foldMapping #-}
    -- MICRO SIGN
    foldMapping '\x00b5' s = Yield '\x03bc' (CC s '\x0000' '\x0000')
    -- LATIN SMALL LETTER SHARP S
    foldMapping '\x00df' s = Yield '\x0073' (CC s '\x0073' '\x0000')
    -- LATIN CAPITAL LETTER I WITH DOT ABOVE
    foldMapping '\x0130' s = Yield '\x0069' (CC s '\x0307' '\x0000')
    -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
    foldMapping '\x0149' s = Yield '\x02bc' (CC s '\x006e' '\x0000')
    -- LATIN SMALL LETTER LONG S
    foldMapping '\x017f' s = Yield '\x0073' (CC s '\x0000' '\x0000')
    -- LATIN SMALL LETTER J WITH CARON
    foldMapping '\x01f0' s = Yield '\x006a' (CC s '\x030c' '\x0000')
    -- COMBINING GREEK YPOGEGRAMMENI
    foldMapping '\x0345' s = Yield '\x03b9' (CC s '\x0000' '\x0000')
    -- GREEK CAPITAL LETTER YOT
    foldMapping '\x037f' s = Yield '\x03f3' (CC s '\x0000' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
    foldMapping '\x0390' s = Yield '\x03b9' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
    foldMapping '\x03b0' s = Yield '\x03c5' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER FINAL SIGMA
    foldMapping '\x03c2' s = Yield '\x03c3' (CC s '\x0000' '\x0000')
    -- GREEK BETA SYMBOL
    foldMapping '\x03d0' s = Yield '\x03b2' (CC s '\x0000' '\x0000')
    -- GREEK THETA SYMBOL
    foldMapping '\x03d1' s = Yield '\x03b8' (CC s '\x0000' '\x0000')
    -- GREEK PHI SYMBOL
    foldMapping '\x03d5' s = Yield '\x03c6' (CC s '\x0000' '\x0000')
    -- GREEK PI SYMBOL
    foldMapping '\x03d6' s = Yield '\x03c0' (CC s '\x0000' '\x0000')
    -- GREEK KAPPA SYMBOL
    foldMapping '\x03f0' s = Yield '\x03ba' (CC s '\x0000' '\x0000')
    -- GREEK RHO SYMBOL
    foldMapping '\x03f1' s = Yield '\x03c1' (CC s '\x0000' '\x0000')
    -- GREEK LUNATE EPSILON SYMBOL
    foldMapping '\x03f5' s = Yield '\x03b5' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
    foldMapping '\x0528' s = Yield '\x0529' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER DZZHE
    foldMapping '\x052a' s = Yield '\x052b' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER DCHE
    foldMapping '\x052c' s = Yield '\x052d' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER EL WITH DESCENDER
    foldMapping '\x052e' s = Yield '\x052f' (CC s '\x0000' '\x0000')
    -- ARMENIAN SMALL LIGATURE ECH YIWN
    foldMapping '\x0587' s = Yield '\x0565' (CC s '\x0582' '\x0000')
    -- GEORGIAN CAPITAL LETTER YN
    foldMapping '\x10c7' s = Yield '\x2d27' (CC s '\x0000' '\x0000')
    -- GEORGIAN CAPITAL LETTER AEN
    foldMapping '\x10cd' s = Yield '\x2d2d' (CC s '\x0000' '\x0000')
    -- LATIN SMALL LETTER H WITH LINE BELOW
    foldMapping '\x1e96' s = Yield '\x0068' (CC s '\x0331' '\x0000')
    -- LATIN SMALL LETTER T WITH DIAERESIS
    foldMapping '\x1e97' s = Yield '\x0074' (CC s '\x0308' '\x0000')
    -- LATIN SMALL LETTER W WITH RING ABOVE
    foldMapping '\x1e98' s = Yield '\x0077' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER Y WITH RING ABOVE
    foldMapping '\x1e99' s = Yield '\x0079' (CC s '\x030a' '\x0000')
    -- LATIN SMALL LETTER A WITH RIGHT HALF RING
    foldMapping '\x1e9a' s = Yield '\x0061' (CC s '\x02be' '\x0000')
    -- LATIN SMALL LETTER LONG S WITH DOT ABOVE
    foldMapping '\x1e9b' s = Yield '\x1e61' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER SHARP S
    foldMapping '\x1e9e' s = Yield '\x0073' (CC s '\x0073' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI
    foldMapping '\x1f50' s = Yield '\x03c5' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
    foldMapping '\x1f52' s = Yield '\x03c5' (CC s '\x0313' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
    foldMapping '\x1f54' s = Yield '\x03c5' (CC s '\x0313' '\x0301')
    -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
    foldMapping '\x1f56' s = Yield '\x03c5' (CC s '\x0313' '\x0342')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
    foldMapping '\x1f80' s = Yield '\x1f00' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
    foldMapping '\x1f81' s = Yield '\x1f01' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1f82' s = Yield '\x1f02' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1f83' s = Yield '\x1f03' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1f84' s = Yield '\x1f04' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1f85' s = Yield '\x1f05' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1f86' s = Yield '\x1f06' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1f87' s = Yield '\x1f07' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
    foldMapping '\x1f88' s = Yield '\x1f00' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
    foldMapping '\x1f89' s = Yield '\x1f01' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1f8a' s = Yield '\x1f02' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1f8b' s = Yield '\x1f03' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1f8c' s = Yield '\x1f04' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1f8d' s = Yield '\x1f05' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1f8e' s = Yield '\x1f06' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1f8f' s = Yield '\x1f07' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
    foldMapping '\x1f90' s = Yield '\x1f20' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
    foldMapping '\x1f91' s = Yield '\x1f21' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1f92' s = Yield '\x1f22' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1f93' s = Yield '\x1f23' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1f94' s = Yield '\x1f24' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1f95' s = Yield '\x1f25' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1f96' s = Yield '\x1f26' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1f97' s = Yield '\x1f27' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
    foldMapping '\x1f98' s = Yield '\x1f20' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
    foldMapping '\x1f99' s = Yield '\x1f21' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1f9a' s = Yield '\x1f22' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1f9b' s = Yield '\x1f23' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1f9c' s = Yield '\x1f24' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1f9d' s = Yield '\x1f25' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1f9e' s = Yield '\x1f26' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1f9f' s = Yield '\x1f27' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
    foldMapping '\x1fa0' s = Yield '\x1f60' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
    foldMapping '\x1fa1' s = Yield '\x1f61' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1fa2' s = Yield '\x1f62' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
    foldMapping '\x1fa3' s = Yield '\x1f63' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1fa4' s = Yield '\x1f64' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
    foldMapping '\x1fa5' s = Yield '\x1f65' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1fa6' s = Yield '\x1f66' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1fa7' s = Yield '\x1f67' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
    foldMapping '\x1fa8' s = Yield '\x1f60' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
    foldMapping '\x1fa9' s = Yield '\x1f61' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1faa' s = Yield '\x1f62' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
    foldMapping '\x1fab' s = Yield '\x1f63' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1fac' s = Yield '\x1f64' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
    foldMapping '\x1fad' s = Yield '\x1f65' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1fae' s = Yield '\x1f66' (CC s '\x03b9' '\x0000')
    -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
    foldMapping '\x1faf' s = Yield '\x1f67' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
    foldMapping '\x1fb2' s = Yield '\x1f70' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
    foldMapping '\x1fb3' s = Yield '\x03b1' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
    foldMapping '\x1fb4' s = Yield '\x03ac' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI
    foldMapping '\x1fb6' s = Yield '\x03b1' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1fb7' s = Yield '\x03b1' (CC s '\x0342' '\x03b9')
    -- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
    foldMapping '\x1fbc' s = Yield '\x03b1' (CC s '\x03b9' '\x0000')
    -- GREEK PROSGEGRAMMENI
    foldMapping '\x1fbe' s = Yield '\x03b9' (CC s '\x0000' '\x0000')
    -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
    foldMapping '\x1fc2' s = Yield '\x1f74' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
    foldMapping '\x1fc3' s = Yield '\x03b7' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
    foldMapping '\x1fc4' s = Yield '\x03ae' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI
    foldMapping '\x1fc6' s = Yield '\x03b7' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1fc7' s = Yield '\x03b7' (CC s '\x0342' '\x03b9')
    -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
    foldMapping '\x1fcc' s = Yield '\x03b7' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
    foldMapping '\x1fd2' s = Yield '\x03b9' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
    foldMapping '\x1fd3' s = Yield '\x03b9' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER IOTA WITH PERISPOMENI
    foldMapping '\x1fd6' s = Yield '\x03b9' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
    foldMapping '\x1fd7' s = Yield '\x03b9' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
    foldMapping '\x1fe2' s = Yield '\x03c5' (CC s '\x0308' '\x0300')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
    foldMapping '\x1fe3' s = Yield '\x03c5' (CC s '\x0308' '\x0301')
    -- GREEK SMALL LETTER RHO WITH PSILI
    foldMapping '\x1fe4' s = Yield '\x03c1' (CC s '\x0313' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI
    foldMapping '\x1fe6' s = Yield '\x03c5' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
    foldMapping '\x1fe7' s = Yield '\x03c5' (CC s '\x0308' '\x0342')
    -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
    foldMapping '\x1ff2' s = Yield '\x1f7c' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
    foldMapping '\x1ff3' s = Yield '\x03c9' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
    foldMapping '\x1ff4' s = Yield '\x03ce' (CC s '\x03b9' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI
    foldMapping '\x1ff6' s = Yield '\x03c9' (CC s '\x0342' '\x0000')
    -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
    foldMapping '\x1ff7' s = Yield '\x03c9' (CC s '\x0342' '\x03b9')
    -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
    foldMapping '\x1ffc' s = Yield '\x03c9' (CC s '\x03b9' '\x0000')
    -- COPTIC CAPITAL LETTER BOHAIRIC KHEI
    foldMapping '\x2cf2' s = Yield '\x2cf3' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER DOUBLE O
    foldMapping '\xa698' s = Yield '\xa699' (CC s '\x0000' '\x0000')
    -- CYRILLIC CAPITAL LETTER CROSSED O
    foldMapping '\xa69a' s = Yield '\xa69b' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER C WITH BAR
    foldMapping '\xa792' s = Yield '\xa793' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER B WITH FLOURISH
    foldMapping '\xa796' s = Yield '\xa797' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER F WITH STROKE
    foldMapping '\xa798' s = Yield '\xa799' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER VOLAPUK AE
    foldMapping '\xa79a' s = Yield '\xa79b' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER VOLAPUK OE
    foldMapping '\xa79c' s = Yield '\xa79d' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER VOLAPUK UE
    foldMapping '\xa79e' s = Yield '\xa79f' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER H WITH HOOK
    foldMapping '\xa7aa' s = Yield '\x0266' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER REVERSED OPEN E
    foldMapping '\xa7ab' s = Yield '\x025c' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER SCRIPT G
    foldMapping '\xa7ac' s = Yield '\x0261' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER L WITH BELT
    foldMapping '\xa7ad' s = Yield '\x026c' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER TURNED K
    foldMapping '\xa7b0' s = Yield '\x029e' (CC s '\x0000' '\x0000')
    -- LATIN CAPITAL LETTER TURNED T
    foldMapping '\xa7b1' s = Yield '\x0287' (CC s '\x0000' '\x0000')
    -- LATIN SMALL LIGATURE FF
    foldMapping '\xfb00' s = Yield '\x0066' (CC s '\x0066' '\x0000')
    -- LATIN SMALL LIGATURE FI
    foldMapping '\xfb01' s = Yield '\x0066' (CC s '\x0069' '\x0000')
    -- LATIN SMALL LIGATURE FL
    foldMapping '\xfb02' s = Yield '\x0066' (CC s '\x006c' '\x0000')
    -- LATIN SMALL LIGATURE FFI
    foldMapping '\xfb03' s = Yield '\x0066' (CC s '\x0066' '\x0069')
    -- LATIN SMALL LIGATURE FFL
    foldMapping '\xfb04' s = Yield '\x0066' (CC s '\x0066' '\x006c')
    -- LATIN SMALL LIGATURE LONG S T
    foldMapping '\xfb05' s = Yield '\x0073' (CC s '\x0074' '\x0000')
    -- LATIN SMALL LIGATURE ST
    foldMapping '\xfb06' s = Yield '\x0073' (CC s '\x0074' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN NOW
    foldMapping '\xfb13' s = Yield '\x0574' (CC s '\x0576' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN ECH
    foldMapping '\xfb14' s = Yield '\x0574' (CC s '\x0565' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN INI
    foldMapping '\xfb15' s = Yield '\x0574' (CC s '\x056b' '\x0000')
    -- ARMENIAN SMALL LIGATURE VEW NOW
    foldMapping '\xfb16' s = Yield '\x057e' (CC s '\x0576' '\x0000')
    -- ARMENIAN SMALL LIGATURE MEN XEH
    foldMapping '\xfb17' s = Yield '\x0574' (CC s '\x056d' '\x0000')
    -- WARANG CITI CAPITAL LETTER NGAA
    foldMapping '\x118a0' s = Yield '\x118c0' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER A
    foldMapping '\x118a1' s = Yield '\x118c1' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER WI
    foldMapping '\x118a2' s = Yield '\x118c2' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER YU
    foldMapping '\x118a3' s = Yield '\x118c3' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER YA
    foldMapping '\x118a4' s = Yield '\x118c4' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER YO
    foldMapping '\x118a5' s = Yield '\x118c5' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER II
    foldMapping '\x118a6' s = Yield '\x118c6' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER UU
    foldMapping '\x118a7' s = Yield '\x118c7' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER E
    foldMapping '\x118a8' s = Yield '\x118c8' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER O
    foldMapping '\x118a9' s = Yield '\x118c9' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER ANG
    foldMapping '\x118aa' s = Yield '\x118ca' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER GA
    foldMapping '\x118ab' s = Yield '\x118cb' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER KO
    foldMapping '\x118ac' s = Yield '\x118cc' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER ENY
    foldMapping '\x118ad' s = Yield '\x118cd' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER YUJ
    foldMapping '\x118ae' s = Yield '\x118ce' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER UC
    foldMapping '\x118af' s = Yield '\x118cf' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER ENN
    foldMapping '\x118b0' s = Yield '\x118d0' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER ODD
    foldMapping '\x118b1' s = Yield '\x118d1' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER TTE
    foldMapping '\x118b2' s = Yield '\x118d2' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER NUNG
    foldMapping '\x118b3' s = Yield '\x118d3' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER DA
    foldMapping '\x118b4' s = Yield '\x118d4' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER AT
    foldMapping '\x118b5' s = Yield '\x118d5' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER AM
    foldMapping '\x118b6' s = Yield '\x118d6' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER BU
    foldMapping '\x118b7' s = Yield '\x118d7' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER PU
    foldMapping '\x118b8' s = Yield '\x118d8' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER HIYO
    foldMapping '\x118b9' s = Yield '\x118d9' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER HOLO
    foldMapping '\x118ba' s = Yield '\x118da' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER HORR
    foldMapping '\x118bb' s = Yield '\x118db' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER HAR
    foldMapping '\x118bc' s = Yield '\x118dc' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER SSUU
    foldMapping '\x118bd' s = Yield '\x118dd' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER SII
    foldMapping '\x118be' s = Yield '\x118de' (CC s '\x0000' '\x0000')
    -- WARANG CITI CAPITAL LETTER VIYO
    foldMapping '\x118bf' s = Yield '\x118df' (CC s '\x0000' '\x0000')
    foldMapping c s = Yield (toLower c) (CC s '\0' '\0')