<div dir="ltr"><div dir="ltr">On Sun, Nov 1, 2020 at 8:50 PM Ola Fosheim Grøstad via Digitalmars-d <<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sunday, 1 November 2020 at 10:15:44 UTC, claptrap wrote:<br>
> To me "alias sequence" is an implementers name, it's named for <br>
> how it's implemented not for the actual concept.<br>
<br>
Yes, but tuples should have struct semantics, and structs hold <br>
values, not aliases.<br></blockquote><div><br></div><div>Why? I don't agree with this at all. I actually expect tuples DON'T have struct semantics.</div><div>The thing my DIP talks about are things that don't have struct semantics... what is that called?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Anyway, this would all become moot if the ... operator was <br>
designed to work with all static length objects that provide <br>
index-access and .length.<br></blockquote><div><br></div><div>Make a DIP then. I don't like that idea. It's problematic to know if you are dealing with a kind of thing that can be unrolled until much later in semantic when it should have already been done.</div><div><br></div><div>It's trivial to implement a static unroll: `MyList[iota!(MyList.length)]...`</div><div>Which can easily become: `alias StaticUnroll(T) = T[iota!(T.length)]...`  ->   `StaticUnroll!T`</div><div><br></div></div></div>