<FromGitter>
<RespiteSage> Yeah, I know how to do that (e.g. for raising at compile-time when the generic type doesn't make sense). What I want is a "when you can" approach to compile-time checking. I need a minute to get another example of what I'm thinking about.
<FromGitter>
<RespiteSage> Except, ideally, the user wouldn't even know that there's a macro at work. Those cases would just be caught by the compiler with a small cost in compile time and no extra work for a user of a library or whatever.
<FromGitter>
<Blacksmoke16> can you define a macro called `new`
<FromGitter>
<RespiteSage> I hadn't tried yet. I was scared. :P
<FromGitter>
<RespiteSage> It seems to have killed carc.in. Lemme try it on my machine. I think what happened was I created a compile-time infinite recursion.
<FromGitter>
<RespiteSage> The gist (lowercase) of my RFC I started was to expose more concrete information about method arguments based on their instantiations in order to provide things like whether they're a literal, but I abandoned that line of thinking when considering just how much extra overhead it would probably have to add to the compiler.