# New Ticket Created by Zoffix Znet
# Please include the string: [perl #131009]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=131009 >
While adding a test[^1] it was discovered that `[]` metaops containerize their
product sometimes:
Inconsistent containerization:
<Zoffix> m: say ([\,] <a b>, <c d>).perl
<camelia> rakudo-moar 79f268: OUTPUT: «(($("a", "b"),), ($("a", "b"),
$("c", "d"))).Seq»
<Zoffix> m: say ([,] <a b>, <c d>).perl
<camelia> rakudo-moar 79f268: OUTPUT: «(("a", "b"), ("c", "d"))»
Inconsistent return type:
<Zoffix> m: say WHAT ([,] <a b>, <c d>)
<camelia> rakudo-moar 79f268: OUTPUT: «(List)»
<Zoffix> m: say WHAT ([\,] <a b>, <c d>)
<camelia> rakudo-moar 79f268: OUTPUT: «(Seq)»
Lastly, by reading the code alone, there looks to be another inconsistency
where some triangle reduction
metas .push[^3], while others .append[^4] their values. There was one
change[^5] from .append to .push that
fixed a problem[^6], but looks like other meta op configurations still have it.
IMO it's important to have consistency in all three of these aspects in order
for users to be able to easily
predict what sort of return values they would obtain.
[1]
https://github.com/perl6/roast/blob/ecf59598811cbe6a8c751f3ae342868f10de126c/S13-overloading/metaoperators.t#L50-L60
[2]
https://github.com/perl6/roast/commit/c30eb545b82467ab577c9a04d41a459819a58fb9#commitcomment-21359198
[3]
https://github.com/rakudo/rakudo/blob/79f2681004224108b2acd18bec21b76803eb8fcd/src/core/metaops.pm#L407
[4]
https://github.com/rakudo/rakudo/blob/79f2681004224108b2acd18bec21b76803eb8fcd/src/core/metaops.pm#L427
[5]
https://github.com/rakudo/rakudo/commit/d56501a65dab442acd64ad00d52483a53ed7fe40
[6] https://rt.perl.org/Ticket/Display.html?id=130610