On 2/2/22 20:42, Ricardo Signes wrote:
> Porters,
> Unicode provides a thing called bracket pairs
> <
https://www.unicode.org/notes/tn39/>. These are pairs of characters
> that have an opening and a closing character and can enclose a run of
> other characters. Each pair has an opening and closing character. I
> think that when processing utf-8 source (under "use utf8") we could
> treat these pairs as paired delimiters for quote-like operators. For
> example
>
> my @words = qw〔 bingo bango bongo 〕;
>
>
> To match the behavior of ASCII brackets, these would nest.
>
> my $string = q⌜This string contains ⌜ and ⌟ which is fine.⌟;
>
I have done some research and have a revised proposal.
Unicode has a property Bidi_Mirrored that matches characters of some
importance to the Bidirectional algorithm that need to be represented
differently in a Right-to-Left rendering. There is another property,
Bidi_Mirroring_Glyph that given an input character, returns its mirrored
mate. Not all characters which are to be mirrored have such a mate in
Unicode; if not, an application needs to go to whatever trouble it is
willing to to represent the mirror. This property is used by such an
application to avoid that work when a mate does exist.
Brackets are often important to the algorithm, so the
Bidi_Paired_Bracket and its type properties have been created so that an
application conveniently knows which brackets are considered opening vs
closing, and what their mate is.
Punctuation is problematic for the Bidi algorithm, as it turns out
things vary from language to language. There is the Open_Punctuation
property for punctuation that doesn't vary, and its mate, the
Close_Punctuation property. Most punctuation that has a directional
component are in those two. But there is also Initial_Punctuation and
Final_Punctuation for those (fewer) characters where what language it is
needs to be known, to be able to handle.
Symbols don't tend to be important to the algorithm, so Unicode hasn't
bothered to mark them as opening/closing, as it just doesn't matter to
them. The symbols with a directional component tend to have that
direction specified in their names. like RIGHTWARDS ARROW
So what has all this to do with using characters as quote-like
delimiters? Not much at all. We are concerned with the shape, not the
meaning. What shape looks like it should be the opening quote, versus
the closing one? The properties we have proposed using are not designed
for this, but for handling the Bidi algorithm. They are convenient for
finding candidates, but shouldn't be the final drivers.
The problem I see is that using some of the punctuation characters as
delimiters is culturally sensitive. A French speaker will naturally
think qr« » is appropriate, but Russian uses those differently. It
might be they would prefer qr» ». Any Russian speakers, please chime
in. These punctuation characters match the Initial/Final Punctuation
properties. There aren't many such, but some are ones that Western
European speakers consider important
'«' LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
'‘' LEFT SINGLE QUOTATION MARK
'“' LEFT DOUBLE QUOTATION MARK
and their mates.
I'm proposing we use those as Western Europeans would expect.
I wrote a bit of code to take into account all these findings, and came
up with this list.
LEFT PARENTHESIS => RIGHT PARENTHESIS ( )
LESS-THAN SIGN => GREATER-THAN SIGN < >
LEFT SQUARE BRACKET => RIGHT SQUARE BRACKET [ ]
LEFT CURLY BRACKET => RIGHT CURLY BRACKET { }
LEFT-POINTING DOUBLE ANGLE QUOTATION MARK => RIGHT-POINTING DOUBLE ANGLE
QUOTATION MARK « »
TIBETAN MARK GUG RTAGS GYON => TIBETAN MARK GUG RTAGS GYAS ༺ ༻
TIBETAN MARK ANG KHANG GYON => TIBETAN MARK ANG KHANG GYAS ༼ ༽
SINGLE LEFT-POINTING ANGLE QUOTATION MARK => SINGLE RIGHT-POINTING ANGLE
QUOTATION MARK ‹ ›
LEFT SQUARE BRACKET WITH QUILL => RIGHT SQUARE BRACKET WITH QUILL ⁅ ⁆
SUPERSCRIPT LEFT PARENTHESIS => SUPERSCRIPT RIGHT PARENTHESIS ⁽ ⁾
SUBSCRIPT LEFT PARENTHESIS => SUBSCRIPT RIGHT PARENTHESIS ₍ ₎
RIGHTWARDS ARROW => LEFTWARDS ARROW → ←
RIGHTWARDS ARROW WITH STROKE => LEFTWARDS ARROW WITH STROKE ↛ ↚
RIGHTWARDS WAVE ARROW => LEFTWARDS WAVE ARROW ↝ ↜
RIGHTWARDS TWO HEADED ARROW => LEFTWARDS TWO HEADED ARROW ↠ ↞
RIGHTWARDS ARROW WITH TAIL => LEFTWARDS ARROW WITH TAIL ↣ ↢
RIGHTWARDS ARROW FROM BAR => LEFTWARDS ARROW FROM BAR ↦ ↤
RIGHTWARDS ARROW WITH HOOK => LEFTWARDS ARROW WITH HOOK ↪ ↩
RIGHTWARDS ARROW WITH LOOP => LEFTWARDS ARROW WITH LOOP ↬ ↫
UPWARDS ARROW WITH TIP RIGHTWARDS => UPWARDS ARROW WITH TIP LEFTWARDS
↱ ↰
DOWNWARDS ARROW WITH TIP RIGHTWARDS => DOWNWARDS ARROW WITH TIP
LEFTWARDS ↳ ↲
UPWARDS HARPOON WITH BARB RIGHTWARDS => UPWARDS HARPOON WITH BARB
LEFTWARDS ↾ ↿
DOWNWARDS HARPOON WITH BARB RIGHTWARDS => DOWNWARDS HARPOON WITH BARB
LEFTWARDS ⇂ ⇃
RIGHTWARDS PAIRED ARROWS => LEFTWARDS PAIRED ARROWS ⇉ ⇇
RIGHTWARDS DOUBLE ARROW WITH STROKE => LEFTWARDS DOUBLE ARROW WITH
STROKE ⇏ ⇍
RIGHTWARDS DOUBLE ARROW => LEFTWARDS DOUBLE ARROW ⇒ ⇐
RIGHTWARDS TRIPLE ARROW => LEFTWARDS TRIPLE ARROW ⇛ ⇚
RIGHTWARDS SQUIGGLE ARROW => LEFTWARDS SQUIGGLE ARROW ⇝ ⇜
RIGHTWARDS DASHED ARROW => LEFTWARDS DASHED ARROW ⇢ ⇠
RIGHTWARDS ARROW TO BAR => LEFTWARDS ARROW TO BAR ⇥ ⇤
RIGHTWARDS WHITE ARROW => LEFTWARDS WHITE ARROW ⇨ ⇦
THREE RIGHTWARDS ARROWS => THREE LEFTWARDS ARROWS ⇶ ⬱
RIGHTWARDS OPEN-HEADED ARROW => LEFTWARDS OPEN-HEADED ARROW ⇾ ⇽
LEFT CEILING => RIGHT CEILING ⌈ ⌉
LEFT FLOOR => RIGHT FLOOR ⌊ ⌋
LEFT-POINTING ANGLE BRACKET => RIGHT-POINTING ANGLE BRACKET 〈 〉
APL FUNCTIONAL SYMBOL RIGHTWARDS VANE => APL FUNCTIONAL SYMBOL LEFTWARDS
VANE ⍆ ⍅
APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW => APL FUNCTIONAL SYMBOL
QUAD LEFTWARDS ARROW ⍈ ⍇
MEDIUM LEFT PARENTHESIS ORNAMENT => MEDIUM RIGHT PARENTHESIS ORNAMENT
❨ ❩
MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT => MEDIUM FLATTENED RIGHT
PARENTHESIS ORNAMENT ❪ ❫
MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT => MEDIUM RIGHT-POINTING
ANGLE BRACKET ORNAMENT ❬ ❭
HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT => HEAVY
RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT ❮ ❯
HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT => HEAVY RIGHT-POINTING ANGLE
BRACKET ORNAMENT ❰ ❱
LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT => LIGHT RIGHT TORTOISE SHELL
BRACKET ORNAMENT ❲ ❳
MEDIUM LEFT CURLY BRACKET ORNAMENT => MEDIUM RIGHT CURLY BRACKET
ORNAMENT ❴ ❵
LEFT S-SHAPED BAG DELIMITER => RIGHT S-SHAPED BAG DELIMITER ⟅ ⟆
MATHEMATICAL LEFT WHITE SQUARE BRACKET => MATHEMATICAL RIGHT WHITE
SQUARE BRACKET ⟦ ⟧
MATHEMATICAL LEFT ANGLE BRACKET => MATHEMATICAL RIGHT ANGLE BRACKET ⟨ ⟩
MATHEMATICAL LEFT DOUBLE ANGLE BRACKET => MATHEMATICAL RIGHT DOUBLE
ANGLE BRACKET ⟪ ⟫
MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET => MATHEMATICAL RIGHT
WHITE TORTOISE SHELL BRACKET ⟬ ⟭
MATHEMATICAL LEFT FLATTENED PARENTHESIS => MATHEMATICAL RIGHT FLATTENED
PARENTHESIS ⟮ ⟯
LONG RIGHTWARDS ARROW => LONG LEFTWARDS ARROW ⟶ ⟵
LONG RIGHTWARDS DOUBLE ARROW => LONG LEFTWARDS DOUBLE ARROW ⟹ ⟸
LONG RIGHTWARDS ARROW FROM BAR => LONG LEFTWARDS ARROW FROM BAR ⟼ ⟻
LONG RIGHTWARDS DOUBLE ARROW FROM BAR => LONG LEFTWARDS DOUBLE ARROW
FROM BAR ⟾ ⟽
LONG RIGHTWARDS SQUIGGLE ARROW => LONG LEFTWARDS SQUIGGLE ARROW ⟿ ⬳
RIGHTWARDS TWO-HEADED ARROW FROM BAR => LEFTWARDS TWO-HEADED ARROW FROM
BAR ⤅ ⬶
RIGHTWARDS DOUBLE ARROW FROM BAR => LEFTWARDS DOUBLE ARROW FROM BAR ⤇ ⤆
RIGHTWARDS DOUBLE DASH ARROW => LEFTWARDS DOUBLE DASH ARROW ⤍ ⤌
RIGHTWARDS TRIPLE DASH ARROW => LEFTWARDS TRIPLE DASH ARROW ⤏ ⤎
RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW => LEFTWARDS TWO-HEADED TRIPLE
DASH ARROW ⤐ ⬷
RIGHTWARDS ARROW WITH DOTTED STEM => LEFTWARDS ARROW WITH DOTTED STEM
⤑ ⬸
RIGHTWARDS TWO-HEADED ARROW WITH TAIL => LEFTWARDS TWO-HEADED ARROW WITH
TAIL ⤖ ⬻
RIGHTWARDS ARROW-TAIL => LEFTWARDS ARROW-TAIL ⤚ ⤙
RIGHTWARDS DOUBLE ARROW-TAIL => LEFTWARDS DOUBLE ARROW-TAIL ⤜ ⤛
RIGHTWARDS ARROW TO BLACK DIAMOND => LEFTWARDS ARROW TO BLACK DIAMOND
⤞ ⤝
RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND => LEFTWARDS ARROW FROM BAR
TO BLACK DIAMOND ⤠ ⤟
ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS => ARROW POINTING
DOWNWARDS THEN CURVING LEFTWARDS ⤷ ⤶
RIGHTWARDS ARROW WITH PLUS BELOW => LEFTWARDS ARROW WITH PLUS BELOW ⥅ ⥆
RIGHTWARDS ARROW THROUGH X => LEFTWARDS ARROW THROUGH X ⥇ ⬾
RIGHTWARDS HARPOON WITH BARB UP TO BAR => LEFTWARDS HARPOON WITH BARB UP
TO BAR ⥓ ⥒
RIGHTWARDS HARPOON WITH BARB DOWN TO BAR => LEFTWARDS HARPOON WITH BARB
DOWN TO BAR ⥗ ⥖
RIGHTWARDS HARPOON WITH BARB UP FROM BAR => LEFTWARDS HARPOON WITH BARB
UP FROM BAR ⥛ ⥚
RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR => LEFTWARDS HARPOON WITH
BARB DOWN FROM BAR ⥟ ⥞
RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH => LEFTWARDS HARPOON
WITH BARB UP ABOVE LONG DASH ⥬ ⥪
RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH => LEFTWARDS HARPOON
WITH BARB DOWN BELOW LONG DASH ⥭ ⥫
EQUALS SIGN ABOVE RIGHTWARDS ARROW => EQUALS SIGN ABOVE LEFTWARDS ARROW
⥱ ⭀
TILDE OPERATOR ABOVE RIGHTWARDS ARROW => TILDE OPERATOR ABOVE LEFTWARDS
ARROW ⥲ ⭉
RIGHTWARDS ARROW ABOVE TILDE OPERATOR => LEFTWARDS ARROW ABOVE TILDE
OPERATOR ⥴ ⥳
RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO => LEFTWARDS ARROW ABOVE ALMOST
EQUAL TO ⥵ ⭊
LEFT WHITE CURLY BRACKET => RIGHT WHITE CURLY BRACKET ⦃ ⦄
LEFT WHITE PARENTHESIS => RIGHT WHITE PARENTHESIS ⦅ ⦆
Z NOTATION LEFT IMAGE BRACKET => Z NOTATION RIGHT IMAGE BRACKET ⦇ ⦈
Z NOTATION LEFT BINDING BRACKET => Z NOTATION RIGHT BINDING BRACKET ⦉ ⦊
LEFT SQUARE BRACKET WITH UNDERBAR => RIGHT SQUARE BRACKET WITH UNDERBAR
⦋ ⦌
LEFT SQUARE BRACKET WITH TICK IN TOP CORNER => RIGHT SQUARE BRACKET WITH
TICK IN TOP CORNER ⦍ ⦐
LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER => RIGHT SQUARE BRACKET
WITH TICK IN BOTTOM CORNER ⦏ ⦎
LEFT ANGLE BRACKET WITH DOT => RIGHT ANGLE BRACKET WITH DOT ⦑ ⦒
LEFT ARC LESS-THAN BRACKET => RIGHT ARC GREATER-THAN BRACKET ⦓ ⦔
DOUBLE LEFT ARC GREATER-THAN BRACKET => DOUBLE RIGHT ARC LESS-THAN
BRACKET ⦕ ⦖
LEFT BLACK TORTOISE SHELL BRACKET => RIGHT BLACK TORTOISE SHELL BRACKET
⦗ ⦘
LEFT WIGGLY FENCE => RIGHT WIGGLY FENCE ⧘ ⧙
LEFT DOUBLE WIGGLY FENCE => RIGHT DOUBLE WIGGLY FENCE ⧚ ⧛
LEFT-POINTING CURVED ANGLE BRACKET => RIGHT-POINTING CURVED ANGLE
BRACKET ⧼ ⧽
RIGHTWARDS QUADRUPLE ARROW => LEFTWARDS QUADRUPLE ARROW ⭆ ⭅
REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW => REVERSE TILDE OPERATOR
ABOVE LEFTWARDS ARROW ⭇ ⭁
RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO => LEFTWARDS ARROW ABOVE
REVERSE ALMOST EQUAL TO ⭈ ⭂
RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR => LEFTWARDS ARROW ABOVE
REVERSE TILDE OPERATOR ⭌ ⭋
RIGHTWARDS TRIANGLE-HEADED ARROW => LEFTWARDS TRIANGLE-HEADED ARROW ⭢ ⭠
RIGHTWARDS TRIANGLE-HEADED DASHED ARROW => LEFTWARDS TRIANGLE-HEADED
DASHED ARROW ⭬ ⭪
RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR => LEFTWARDS TRIANGLE-HEADED
ARROW TO BAR ⭲ ⭰
RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS => LEFTWARDS TRIANGLE-HEADED
PAIRED ARROWS ⮆ ⮄
RIGHTWARDS BLACK CIRCLED WHITE ARROW => LEFTWARDS BLACK CIRCLED WHITE
ARROW ⮊ ⮈
RIGHTWARDS BLACK ARROW => LEFTWARDS BLACK ARROW ⮕ ⬅
THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD => THREE-D
TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD ⮚ ⮘
BLACK RIGHTWARDS EQUILATERAL ARROWHEAD => BLACK LEFTWARDS EQUILATERAL
ARROWHEAD ⮞ ⮜
DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS => DOWNWARDS
TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS ⮡ ⮠
UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS => UPWARDS
TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS ⮣ ⮢
BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW => BLACK CURVED DOWNWARDS
AND LEFTWARDS ARROW ⮩ ⮨
BLACK CURVED UPWARDS AND RIGHTWARDS ARROW => BLACK CURVED UPWARDS AND
LEFTWARDS ARROW ⮫ ⮪
RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS => LEFTWARDS
TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS ⯮ ⯬
LEFT SUBSTITUTION BRACKET => RIGHT SUBSTITUTION BRACKET ⸂ ⸃
LEFT DOTTED SUBSTITUTION BRACKET => RIGHT DOTTED SUBSTITUTION BRACKET
⸄ ⸅
LEFT TRANSPOSITION BRACKET => RIGHT TRANSPOSITION BRACKET ⸉ ⸊
LEFT RAISED OMISSION BRACKET => RIGHT RAISED OMISSION BRACKET ⸌ ⸍
LEFT LOW PARAPHRASE BRACKET => RIGHT LOW PARAPHRASE BRACKET ⸜ ⸝
TOP LEFT HALF BRACKET => TOP RIGHT HALF BRACKET ⸢ ⸣
BOTTOM LEFT HALF BRACKET => BOTTOM RIGHT HALF BRACKET ⸤ ⸥
LEFT SIDEWAYS U BRACKET => RIGHT SIDEWAYS U BRACKET ⸦ ⸧
LEFT DOUBLE PARENTHESIS => RIGHT DOUBLE PARENTHESIS ⸨ ⸩
LEFT SQUARE BRACKET WITH STROKE => RIGHT SQUARE BRACKET WITH STROKE ⹕ ⹖
LEFT SQUARE BRACKET WITH DOUBLE STROKE => RIGHT SQUARE BRACKET WITH
DOUBLE STROKE ⹗ ⹘
TOP HALF LEFT PARENTHESIS => TOP HALF RIGHT PARENTHESIS ⹙ ⹚
BOTTOM HALF LEFT PARENTHESIS => BOTTOM HALF RIGHT PARENTHESIS ⹛ ⹜
LEFT ANGLE BRACKET => RIGHT ANGLE BRACKET 〈 〉
LEFT DOUBLE ANGLE BRACKET => RIGHT DOUBLE ANGLE BRACKET 《 》
LEFT CORNER BRACKET => RIGHT CORNER BRACKET 「 」
LEFT WHITE CORNER BRACKET => RIGHT WHITE CORNER BRACKET 『 』
LEFT BLACK LENTICULAR BRACKET => RIGHT BLACK LENTICULAR BRACKET 【 】
LEFT TORTOISE SHELL BRACKET => RIGHT TORTOISE SHELL BRACKET 〔 〕
LEFT WHITE LENTICULAR BRACKET => RIGHT WHITE LENTICULAR BRACKET 〖 〗
LEFT WHITE TORTOISE SHELL BRACKET => RIGHT WHITE TORTOISE SHELL BRACKET
〘 〙
LEFT WHITE SQUARE BRACKET => RIGHT WHITE SQUARE BRACKET 〚 〛
SMALL LEFT PARENTHESIS => SMALL RIGHT PARENTHESIS ﹙ ﹚
SMALL LEFT CURLY BRACKET => SMALL RIGHT CURLY BRACKET ﹛ ﹜
SMALL LEFT TORTOISE SHELL BRACKET => SMALL RIGHT TORTOISE SHELL BRACKET
﹝ ﹞
FULLWIDTH LEFT PARENTHESIS => FULLWIDTH RIGHT PARENTHESIS ( )
FULLWIDTH LEFT SQUARE BRACKET => FULLWIDTH RIGHT SQUARE BRACKET [ ]
FULLWIDTH LEFT CURLY BRACKET => FULLWIDTH RIGHT CURLY BRACKET { }
FULLWIDTH LEFT WHITE PARENTHESIS => FULLWIDTH RIGHT WHITE PARENTHESIS
⦅ ⦆
HALFWIDTH LEFT CORNER BRACKET => HALFWIDTH RIGHT CORNER BRACKET 「 」
HALFWIDTH RIGHTWARDS ARROW => HALFWIDTH LEFTWARDS ARROW → ←
RIGHTWARDS ROCKET => LEFTWARDS ROCKET 🙮 🙬
RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD => LEFTWARDS ARROW WITH
SMALL TRIANGLE ARROWHEAD 🠂 🠀
RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD => LEFTWARDS ARROW WITH
MEDIUM TRIANGLE ARROWHEAD 🠆 🠄
RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD => LEFTWARDS ARROW WITH
LARGE TRIANGLE ARROWHEAD 🠊 🠈
RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD => LEFTWARDS ARROW
WITH SMALL EQUILATERAL ARROWHEAD 🠒 🠐
RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD => LEFTWARDS ARROW WITH
EQUILATERAL ARROWHEAD 🠖 🠔
HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD => HEAVY LEFTWARDS
ARROW WITH EQUILATERAL ARROWHEAD 🠚 🠘
HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD => HEAVY
LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD 🠞 🠜
RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT => LEFTWARDS
TRIANGLE-HEADED ARROW WITH NARROW SHAFT 🠢 🠠
RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT => LEFTWARDS
TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT 🠦 🠤
RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT => LEFTWARDS
TRIANGLE-HEADED ARROW WITH BOLD SHAFT 🠪 🠨
RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT => LEFTWARDS
TRIANGLE-HEADED ARROW WITH HEAVY SHAFT 🠮 🠬
RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT => LEFTWARDS
TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT 🠲 🠰
RIGHTWARDS FINGER-POST ARROW => LEFTWARDS FINGER-POST ARROW 🠶 🠴
RIGHTWARDS SQUARED ARROW => LEFTWARDS SQUARED ARROW 🠺 🠸
RIGHTWARDS COMPRESSED ARROW => LEFTWARDS COMPRESSED ARROW 🠾 🠼
RIGHTWARDS HEAVY COMPRESSED ARROW => LEFTWARDS HEAVY COMPRESSED ARROW
🡂 🡀
RIGHTWARDS HEAVY ARROW => LEFTWARDS HEAVY ARROW 🡆 🡄
RIGHTWARDS SANS-SERIF ARROW => LEFTWARDS SANS-SERIF ARROW 🡒 🡐
WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW => WIDE-HEADED LEFTWARDS LIGHT
BARB ARROW 🡢 🡠
WIDE-HEADED RIGHTWARDS BARB ARROW => WIDE-HEADED LEFTWARDS BARB ARROW
🡪 🡨
WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW => WIDE-HEADED LEFTWARDS MEDIUM
BARB ARROW 🡲 🡰
WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW => WIDE-HEADED LEFTWARDS HEAVY
BARB ARROW 🡺 🡸
WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW => WIDE-HEADED LEFTWARDS
VERY HEAVY BARB ARROW 🢂 🢀
RIGHTWARDS TRIANGLE ARROWHEAD => LEFTWARDS TRIANGLE ARROWHEAD 🢒 🢐
RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD => LEFTWARDS WHITE
ARROW WITHIN TRIANGLE ARROWHEAD 🢖 🢔
RIGHTWARDS ARROW WITH NOTCHED TAIL => LEFTWARDS ARROW WITH NOTCHED TAIL
🢚 🢘
RIGHTWARDS BOTTOM SHADED WHITE ARROW => LEFTWARDS BOTTOM-SHADED WHITE
ARROW 🢡 🢠
RIGHTWARDS TOP SHADED WHITE ARROW => LEFTWARDS TOP SHADED WHITE ARROW
🢣 🢢
RIGHTWARDS RIGHT-SHADED WHITE ARROW => LEFTWARDS RIGHT-SHADED WHITE
ARROW 🢥 🢦
RIGHTWARDS LEFT-SHADED WHITE ARROW => LEFTWARDS LEFT-SHADED WHITE ARROW
🢧 🢤
RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW => LEFTWARDS BACK-TILTED
SHADOWED WHITE ARROW 🢩 🢨
RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW => LEFTWARDS FRONT-TILTED
SHADOWED WHITE ARROW 🢫 🢪
RIGHTWARDS HAND => LEFTWARDS HAND 🫱 🫲
RIGHTWARDS ARROW AND UPPER AND LOWER ONE EIGHTH BLOCK => LEFTWARDS ARROW
AND UPPER AND LOWER ONE EIGHTH BLOCK 🮶 🮵
I propose that using any of the lhs characters as an unpaired delimiter
will result in a deprecation message. Otherwise there is no change to
existing code.
And there would be a new pragma, 'use feature qw(expanded_brackets)'
within whose scope the use of any of the lhs characters would require a
closing delimiter as listed above.
The list has been curated by the removal of two that don't match Western
European expectations:
LEFT VERTICAL BAR WITH QUILL => RIGHT VERTICAL BAR WITH QUILL ⸠ ⸡
OGHAM FEATHER MARK => OGHAM REVERSED FEATHER MARK ᚛ ᚜
and doesn't include one which might match those expectations, but
Unicode disagrees:
'﴾' ORNATE LEFT PARENTHESIS
and its mate