»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
cpan-p6 New module released to CPAN! Structable (0.0.5) by 03SAMGWISE 01:49
aearnus[m] hey all, i'm kinda stumped by react/whenever. i've been trying to do the whole concurrency thing but I can't wrap my head around it 05:48
how can I make this little script sleep until it gets connections? gist.github.com/Aearnus/dabc675ac1...b195587373 05:49
I get that it just exits instantly because there's nothing there to actually block until the supply has something to tap... but I'm not sure where to go from there
do I need a react block around the original call to IO::Socket::Async in order to react to all the incoming connections right then and there? is that the only way to block on that supply 05:55
antoniogamiz morning o/ 06:12
rba Notable6: weekly blogs.perl.org/users/ovid/2019/08/i...named.html 06:27
notable6 rba, Noted! (weekly)
aearnus[m] jjmerelo: I bought your book today, it's coming the 30th :D 06:33
jjmerelo aearnus[m]: have fun with it! :-) Keep it for the next time we meet 06:34
tellable6 2019-08-28T18:06:21Z #perl6 <tbrowder> jjmerelo the new doc page looks pretty good on my local
2019-08-28T18:07:15Z #perl6 <tbrowder> jjmerelo host but it hasn't shown on the public docs yet
jjmerelo .tell tbrowder we're still kind of wary to deploy it in the production server. It will arrive eventually.
tellable6 jjmerelo, I'll pass your message to tbrowder
aearnus[m] definitely! not a ton of good conventions on my side of the world but fingers crossed 06:36
El_Che aearnus[m]: it sounds like your side of the world has bad manners :) 06:38
aearnus[m]: you mean conferences?
aearnus[m] err, yeah :) 06:39
it's late & my brain is fizzled
El_Che well, both are possible :) 06:41
where is your part of the world? 06:42
aearnus[m] El_Che: good ol' Southern Arizona 06:43
west side of the US
jjmerelo aearnus[m] Flagstaff is as far as I have gone in Southern Arizona 06:45
aearnus[m]: but you probably mean further South...
aearnus[m] aha, beautiful city. I bounce between phoenix and tuscon usually
El_Che the regions looks beautiful in google images :) 06:46
jjmerelo aearnus[m]: drove from Santa Fe via Alburquerque, and then obviously up to Grand Canyon via Kayenta
El_Che Alburquerque? It sounds like Breaking Bad :)
jjmerelo Amazing landscape, and beautiful country. And the clouds...
aearnus[m] Arizona sunsets are unbeatable
jjmerelo Actually, Breaking Bad does a pretty good job of showing the light and the clouds... 06:47
El_Che The fact that people still speak about South Arizona (region) instead of Arizona (state), is it related to its history as Baja Arizona? A different (historical) identity than the rest of the state? 06:49
of just because it's so bgig?
big
aearnus[m] I just said it because Arizona is massive & confusing to a lot of people who don't live here
Historical identity wise, it's all pretty uniform except for the new age-ish places 06:50
El_Che Google is full of references to South Arizona
jjmerelo aearnus[m] there are ~800 miles from North to South? 06:51
El_Che aearnus[m]: where the hippies meet the ufos :)
jjmerelo aearnus[m] I remember driving _a lot_
aearnus[m] El_Che: hehe, yeah.
jjmerelo aearnus[m] and I was just in the northern half...
aearnus[m] jjmerelo: not sure about the exact mileage, but I know it's a 4 hour drive from Tuscon to Flagstaff, and a 6 hour drive if I wanted to go all the way to the grand canyon 06:52
El_Che bbl, train arrived
jjmerelo aearnus[m] yep, kind of... I might have seemed more to me with my rented Toyota Tercel 06:54
aearnus[m] I could imagine -- especially with how people drive here
the AZ speed limits are mostly just a suggestion 06:55
jjmerelo Just a reminder that we're still testing the documentation generated with the new Documentable here docs-stage.p6c.org/ 07:33
Please check out the new site, the new Documentable, and raise errors where appropriate
documentable is here: github.com/perl6/Documentable
Geth doc: d74adf5ff3 | (JJ Merelo)++ | README.md
Added instructions, closes #2981
07:53
moritz jjmerelo: I've done a bit random click-through on the staging site, and it looks good to me 07:54
jjmerelo moritz: thanks. It's mostly OK, I guess. I guess also while we're at it we should create some web-level tests doing that kind of random navigation to check it, using Selenium or somesuch 07:55
Xliff \o 07:57
m: constant ab := (($a == 1) ?? Int !! IntStr); 07:58
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/EFVkABWTli
Variable '$a' is not declared
at /tmp/EFVkABWTli:1
------> 03constant ab := ((08⏏04$a == 1) ?? Int !! IntStr);
Xliff m: my $a = 1; constant ab := (($a == 1) ?? Int !! IntStr);
evalable6 Use of uninitialized value of type Any in numeric context
in block at /tmp/hDdiEvRqjX line 1
Xliff m: my $a = 1; constant ab := (($a == 1) ?? Int !! IntStr); ab.^name.say
evalable6 Use of uninitialized value of type Any in numeric context
IntStr
in block at /tmp/OPG6xIyn8J line 1
Xliff m: my $a = 1; constant ab = (($a == 1) ?? Int !! IntStr); ab.^name.say
evalable6 Use of uninitialized value of type Any in numeric context
IntStr
in block at /tmp/VJOquD8R0X line 1
cpan-p6 New module released to CPAN! Gnome::Gtk3 (0.18.3) by 03MARTIMM 09:41
timotimo aearnus[m]: still want an explanation for your tap/react thing? 09:50
jjmerelo After a few hundred commits, new version of the documentation deployed to stage docs-stage.p6c.org/ 09:53
Geth doc: a5b1215a7a | (JJ Merelo)++ | template/header.html
Adds note to templates

This closes #2986, although it was actually closed in perl6/Documentable#17. The problem there is that the variables were not being substituted, simply because no one thought they were actually used. Code to substitute them was added, and that was that.
09:59
doc: 6961a79bb2 | (JJ Merelo)++ | type-graph.txt
Reviews file and eliminates non-needed square bracket.

But also closes #2418 after review. All types are currently in typegraph, mainly after @antoniogamiz in 4591f2a288f53b8ea5349132b47252baf0b6ff93 and 9108f1a
10:12
doc: a51fbc9b94 | (JJ Merelo)++ | README.md
Spaces, not tabs
10:15
Xliff \o 10:41
Xliff m: gist.github.com/Xliff/279d7094df4a...ffaad2733e 11:04
evalable6 (exit code 1) 04===SORRY!04===
Function 'TAKE_NONE' needs parens to avoid go…
11:05
Xliff, Full output: gist.github.com/147974b48672d847fe...689845f9da
Xliff m: gist.github.com/Xliff/279d7094df4a...ffaad2733e
evalable6 (a TAKE_NONE 0 0 b TAKE_ONE 1 c TAKE_TWO d 3.142857)
Xliff ^^ Can someone tell me what I am doing wrong with that?
timotimo i don't see it switch to another state when it's in Param? 11:08
Xliff timotimo: Param jumps to one of TAKE_NONE,TAKE_ONE or TAKE_TWO 11:10
m: gist.github.com/Xliff/279d7094df4a...ffaad2733e
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /home/bisectable/git/wh…
Xliff, Full output: gist.github.com/53846ffa6240c17f63...f52b7909bc
Xliff m: gist.github.com/Xliff/279d7094df4a...ffaad2733e 11:13
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /home/bisectable/git/wh…
Xliff, Full output: gist.github.com/a4ec2d4006a50bcd23...1d9bbbbe44
Xliff m: gist.github.com/Xliff/279d7094df4a...ffaad2733e
evalable6 (a TAKE_NONE 0 0 b TAKE_ONE 1 c TAKE_TWO d 3.142857)
Xliff timotimo: Working version in the comment.
timotimo Xliff: does it, though? 11:15
Xliff Now it does. 11:16
I know it's not great. 11:17
timotimo i don't see a difference
Xliff In 'Slurp', the else block is now an unless.
timotimo m: my $blerp = "hi"; given $blerp { when "hi" { $blerp = 9; proceed; }; say $_ } 11:18
evalable6 9
timotimo ah, because it's an alias
discord6 <RaycatWhoDat> .tell timotimo I'd be interested in hearing about the internals of Perl 6 as well. 11:49
tellable6 RaycatWhoDat, I'll pass your message to timotimo
timotimo o/ 11:50
discord6 <RaycatWhoDat> oh hai
kiwi_7 the camelia evalbot seems to be offline, i.e. /msg camelia p6: isn't working
p6: my int $native-int = 2**54; Promise.in($native-int); 11:53
evalable6 (exit code 1) Cannot unbox 64 bit wide bigint into native integer
in block <unit> at /tmp/5YnyBIu1m2 line 1
kiwi_7 It looks like 2**54 is turning into 2**64. Am I missing something? 11:54
timotimo the whateverable bots refuse to do stuff in private messages, but if you don't want to fill the channel with a bot-conversation, you can go to #whateverable
m: my int $native = 2 ** 53 11:55
evalable6
timotimo m: my int $native = 2 ** 54
evalable6
timotimo oh, it's only in the Promise.in bit
kiwi_7 Ah. The welcome message directs folk to use /msg camelia p6: ....
timotimo that is a very good point
i don't have sufficient permissions to change the topic 11:57
kiwi_7 Thanks for trying 12:04
moritz I haven't been able to follow all of the renaming debate, so just a quick question if somebody has thought of this before: 14:53
lots of stuff is licensed "under the same terms as perl itself"
what will that mean when Perl 6 no longer has "perl" in the name?
El_Che nothing I suppose as everyone says perl 6 != perl ;) 14:55
moritz I mean, specifically Perl 6 modules licensed that way 14:58
lucasb We need a Raku Artistic License!
El_Che moritz: the license is valid, it's refers to the p5 license 15:04
Grinnz I thought p6 was mostly adopting artistic-2? 15:09
maybe this is a good indication that such modules need to be clearer in their licensing ;) 15:10
AlexDaniel timotimo: I thought the plan is to bring camelia back online 15:27
Grinnz by the way: I am also pleasantly surprised at the ratio of positive comments about both languages in the hacker news thread (linked in the issue) 15:35
I don't know what causes comments to get grayed out, but that's happening to all of the negative ones 15:37
cheese16 I do not think that I have a say in the rename discussion. However, I want to give my 0.02 on this channel anyway: For me, "Perl" is about the people, the community, the attitude. The same people that explained Perl 5 to me 15-20 years ago are now part of the Perl 6 community. It feels like home. I hope to preserve that feeling regardless of the na 15:48
me, but I feel there is some missing umbrella, then.
Grinnz cheese16: I get that sentiment, and my hope is that since this can resolve the tension with the Perl 5 community, that feeling can be had once again between our communities as well. 15:49
El_Che cheese16: there are people that are on both communities, but I think most people are in one of the 2 16:03
cheese16: the thing is however, that the relationship between both communities must be one of friendship and collaboration 16:04
cheese16: that is not always the case, and one of the objective of the proposal is to help on that regard
cheese16 I really like your positivity :-) My lack of involvement is probably to blame for me not experiencing so much of the tension. I always had the impression that PM meet-ups, internet forums, conferences, etc. are (open) for both Perl 5 and Perl 6 (people). That is what I like to keep. But maybe I am wrongly holding on to something that should rather 16:05
be split.
Grinnz in person conferences are generally cordial, people are much more polite without anonymity ;)
cheese16 hehe 16:05
El_Che When organising the Perl devroom at Fosdem several people told me they only where interested in the P6 talks or only the 5 talks 16:06
Grinnz however, those who have not stuck around in Perl 5 spaces online (and I totally understand why) will have an incomplete picture of the current relationship
El_Che as long as it's polite and not in anonimosity, I have no problem with that
Grinnz my view is that both are true: we should have our own spaces, like we do on IRC, but we can also get along constructively 16:07
or put another way: there are overlaps in interests, but not so much where it should be inferred that someone expressing interest in one language will be interested in the other 16:09
tadzik it's safe to say that both languages benefited from each other and still do
it'd be a shame if that relationship didn't continue
cheese16 Is there an initiative w.r.t. somewhat regular Perl 6 meet-ups like PM? 16:10
El_Che tadzik: there is no need to. Easing tension help, in my opinion 16:12
cheese16: there may be, but even having p5 meetups is hard nowadays 16:13
cheese16 True
El_Che tadzik: last yapce I attended was Amsterdam, and there I felt the existence of rather distinct perl 5 and Perl 6 groups 16:16
(Perl 6 people tended to stick together, as the community is smaller)
I didn't have the feeling of a big Perl family, but rather 2 related community co-hosting an event 16:17
my *personal* impression, of course
(I tried hard to have social activities with p5 and p6 people and had a lot of fun)
cheese16 El_Che: Thank you for your impressions! 16:22
moritz: this might not be the right place to ask, but are you still in touch with SidBurn, Tina, Renee, GwenDragon etc.? (I know lichtkind is part of both communities.) I would love to see you all IRL for once :D 16:26
moritz .tell cheese16 come to the German Perl Workshop 2020, I'll be there (and I'm one of the organizers) :D 18:06
tellable6 moritz, I'll pass your message to cheese16
untaken_username this working? 18:28
discord6 <Aearnus> oh shoot! my perl6 irc client is working
untaken_username :)
jdv79 crazy that " 19:09
Is Perl 6 Being Renamed?" is sticking around on hn front page for so long
Grinnz well, ovid did dial up the clickbait on that title :P 19:10
timotimo "the answer will surprise you"
jdv79 right 19:13
guifa jnthn: I feel like I’m going to find every way to break the syntax checker in Comma so let me apologize in advance for the deluge of issues I’m probably going to send in (I found one with combining diacritics just now ha, because of course lower case r with tilde is a super common letter haha) 19:14
rindolf timotimo: heh 19:49
El_Che there are people on hackernews that talk about Rakudo running on Parrot 20:03
:)
(today)
as the Perl 6 run stack
Xliff . 20:04
El_Che rurban is his cheery self about Perl(s) future in the thread :) 20:14
(I like him in real life, but the comment are rather depressing) 20:17
Kaiepi where in rakudo does it check if something that has the :D smiley is actually defined? 20:22
timotimo Kaiepi: for signature binding, the binder has one implementation and the signature lowerer has another 20:27
Kaiepi thanks 20:28
El_Che "Ofun" can be pronounced as "Zero Fun" <-- HN made me LOL
Grinnz yeah that was the first time I heard that one also :) 20:29
timotimo 00Fun
El_Che People's imagination always amaze me in a good way 20:29
I think 50% of the comments are Grinnz :) 20:31
He's schooling the internet about Perl 5 and 6 :)
Xliff m: class B { }; class A { method b (B $b) { say 'B'; }; method b (Str() $s) { say $s; }; }; A.new.b(B.new); A.new.b(1) 20:33
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/ldXeIp2diS
Package 'A' already has a method 'b' (did you mean to declare a multi-method?)
at /tmp/ldXeIp2diS:1
Grinnz I have been known to be a keyboard warrior 20:34
Xliff m: class B { }; class A { multi method b (B $b) { say 'B'; }; multi method b (Str() $s) { say $s; }; }; A.new.b(B.new); A.new.b(1)
evalable6 B
1
Kaiepi Type check failed in assignment to $symbol; expected Symbol but got Symbol(Any) (Symbol(Any)) 20:36
what does it mean when there's a type in parentheses like that?
oh, coercion 20:37
wait, why is it trying to coerce Any to Symbol? the assignment's just `my Symbol $symbol = Symbol()`, which just calls .new internally 20:38
timotimo Type() is also in some places syntax for creating a coercion type 20:39
it looks like that's what you got there
i.e. "Symbol(Any)"
El_Che blogs.perl.org/users/ovid/2019/08/i...nt-1807517 : "Go's dep model is distributed CPAN" 20:41
AlexDaniel yeah, “zero fun” is an interesting idea :) 20:42
El_Che funny someone wrote it, I was thinking the same today
timotimo first i read "go's dep model is distributed on cpan"
El_Che go == github repo's galore, but now google offer an indexed proxy for dep resolution
so for complex projects you went from minutes and 3GB aan data to seconds and almost no data locally 20:43
(small and medium projects get theirs deps alomost instantly, also pre proxy)
Grinnz timotimo: now that would be an interesting cross community initiative :P
timotimo funny how our "dep model" started like go, i.e. a bunch of github repos, indexed even, to going to cpan
El_Che I was reading the go release notes for the RC candidate, one I was thinking of cpan 20:44
timotimo: well, they are having the best of boths worlds
they rely on the github model, but they cache everything, so deps don't disappear if you do npm crazyness 20:45
timotimo or when github goes down
El_Che it's firstly about speed and centralizing the resolution of complex dependencies
but yes, also uptime google can provide 20:46
Grinnz oof. a github outage at this point would be comparable to the amazon ones
though not as much for websites as for tooling
El_Che Grinnz: one of biggest selling points of Go is the silly fast compile time, getting deps is related to that 20:47
AlexDaniel yeah, github outages are pretty annoying…
El_Che they targetted C people, but ended with a lot of python people and everyone doing Ruby :)
Kaiepi wdym timotimo? 20:48
timotimo hm?
Kaiepi i'm typing symbols as Symbol everywhere, i don't see where it could be trying to coerce Any to Symbol
timotimo no you're literally creating a Coercion Type and passing that around as a value 20:49
Kaiepi ohh 20:52
cpan-p6 New module released to CPAN! Symbol (0.0.2) by 03KAIEPI 21:46
New module released to CPAN! Symbol (0.0.1) by 03KAIEPI
Xliff m: my @a = ('a'...'z').rotor( 1 => 1).say 21:47
evalable6 ((a) (c) (e) (g) (i) (k) (m) (o) (q) (s) (u) (w) (y))
Xliff m: my @a = ('a'...'z').rotor( 2 => 1).say
evalable6 ((a b) (d e) (g h) (j k) (m n) (p q) (s t) (v w) (y z))
Xliff How can I take every 2nd element? 21:48
m: my @a = ('a'...'z').rotor( 1 => 2 ).say 21:49
evalable6 ((a) (d) (g) (j) (m) (p) (s) (v) (y))
jnthn m: my @a = ('a'...'z').rotor( 0 => 1, 1 => 1).say 21:50
evalable6 (exit code 1) Rotorizing sublist length is out of range. Is: 0, should be in 1..^Inf
in block <unit> at /tmp/zQabK0qf1e line 1
jnthn Not like that :)
jnthn m: my @a = ('a'...'z')[2, 4 ... *]; say @a 21:50
evalable6 [c e g i k m o q s u w y]
jnthn uh, starting at 0 :)
oh, wait
m: my @a = ('a'...'z')[1, 3 ... *]; say @a
evalable6 [b d f h j l n p r t v x z]
Xliff Huh. Thought rotor would do that. Thanks, jnthn++! 21:51
m: my @a = ('a'...'z').rotor( 1, 1 => 1 ).say
evalable6 ((a) (b) (d) (e) (g) (h) (j) (k) (m) (n) (p) (q) (s) (t) (v) (w) (y) (z))
jnthn There's probably a way with rotor, but I can't immediately thing what it is :) 21:52
The slice feels more natural
(To me :))
Xliff Yeah. I am trying to bend my brain to think rotor-y
Considering I'm using it, ATM.
m: my @a = ('a'...'z').rotor( 1 => 0, 1 => 1 ).say
evalable6 ((a) (b) (d) (e) (g) (h) (j) (k) (m) (n) (p) (q) (s) (t) (v) (w) (y) (z))
Xliff m: my @a = ('a'...'z').rotor( 0, 1 => 1 ).say 21:53
evalable6 (exit code 1) Rotorizing sublist length is out of range. Is: 0, should be in 1..^Inf;
Did you mean to specify a Pair with => 0?
in block <unit> at /tmp/FugqxdfUMW line 1
jnthn m: my @a = ('a'...'z').skip(1).rotor( 1 => 1 ).say # is this cheating? :) 21:54
evalable6 ((b) (d) (f) (h) (j) (l) (n) (p) (r) (t) (v) (x) (z))
Xliff OOH! No! No it isn't! :D
Thanks, jnthn!
Kaiepi cpan lets you upload a module with the same name as an existing one? 22:01
also, i get this when i try to install Symbol: "Enabled fetching backends [git path curl] don't understand git://github.com/grondilu/symbol" 22:02
Grinnz cpan (as it's the same one perl 5 uses) allows you to upload any unique file path within your directory
whether it gets used by anything is up to other infrastructure 22:03
Elronnd I want a live coding graphical interactive perl6 environment. Exists such a thing? 23:17
timotimo i've got a start of one that Xliff has been helping me make 23:18
bitbucket.org/gtkshooter/p6-gtk-sh...ing-new.p6 - here's the code, all the GTK modules as well as TEPL live in xliff's github, Cairo lives in the ecosystem 23:19
cdn.discordapp.com/attachments/538...nknown.png - this is what it looks like
Elronnd cool 23:20
Elronnd hmmm, I think it might be better if the drawing code were in the top level instead of being in a frame function. Obviously it's still in prototypephase 23:27
timotimo feel free to fork and experiment 23:28
i must warn you, the build times for the gtk modules are Quite Something
Elronnd ;< 23:29
thank god for cache
I imagine it's faster in the naive case to have the code in a function. But there is probably some way to do it
timotimo stuffing the code into EVAL once per frame would be Very Bad 23:32
with some nqp:: ops, that you aren't supposed to use, you can get a handle to the mainline of a compunit
Elronnd hmm
I was imagining stuffing all the code into its own function. So my &code = EVAL("sub foo { $code; }") 23:33
timotimo ah, just string manipulation
Elronnd yeah 23:34
I'm not sure how well that would work, though. Would that re-define the nested functions every time you called &code, or is it smart enough to not do that?
and also, variables would end up kind of volatile
why come gtk stuff isn't in repos? 23:35
timotimo not sure 23:36
Xliff Elronnd: Some of it is still quite experimental. There are some things in Pango that I haven't gotten an handle on and that affects eferything downstream. 23:43
Plus, the build times would be significant. With the current way Zef works, you might find your maching processing for almost an hour. 23:44
Elronnd ahh
Xliff And that might make people think it's hung, when it really isn't. I need to figure out a way to make the install process more verbose... or at least "user friendly"
Seriously, it's to the point where I am thinking I might have to use a distro packaging system to not ward off potential users. 23:45
Also thinking about breaking some of this out into its own projects, but I have other things I am working on dependent on p6-GtkPlus that I don't want to break. 23:46
...yet
Besides, if you are brave enough, the git repo has installation instructions.
Build times are actually quite "reasonable" on my 20-core 4GHz box. ;q 23:47
(that was a joke... laugh!)
Elronnd has only a 2-core 2GHz machine ;-;
timotimo did rakudo's recent change that prevents double precomps when two processes are competing help any with zef's install times of these modules? 23:48
Xliff I've never tried with zef. Maybe I should? 23:51
How recent was the change?
Oh! So there actually was an issue with double precomps?!? HA! I was right!
Or not. I am actually getting quite buzzed on beer. Don't mind me. 23:52
Elronnd tbf, half of several hours is still at least a couple of hours
timotimo it can be n times as much if there are n processes competing 23:53
Elronnd ...right
Xliff looks at rakudo commit log.
timotimo rakudo was honoring the lock on the precomp repo, but didn't check if what it wanted to precompile was precompiled while it was waiting for the lock to be freed 23:54
i.e. if you start 50 processes at the same time that all "use" the same module, they can attempt to precomp 50x in a row
Xliff Hmm....
timotimo but now, the 49 processes that didn't win access to the lock will check again for their desired precomp thing and just load that when it has shown up in the mean time
Xliff That might not be what I'm experiencing, then...
timotimo maybe zef should be combined with the "staging repository" 23:55
which allows precomp in one place to be copied over to a different place
Xliff Yes. 23:56
That would really help with packaging.
timotimo: Also, I think I am close to having a grammar that parses new --stagestats. It's really growing on me. 23:57
timotimo glad to hear it
i just like watching it go by
Xliff LOL
Kaiepi m: sub floor(Rat(Int(Rat)) $num) { $num }; say floor 1.1 23:59
evalable6 (exit code 1) Type check failed in binding to parameter '$num'; expected Int(Rat) but got Rat (1.1)
in sub floor at /tmp/OuZcsnX8xa line 1
in block <unit> at /tmp/OuZcsnX8xa line 1
Kaiepi should this work?
timotimo i'd actually expect the outermost type to match and it to skip the coercion completely