+0.19 A Grand Vision for Rust (blog.yoshuawuyts.com S:+0.23 )
273 points by todsacerdoti 12 days ago | 317 comments on HN | Mild positive Contested Moderate agreement (3 models) Editorial · v3.7 · 2026-03-16 00:07:05 0
Summary Education & Scientific Knowledge Acknowledges
This technical blog post articulates a vision for Rust programming language development focused on improving type system expressiveness and memory safety guarantees. The content engages primarily with Article 19 (free expression of technical ideas), Article 26 (education through open knowledge sharing), and Article 27 (contribution to scientific culture), all delivered through an accessible, freely-available format. While the post does not explicitly address human rights, it contributes positively to knowledge access and technical education in domains that support broader societal infrastructure.
Article Heatmap
Preamble: ND — Preamble Preamble: No Data — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: +0.18 — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.44 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: +0.12 — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: +0.18 — Standard of Living 25 Article 26: +0.38 — Education 26 Article 27: +0.20 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
E
+0.19
S
+0.23
Weighted Mean +0.27 Unweighted Mean +0.25
Max +0.44 Article 19 Min +0.12 Article 23
Signal 6 No Data 25
Volatility 0.12 (Medium)
Negative 0 Channels E: 0.6 S: 0.4
SETL -0.06 Structural-dominant
FW Ratio 55% 11 facts · 9 inferences
Agreement Moderate 3 models · spread ±0.162
Evidence 8% coverage
3M 3L 25 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.18 (1 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.00 (0 articles) Expression: 0.44 (1 articles) Economic & Social: 0.15 (2 articles) Cultural: 0.29 (2 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 20 top-level · 30 replies
satvikpendem 2026-03-05 06:45 UTC link
Finally seeing more movement on effects or what started as keyword generics, there was a big blog post a few years ago but not much public facing news although of course they've been working on it as Yoshua says in the post.

I truly do wish we get closer to Ada and even Lean in terms of safety, would be great to see all these theoretical type system features become reality. I use the `anodized` crate right now for refinement type features, and who knows, maybe we get full fledged dependent types too as there aren't many production languages with them and certainly not popular languages.

pjmlp 2026-03-05 08:34 UTC link
Reposting my comment from Reddit,

I had some Scala 3 feelings when reading the vision, I hope Rust doesn't gets too pushy with type systems ideas.

That is how we end with other ecosystems doubling down in automatic memory management with a good enough ownership model for low level coding, e.g. Swift 6, OxCaml, Chapel, D, Linear Haskel, OCaml effects,...

Where the goal is that those features are to be used by experts, and everyone else stays on the confort zone.

Animats 2026-03-08 07:01 UTC link
This may be too much advanced type theory for a useful language.

You can go all the way to formal verification. This is not enough for that. Or you can stop at the point all memory error holes have been plugged. That's more useful.

You can go way overboard with templates/macros/traits/generics. Remember C++ and Boost. I understand that Boost is now deprecated.

I should work some more on my solution to the back-reference problem in Rust. The general idea is that Rc/Weak/upgrade/downgrade provide enough expressive power for back references, but the ergonomics are awful. That could be fixed, and some of the checking moved to compile time for the single owner/multiple users case.

pkal 2026-03-08 09:59 UTC link
From the historical sources I could find online, it appears that Rust's borrow system was independently invented, or at least they don't mention linear logic or anything substructural. This is kind of interesting to me, especially given the reactions in this thread, and ties into the general difficulty of PL research to find acceptance among practitioners, especially when presented by researchers (which I think is regretful, I like the ideas in the article!). Perhaps we really should stick to terminology like "function colors" to make effect systems more popular (or not, because the color framing makes it sound bad to have different colors in a program, IIRC).
wewewedxfgdf 2026-03-08 21:02 UTC link
No-one ever has the "Grand Vision" to cut something down to it's essential 25% and delete the rest.
its-kostya 2026-03-08 23:34 UTC link
I write production Rust code that becomes critical infra for our customers. I got tired of nil checks in Go and became a squeaky wheel in incident retros, where I finally got the chance to rewrite parts of our system in Rust during a refactor.

I admit the skill issue on my part, but I genuinely struggled to follow the concepts in this article. Working alongside peers who push Rust's bleeding edge, I dread reviewing their code and especially inheriting "legacy" implementations. It's like having a conversation with someone who expresses simple thoughts with ornate vocabulary. Reasoning about code written this way makes me experience profound fatigue and possess an overwhelming desire to return to my domicile; Or simply put, I get tired and want to go home.

Rust's safety guardrails are valuable until the language becomes so complex that reading and reasoning about _business_ logic gets harder, not easier. It reminds me of the kid in "A Christmas Story" bundled so heavily in winter gear he cant put his arms down[0]. At some point, over-engineered safety becomes its own kind of risk even though it is technically safer in some regards. Sometimes you need to just implement a dang state machine and stop throwing complexity at poorly thought-through solutions. End old-man rant.

[0]: https://youtu.be/PKxsOlzuH0k?si=-88dxtyegTxIvOYI

jbritton 2026-03-09 00:00 UTC link
When I wrote my very first Rust code, I was trying to write to a socket. I got stuck on this task with misleading error messages for the longest time. I finally realized I had not made the socket object mutable. I’m used to Posix where you have an integer file descriptor and I don’t tend to think of socket write as a mutable operation. At least it doesn’t mutate state that my app manages. Perhaps something in the kernel gets mutated. I believe the socket interface may have been intended to support queuing which is perhaps why it needed to be mutable. I might have needed a lower level api. I just mention this because I think it’s interesting as to how it should be typed when mutation is external to the app. I didn’t follow through on using Rust and this was long ago so I’m sure some details are wrong.
esafak 2026-03-09 00:22 UTC link
These would be great additions. I don't get why people don't want powerful type systems. Let the language work for you!
hardwaresofton 2026-03-09 00:36 UTC link
Really excited for the possibilities here.

People undoubtedly thought going for Affine types was too much, and even simple things like null safety or enums-with-values and the prevalence of Result saw debate with minimalists voicing concerns.

A world where you could write a Rust program that is memory leak free with Affine types is one I want to live in. Haskell can do it now, but its just not easy and Rust has beat out Haskell with its mix of ML-strength types and practicality.

IMO these changes maintain Rusts winning mix of academia and practicality. Heres a proof point — dependent types weren't mentioned :)

pornel 2026-03-09 02:40 UTC link
It's hard to see features through the programming language theory jargon, but solid theoretical foundations have worked well for Rust so far.

Jargon terms like "sum types" or "affine types" may seem complicated, but when you see it's actually "enums with data fields", it makes so much sense, and prevents plenty of state-related bugs.

Proposed "effects" mean that when you're writing an iterator or a stream, and need to handle error or await somewhere in the chain, you won't suddenly have a puzzle how to replace all of the functions in the entire chain and your call stack with their async or fallible equivalents.

"linear types" means that Rust will be able to have more control over destruction and lifetime of objects beyond sync call stack, so the tokio::spawn() (the "Rust async sucks" function) won't have to be complaining endlessly about lifetimes whenever you use a local variable.

I can't vouch for the specifics of the proposed features (they have tricky to design details), but it's not simply Rust getting more complex, but rather Rust trying to solve and simplify more problems, with robust and generalizable language features, rather than ad-hoc special cases. When it works it makes the language more uniform overall and gives a lot of bang for the buck in terms of complexity vs problems solved.

undeveloper 2026-03-09 03:55 UTC link
I'm not sure why people are so deeply scared. these are all pretty neat features for people who will need them (off rip seemingly mostly in the embedded world). It's not like the inclusion of these forces you to use them — I've never had to deal with unsafe rust for shipping web stuff, and I highly doubt I'd have to deal with most of these. For modeling's sake it would be nice to have pattern types and view types, I can see them being useful
simplesocieties 2026-03-09 04:17 UTC link
The rust maintainers need to learn from the mistakes of the c++ design committee and understand that not adding a feature at all is in itself a desirable feature.

For example, your section on effects:

> Functions which guarantee they do not unwind (absence of the panic effect)

* I actually don’t see how this is any more beneficial than the existing no_panic macro https://docs.rs/no-panic/latest/no_panic/

> Functions which guarantee they terminate (absence of the div effect)

> Functions which are guaranteed to be deterministic (absence of the ndet effect)

> Functions which are guaranteed to not call host APIs (absence of the io effect)

The vast majority of rust programs don’t need such validation. And for those that do, the Ferrocene project is maintaining a downstream fork of the compiler where this kind of feature would be more appropriate.

I think rust is in a perfect spot right now. Covers 99.99% of use cases and adding more syntax/functionality for 0.001% of users is only going to make the language worse. The compiler itself provides a powerful api via build.rs and proc macros which let downstream maintainers build their desired customization.

bionhoward 2026-03-09 05:33 UTC link
gotta admit i groaned a bit at this because it would make rust more complicated, but on my 2nd read i realized:

- some things (compile time bounds checking tensor shapes) are hard / impossible to implement now; "pattern types" could be great for that

- however "no panic" is already handled by clippy, might not be much uplift for doing that at a type level.

my 2c: it's great to be excited and brainstorm, some of these ideas might be gold. conveying the benefit is key. it would be good to focus on stuff for which rust doesn't already have a workable solution. i like the pattern types, the rest would take convincing

chadaustin 2026-03-09 07:42 UTC link
I write Rust for embedded systems and both effects and linear types would be meaningful improvements. Effects especially: if you have multiple cores in a coherent memory domain AND you run with interrupts enabled, you have to deal with three types of mutex:

- data accessed by multiple cores and interrupt handlers must be modified under a spin lock and with interrupts disabled

- data accessed by multiple cores but not interrupt handlers only needs the spin lock

- data accessed by one core but maybe interrupt handlers only needs to pay for disabling interrupts

Depending on your core and how performance sensitive the code is, the costs of the above can vary significantly. It would be nice to encode these rules in the type system.

(Ordered types might be useful for “critical sections” — that is, areas where interrupts are disabled and the interrupt disablement guard absolutely must be dropped in order.)

ismailmaj 2026-03-09 10:16 UTC link
Surprised with the push back of the comments, getting effects on Rust would be a dream.

Could even enable some stuff like passing loggers around not by parameters but by effect.

theknarf 2026-03-09 13:17 UTC link
I'm surprised by the backlash in the comment section here, all of these things seems like the obvious next step for Rust. It seem people are scared of big words?
umanwizard 2026-03-09 14:21 UTC link
> In formal terms, Rust’s type system is considered affine, which means that each value must be used at most once. And “use at most once” is exactly what’s needed to guarantee the absence of bugs like “use after free”.

> But there are type systems which can provide even more guarantees. One step beyond “use at most once” is “use exactly once”. Types that provide that guarantee are called “linear” and in addition to guaranteeing the absence of “use after free” they can also guarantee the absence of memory leaks.

Does anyone know why these are called “affine” and “linear”, respectively? What’s the analogy, if any, to the use of those terms in math? (E.g. an affine transformation of vector spaces)

room271 2026-03-09 14:28 UTC link
Rust needs to be careful that it doesn't invite the type-programming crowd in too much. Even if individual features are helpful, the cultural effect on the programming language in terms of the community (i.e. libraries and idioms) can really fragment and destroy a language. Scala, which I programmed in for many years, is a good example -- lots of great features but ultimately overwhelmed by typesafe abstractions that held theoretical appeal but hampered readability and fragmented the community. (Lack of backwards compatibility and poor tooling also hurt Scala no doubt about it, just as slow compile times hurt Rust.)
nmilo 2026-03-09 16:12 UTC link
Rust is the wrong language for effects ironically because of its strict typing. They would probably decide that all effects have to be specified on every function or that any change in capabilities is a breaking change. Which is safest, but horrible for dev ex. Whereas Go most people would just be like “yeah, Hyrum’s law, sorry I broke your weird effect consumer, I don’t really care.”
xorvoid 2026-03-09 16:45 UTC link
I'm pretty conflicted on this comment section. A lot of people are expressing a lot of fear of C++ bloat. I get that.

I'm not sure what the right answer for Rust is, but I'm fairly convinced that these type system ideas are the future of programming languages.

Perhaps it can be added to rust in a reasonable and consistent way that doesn't ultimately feel like a kludgy language post-hoc bolt on. Time will tell. There is a serious risk to getting it wrong and making the language simply more complicated for no gain.

But, these ideas are really not obscure academic stuff. This is where programming language design is at. This moment is like talking about sum-types in the 2010s. These days that concept is normalized and expected in modern programming languages. But, that's a fairly recent development.

I suspect that Linear types, refinement types, etc will follow a similar trajectory. Whether new ideas like this can be reasonably added to existing languages in a good way is the age old question.

Hopefully Rust makes good choices on that road.

satvikpendem 2026-03-08 05:30 UTC link
I doubt those languages would have the same level of traction as Rust, especially now that Rust has already gotten said traction over the past decade with even the Linux kernel using them. It's more likely that Rust will be written as today and then these extra features are added for more type safety in certain functions as like I said in another comment I doubt people are going to write type contracts for every single function (maybe LLMs will, but that's an orthogonal discussion).
wofo 2026-03-08 07:34 UTC link
Thanks for posting this! As a long-time Rust user (and contributor, in the good old days), the thing that has always fascinated me about Rust is the healthy balance it strikes between academic brilliance and industry pragmatism. Radical changes like the ones suggested by the OP risk damaging that balance IMO. I'd rather put up with some language quirks and see Rust achieve "boring technology" status...

But who knows, maybe the "academic brilliance" from the article is more pragmatic than I give it credit for. I sure hope for it if these changes ever go through.

throwaway27448 2026-03-08 08:58 UTC link
> You can go way overboard with templates/macros/traits/generics.

You can go overboard on any language concept imaginable, but conflating all these mechanisms makes it sound like you haven't interacted much with non-C++ languages—particularly since rust doesn't have templates or anything like templates, traits are an entirely unrelated composition mechanism, and macros are entirely unrelated to the type discussion in the article.

This isn't really "advanced type theory" so much as picking up programming language developments from the 90s. I suppose it's "advanced" in the sense that it's a proper type system and not a glorified macro ala templating, but how is that a bad thing?

Ygg2 2026-03-08 19:57 UTC link
> This may be too much advanced type theory for a useful language.

Maybe but:

- Move fixes Pin

- Linear types, prevent memory leaks

- potentially effects simplify so many things

Each of these functionalities unlock capabilities people have complained about Rust. Namely async, gen blocks, memory leaks.

Ygg2 2026-03-08 20:00 UTC link
Doubt Rust will ever get to implicit hell of Scala 2.

If for anything, Rust isn't married to C as Scala is to Java.

usrusr 2026-03-08 20:30 UTC link
Counterpoint: if any language could thrive in that valley of despair between pragmatic and theoretical excellence you're referring to, it would be Rust. Because so much of the cost is already paid for once you have satisfied the borrow checker. At least that's what I'd imagine, I could certainly be wrong.
jltsiren 2026-03-08 21:09 UTC link
It's the jargon, I think. PL research is in an awkward position, where the jargon is not shared with the much wider community of people using programming languages daily. From the other side, it looks like there is a small body of theoreticians using impenetrable language for discussing topics I'm supposed to be familiar with, because they are a core part of my day job. It's much easier to accept jargon, when it's used in a clearly separate field.

Some of the terminology is just unfortunate. For example, I have an intuitive understanding of what a type means. The meaning used in PL theory is somehow wider, but I don't really understand how.

And then there is my pet peeve: side effect. Those should be effects instead, because they largely define the observable behavior of the program. Computation, on the other hand, is a side effect, to the extent it doesn't affect the observable behavior.

But then PL theory is using "effect" for something completely different. I don't know what exactly, but clearly not something I would consider an effect.

Conscat 2026-03-08 21:53 UTC link
My understanding is that Scala 3 came with many large breaking changes that made adoption difficult. I at least hadn't heard users complain that new features weren't desired.
palata 2026-03-08 22:43 UTC link
> I had some Scala 3 feelings when reading the vision, I hope Rust doesn't gets too pushy with type systems ideas.

I don't know if it is true or not, but my feeling is that Scala brought a lot of new ideas. But as I read somewhere, "Scala was written by compiler people, to write compilers", and I can understand that feeling.

Kotlin came after Scala (I think?) and seems to have gotten a lot of inspiration from Scala. But somehow Kotlin managed to stay "not too complex", unlike Scala.

All that to say, Rust has been innovating in the zero-cost abstraction memory safe field. If it went the way of Scala, I wonder if another language could be "the Kotlin of Rust"? Or is that Zig already? (I have no idea about Zig)

riffraff 2026-03-08 23:29 UTC link
> This may be too much advanced type theory for a useful language.

I think a lot of things taken for granted these days were considered "too complicated" some time ago: think of how widespread pattern matching, closures, generics, or functional idioms in imperative languages are, and compare to e.g. Java 1.0.

My feeling is that the "acceptable level of complexity" for programming languages goes up over time, so probably stuff like effect types will be almost everywhere in another 10 years.

egorelik 2026-03-09 00:31 UTC link
I don't remember where I read it, but I think Rust cited Cyclone as an influence, a variation of C with "region-based" memory management - more or less the literature name for "lifetimes". I think Rust may be the first to use it directly for stack variables, however.
holden_nelson 2026-03-09 01:26 UTC link
I also found it really unintuitive what needs to be made mutable. And still do to some degree.

When I first had learned that rust had this concept of “opt-in” mutability, I thought that it must then be an accepted pattern that we make as little as possible be mutable in an attempt to help us better reason about the state of our program. I had come to rust after learning some clojure so I was like “ahh! Immutable by default! So everything’s a value!”

But in reality it feels like rust code is not “designed” around immutability but instead around appeasing the borrow checker - which is actually pretty easy to reason about once you get the hang of the language. But it’s a ton to learn up front

estebank 2026-03-09 02:04 UTC link
> got stuck on this task with misleading error messages for the longest time.

Could you elaborate on that? We consider misleading error messages to be bugs and would like to know more on case we could fix them.

nemothekid 2026-03-09 02:48 UTC link
I've been on both sides of the fence here - I've bounced between two camps:

1. Go with a better type system. A compiled language, that has sum types, no-nil, and generics.

2. A widely used, production, systems language that implements PL-theory up until the year ~2000. (Effects, as described in this article, was a research topic in 1999).

I started with (1), but as I started to get more and more exposed to (2), you start looking back on times when you fought with the type system and how some of these PL-nerds have a point. I think my first foray into Higher-Kinded Types was trying to rewrite a dynamic python dispatch system into Rust while keeping types at compile time.

The problem is, many of these PL-nerd concepts are rare and kind of hard to grok at first, and I can easily see them scaring people off from the language. However I think once you understand how they work, and the PL-nerds dumb down the language, I think most people will come around to them. Concepts like "sum types" and "monads", are IMO easy to understand concepts with dumb names, and even more complex standard definitions.

techbrovanguard 2026-03-09 02:49 UTC link
By all means, write some Go instead—you might want to order a new `if err != nil` button to stave off the RSI. The rest of us are trying to make things better.
undeveloper 2026-03-09 03:46 UTC link
I think part of it might be just that for modeling's sake it makes it clear when something can write vs only read the socket
ebiederm 2026-03-09 04:17 UTC link
Chuck Moore of Forth fame.
simplesocieties 2026-03-09 04:18 UTC link
This was the exact same argument used to push new c++ features and look where the language is now.
DevelopingElk 2026-03-09 05:05 UTC link
Rust's discussion boards has an idea of "keyword generics" for expressing some of these concepts. The idea is that a function can be generic over const, async or some other keyworded effect. I like this description. It shows the benefits without too much theory.
sam0x17 2026-03-09 05:25 UTC link
I feel you, but hear me out. OP is right. I've wanted pretty much everything he's talking about here for years, I just never thought of all of this in as quite a formal way as he has. We need the ability to say "this piece of code can't panic". It's super important in the domains I work in. We also need the ability to say "this piece of code can't be non-deterministic". It's also super important in the domains I work in. Having language level support for something like this where I add an extra word to my function def and the compiler guarantees the above would be groundbreaking
ozgrakkurt 2026-03-09 06:17 UTC link
You just know some guy will try to make cli code no-panic/deterministic use a bunch of crap and think he achieved something.

Just not allowing complex code is so much better than this.

Just even being able to look at a piece of code and trace what it is doing is 1000x more valuable than this. I regretted almost every time I allowed Traits/generics into a codebase

ozgrakkurt 2026-03-09 06:24 UTC link
What worked for rust is having enums, sane-ish error handling, having sane integer types and the borrow checker, good tooling. The rest is just not that useful compared to how much garbage it creates
ozgrakkurt 2026-03-09 06:30 UTC link
People will push this crap into production codebases and link to these articles when you say you don’t want complexity. Best way to manage is to not make it possible, like go.

You indirectly deal with this kind of thing when compiling web server code too. It compiles super slow and can have weird errors. This is because the people who build the web stack in rust used a million traits/generics/macros etc.

Even if you look at something like an io_uring library in rust, it uses a bunch of macros instead of just repeating 3 lines of code.

lioeters 2026-03-09 07:01 UTC link
Unless there's a conscious and constant effort to keep things simple, a programming language or software project will grow to consume all available resources, developers' time, intellectual capacity, and funding.
chiffaa 2026-03-09 07:21 UTC link
There are ways to handle these effects without bloating up normal applications. For example, using attributes implemented as intrinsics, which wouldn't really affect anything that isn't using them.

The thing is, some of these things are very useful in specific domains, and all these domains are closely related to the ideas of safety. Nondeterminism and IO are important for purity/referential transparency, which is a fairly important effect for business logic IMO. Guaranteed termination matters for formal verification. Unwind removal matters for embedded. I don't think wishing for these things is really all that unwarranted

> I actually don’t see how this is any more beneficial than the existing no_panic macro

no_panic and similar macros are doing a very hacky workaround which isn't really a great static guarantee. The simple fact that building with panic = abort makes the macro useless is an annoyance in and of itself. dtolnay did great when figuring out some path forward but it's somewhat shaky

chiffaa 2026-03-09 07:33 UTC link
You can't cut down a language without breaking changes. And there fairly often are internal changes to simplify the compiler and the tooling. Just in the latest release, annotation internals were finally fully unified between rustc, cargo, clippy and other tools. This was a fairly considerable effort in deduplicating code. Borrow checker is being rewritten to move to tree borrows, trait resolution is being refactored for a variety of reasons. Code is being simplified where possible, but this doesn't mean Rust doesn't have areas to improve in, especially if there is a goal of replacing Ada/SPARK
hardwaresofton 2026-03-09 08:39 UTC link
*linear types (the leak free future bit)

This description is also a good crystallization of why one would want linear types

aw1621107 2026-03-09 08:49 UTC link
> I actually don’t see how this is any more beneficial than the existing no_panic macro

I think looking at the caveats listed in the no_panic docs should give you some ideas as to how a "proper" no_panic effect could improve on the macro.

Furthermore, a "proper" effect system should make working with effects nicer in general - for instance, right now writing functions that work independently of effects is not particularly ergonomic.

> The vast majority of rust programs don’t need such validation.

I think you also need to consider the niches which Rust wants to target. Rust is intended to be usable for very low-level/foundational/etc. niches where being able to track such effects is handy, if not outright required, so adding such support would be unblocking Rust for use in places the devs want it to be usable in.

> And for those that do, the Ferrocene project is maintaining a downstream fork of the compiler where this kind of feature would be more appropriate.

Given this bit from the Ferrocene website:

> Ferrocene is downstream from Rust

> It works with existing Rust infrastructure and the only changes made in the code were to cover testing requirements of ISO 26262, IEC 61508 and IEC 62304 qualification. All fixes are reported upstream for constant improvement.

I would suspect that such changes would be out of scope for the Ferrocene fork because that fork is more intended to be a qualified/certified Rust more than Rust + completely novel extensions.

> The compiler itself provides a powerful api via build.rs and proc macros which let downstream maintainers build their desired customization.

Given the complexity of the features listed this feels tantamount to asking each individual consumer to make their own fork which doesn't seem very likely to attract much interest. IIRC async even started off like that (i.e., using a macro), but that was painful enough and async thought to be useful enough to be promoted to a language feature.

I'm curious to what extent one can implement the described features using just build.rs/proc macros in the first place without effectively writing a new compiler.

scottlamb 2026-03-09 11:53 UTC link
`std::net::TcpStream`? Interestingly, it doesn't need to be mutable if you know the trick.

* It implements `Write` for `TcpStream` which is likely what you were using. And `Write` requires `&mut`, probably because the same trait is used for writing to application buffers (e.g. through `BufWriter` or just to a `Vec`). So this doesn't compile: [2] I think the error message is pretty good; maybe it's improved since you tried. It doesn't though suggest the trick below.

* It also implements `Write` for `&TcpStream`. So if you use the awkward phrasing `(&stream).write_all(b"asdf")`, you don't need mutable access. [3] This allows you to use it with anything that takes the trait, without requiring mutability. You might need this if say you're reading from the socket from one thread while simultaneously writing to it from another thread.

It's a vaguely similar situation with the most common async equivalent, `tokio::net::TcpStream`. The most straightforward way to write to it is with a trait that needs mutable access, but it is possible to write to a shared reference by not using a trait. They also have these `split` and `into_split` methods to get mutable access to something that implements the read traits and something that implements the write traits.

[1] https://doc.rust-lang.org/std/net/struct.TcpStream.html

[2] https://play.rust-lang.org/?version=stable&mode=debug&editio...

[2] https://play.rust-lang.org/?version=stable&mode=debug&editio...

devnullbrain 2026-03-09 12:22 UTC link
A state machine is a perfect example of a case where you would benefit from linear types.

Some things just need precise terminology so humans can communicate about them to humans without ambiguity. It doesn't mean they're inherently complex: the article provides simple definitions. It's the same for most engineering, science and language. One of the most valuable skills I've learned in my career is to differentiate between expressions, statements, items, etc. - how often have you heard that the hardest problem in software development is coordinating with other developers? If you learn proper terminology, you can say exactly what you mean. Simple language doesn't mean more clear.

I wasn't born knowing Rust, I had to learn it. So I'm always surprised by complaints about Rust being too complex directed at the many unremarkable people who have undergone this process without issues. What does it say, really? That you're not as good as them at learning things? In what other context do software people on the internet so freely share self-doubt?

I also wonder about their career plans for the future. LLMs are already capable of understanding these concepts. The tide is rising.

Editorial Channel
What the content says
+0.25
Article 19 Freedom of Expression
Medium A: Free expression of ideas P: Open access to technical knowledge
Editorial
+0.25
SETL
-0.19

Author freely expresses technical vision and ideas about language design without restriction. Post articulates personal perspective on Rust's development directions.

+0.22
Article 26 Education
Medium A: Open technical knowledge sharing P: Free access to educational content
Editorial
+0.22
SETL
-0.09

Post provides detailed technical education on advanced programming language concepts (type systems, formal semantics, refinement types) without restricting access, supporting education in technical domains.

+0.20
Article 27 Cultural Participation
Low A: Contribution to scientific community
Editorial
+0.20
SETL
ND

Author participates in advancing formal methods and programming language theory, contributing to scientific and technical culture.

+0.18
Article 25 Standard of Living
Low A: Technical safety infrastructure
Editorial
+0.18
SETL
ND

Post discusses Rust's role in preventing memory safety vulnerabilities, which indirectly supports system reliability and security necessary for health and welfare.

+0.15
Article 2 Non-Discrimination
Medium A: Inclusive technical participation
Editorial
+0.15
SETL
+0.09

Content focuses on expanding Rust's capabilities for broader domains (systems programming, embedded, etc.), potentially enabling wider participation in technical communities regardless of background, though not explicitly addressing discrimination.

+0.12
Article 23 Work & Equal Pay
Low A: Volunteer labor in open-source
Editorial
+0.12
SETL
ND

Author mentions volunteering to work on Rust language features, reflecting engagement in meaningful work of personal choice.

ND
Preamble Preamble

Content does not directly engage with human dignity, equal rights, or freedom from discrimination principles.

ND
Article 1 Freedom, Equality, Brotherhood

Content does not address equality, dignity, or fundamental human rights.

ND
Article 3 Life, Liberty, Security

Content does not address right to life, liberty, or security of person.

ND
Article 4 No Slavery

Content does not address slavery or servitude.

ND
Article 5 No Torture

Content does not address torture or cruel treatment.

ND
Article 6 Legal Personhood

Content does not address right to recognition before law.

ND
Article 7 Equality Before Law

Content does not address equal protection before law.

ND
Article 8 Right to Remedy

Content does not address effective remedy for violations.

ND
Article 9 No Arbitrary Detention

Content does not address arbitrary arrest or detention.

ND
Article 10 Fair Hearing

Content does not address fair and public hearing.

ND
Article 11 Presumption of Innocence

Content does not address presumption of innocence.

ND
Article 12 Privacy

Content does not address privacy or correspondence.

ND
Article 13 Freedom of Movement

Content does not address freedom of movement.

ND
Article 14 Asylum

Content does not address right to asylum.

ND
Article 15 Nationality

Content does not address right to nationality.

ND
Article 16 Marriage & Family

Content does not address marriage or family.

ND
Article 17 Property

Content does not address property rights.

ND
Article 18 Freedom of Thought

Content does not address freedom of thought, conscience, or religion.

ND
Article 20 Assembly & Association

Content does not address assembly or association.

ND
Article 21 Political Participation

Content does not address political participation.

ND
Article 22 Social Security

Content does not address social security or economic rights.

ND
Article 24 Rest & Leisure

Content does not address rest or leisure.

ND
Article 28 Social & International Order

Content does not address social or international order.

ND
Article 29 Duties to Community

Content does not address limitations on rights or duties.

ND
Article 30 No Destruction of Rights

Content does not address prohibition of rights destruction.

Structural Channel
What the site does
Element Modifier Affects Note
Legal & Terms
Privacy
No privacy policy or data collection practices observed on-domain.
Terms of Service
No terms of service visible on-domain.
Identity & Mission
Mission
Personal technical blog; no formal mission statement observed on-domain.
Editorial Code
No editorial code or journalism standards visible.
Ownership
Personal blog under author's name; ownership clear.
Access & Distribution
Access Model +0.10
Article 19 Article 26
Content appears to be freely accessible without paywall or registration barrier, supporting open access to information.
Ad/Tracking
No advertising or tracking pixels observed on-domain.
Accessibility +0.05
Article 2 Article 19 Article 26
Blog uses semantic HTML and appears readable, but no explicit accessibility statements or WCAG compliance declarations observed.
+0.35
Article 19 Freedom of Expression
Medium A: Free expression of ideas P: Open access to technical knowledge
Structural
+0.35
Context Modifier
+0.15
SETL
-0.19

Blog provides free, unrestricted access to content; no paywalls, registration, or censorship mechanisms observed. Content publicly available and indexable.

+0.25
Article 26 Education
Medium A: Open technical knowledge sharing P: Free access to educational content
Structural
+0.25
Context Modifier
+0.15
SETL
-0.09

Content freely accessible without paywall, registration, or qualification barriers. Structured with clear headings and references enabling learning.

+0.10
Article 2 Non-Discrimination
Medium A: Inclusive technical participation
Structural
+0.10
Context Modifier
+0.05
SETL
+0.09

Free access and semantic HTML support broaden participation, though no explicit anti-discrimination policies.

ND
Preamble Preamble

No structural mechanisms observable related to preamble principles.

ND
Article 1 Freedom, Equality, Brotherhood

No structural mechanisms observable related to equal dignity or rights.

ND
Article 3 Life, Liberty, Security

No structural mechanisms observable related to security of person.

ND
Article 4 No Slavery

No structural mechanisms observable.

ND
Article 5 No Torture

No structural mechanisms observable.

ND
Article 6 Legal Personhood

No structural mechanisms observable.

ND
Article 7 Equality Before Law

No structural mechanisms observable.

ND
Article 8 Right to Remedy

No structural mechanisms observable.

ND
Article 9 No Arbitrary Detention

No structural mechanisms observable.

ND
Article 10 Fair Hearing

No structural mechanisms observable.

ND
Article 11 Presumption of Innocence

No structural mechanisms observable.

ND
Article 12 Privacy

No tracking or invasive data collection observed.

ND
Article 13 Freedom of Movement

No structural mechanisms observable.

ND
Article 14 Asylum

No structural mechanisms observable.

ND
Article 15 Nationality

No structural mechanisms observable.

ND
Article 16 Marriage & Family

No structural mechanisms observable.

ND
Article 17 Property

No structural mechanisms observable.

ND
Article 18 Freedom of Thought

No structural mechanisms observable.

ND
Article 20 Assembly & Association

No structural mechanisms observable.

ND
Article 21 Political Participation

No structural mechanisms observable.

ND
Article 22 Social Security

No structural mechanisms observable.

ND
Article 23 Work & Equal Pay
Low A: Volunteer labor in open-source

No structural mechanisms related to labor rights observable.

ND
Article 24 Rest & Leisure

No structural mechanisms observable.

ND
Article 25 Standard of Living
Low A: Technical safety infrastructure

No direct structural mechanisms related to healthcare or welfare observable.

ND
Article 27 Cultural Participation
Low A: Contribution to scientific community

No direct structural mechanisms observable.

ND
Article 28 Social & International Order

No structural mechanisms observable.

ND
Article 29 Duties to Community

No structural mechanisms observable.

ND
Article 30 No Destruction of Rights

No structural mechanisms observable.

Psychological Safety
experimental
How safe this content is to read — independent from rights stance. Scores are ordinal (rank-order only). Learn more
PSQ
+0.1
Per-model PSQ
L4P +0.3 L3P +0.3
Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.69 medium claims
Sources
0.7
Evidence
0.7
Uncertainty
0.6
Purpose
0.8
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
hopeful
Valence
+0.7
Arousal
0.3
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
0.50
✓ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.61 solution oriented
Reader Agency
0.6
Stakeholder Voice
Whose perspectives are represented in this content?
0.35 2 perspectives
Speaks: institutionindividuals
About: compilerssystemsdevelopers
Temporal Framing
Is this content looking backward, at the present, or forward?
prospective medium term
Geographic Scope
What geographic area does this content cover?
global
Complexity
How accessible is this content to a general audience?
technical high jargon domain specific
Longitudinal 691 HN snapshots · 190 evals
+1 0 −1 HN
Audit Trail 210 entries
2026-03-16 01:47 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-16 01:46 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-16 01:41 eval_success Lite evaluated: Neutral (-0.05) - -
2026-03-16 01:41 model_divergence Cross-model spread 0.32 exceeds threshold (2 models) - -
2026-03-16 01:41 eval Evaluated by llama-4-scout-wai: -0.05 (Neutral) +0.03
reasoning
Technical blog post on Rust programming language development
2026-03-16 01:41 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-16 00:07 eval_success Evaluated: Mild positive (0.27) - -
2026-03-16 00:07 model_divergence Cross-model spread 0.35 exceeds threshold (2 models) - -
2026-03-16 00:07 eval Evaluated by claude-haiku-4-5-20251001: +0.27 (Mild positive) 12,182 tokens -0.26
2026-03-15 23:31 eval_success Evaluated: Moderate positive (0.54) - -
2026-03-15 23:31 model_divergence Cross-model spread 0.62 exceeds threshold (2 models) - -
2026-03-15 23:31 eval Evaluated by claude-haiku-4-5-20251001: +0.54 (Moderate positive) 12,095 tokens
2026-03-15 23:31 rater_validation_warn Validation warnings for model claude-haiku-4-5-20251001: 0W 1R - -
2026-03-14 17:37 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-14 17:37 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-14 17:24 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-14 17:24 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-14 17:24 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-09 22:21 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-09 22:21 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 22:12 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-09 22:12 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 22:12 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-09 22:02 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-09 22:02 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 21:55 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-09 21:55 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 21:55 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 1W 0R - -
2026-03-09 21:43 eval_success PSQ evaluated: g-PSQ=0.280 (3 dims) - -
2026-03-09 21:43 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 21:36 eval_success Lite evaluated: Neutral (-0.08) - -
2026-03-09 21:36 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 21:26 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 21:21 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 21:08 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 21:03 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 20:45 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 20:41 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 20:28 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 20:23 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 20:10 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 20:05 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 19:51 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 19:49 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 19:32 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 19:30 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 19:14 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 19:12 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 18:55 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 18:52 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 18:37 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 18:33 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 18:17 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 18:11 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 18:00 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 17:52 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 17:41 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 17:32 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 17:23 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 17:12 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 17:05 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 16:53 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 16:47 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 16:35 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 16:30 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 16:15 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 16:13 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 15:57 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 15:54 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 15:39 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 15:38 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 15:23 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 15:21 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 15:06 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 15:04 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 14:49 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 14:47 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 14:32 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 14:28 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 14:16 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 14:13 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 13:58 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 13:55 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 13:42 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 13:35 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 13:24 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 13:17 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 13:06 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 12:59 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 12:47 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 12:37 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 12:25 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) 0.00
2026-03-09 12:18 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 12:00 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 11:44 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 11:22 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) 0.00
2026-03-09 11:17 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 11:13 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 10:57 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 10:37 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 10:32 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 10:15 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) +0.16
2026-03-09 10:07 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 09:52 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 09:24 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 08:58 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) -0.16
2026-03-09 08:54 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 08:39 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 08:11 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 07:51 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) -0.16
2026-03-09 07:49 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 07:45 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) 0.00
2026-03-09 07:45 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 07:35 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 07:08 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 07:03 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 06:41 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) 0.00
2026-03-09 06:41 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 06:32 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 05:56 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 05:52 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 05:35 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) 0.00
2026-03-09 05:34 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 05:25 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 04:39 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 04:25 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) +0.16
2026-03-09 04:25 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 04:18 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 03:34 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 03:19 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) 0.00
2026-03-09 03:18 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 03:12 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 02:24 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 02:19 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 02:13 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 02:10 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) -0.16
2026-03-09 02:07 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 01:11 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 01:08 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-09 01:05 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) +0.32
2026-03-09 01:00 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-09 00:02 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-09 00:00 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 23:56 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 23:55 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 23:52 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 22:40 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 22:33 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 22:32 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 22:30 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 21:18 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 21:13 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 21:12 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 21:11 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 21:10 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 16:32 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 16:15 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 15:56 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 15:42 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 12:22 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 12:17 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 12:17 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 12:15 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 11:21 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 11:02 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 11:01 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 11:00 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 10:57 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 10:56 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 10:55 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 10:06 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 10:01 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 09:51 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 09:51 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 09:48 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) 0.00
2026-03-08 08:57 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 08:49 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 08:49 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 08:46 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) -0.32
2026-03-08 07:54 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 07:48 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 07:44 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 07:43 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 07:41 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) +0.32
2026-03-08 07:39 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 06:46 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 06:43 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 06:41 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 06:40 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) -0.32
2026-03-08 06:39 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 06:38 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-08 05:42 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-08 05:40 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) -0.00
2026-03-08 05:40 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language development
2026-03-08 05:40 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-07 20:46 eval Evaluated by llama-4-scout-wai: -0.08 (Neutral)
reasoning
Technical blog post on Rust programming language development
2026-03-07 20:43 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral) 0.00
reasoning
Technical blog post on Rust programming language
2026-03-07 20:38 eval Evaluated by llama-3.3-70b-wai: +0.08 (Neutral)
reasoning
Technical blog post on Rust programming language
2026-03-07 19:18 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-07 19:11 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) +0.32
2026-03-07 19:07 eval Evaluated by llama-3.3-70b-wai-psq: +0.16 (Mild positive) -0.32
2026-03-07 17:57 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-07 17:57 eval Evaluated by llama-3.3-70b-wai-psq: +0.48 (Moderate positive) +0.16
2026-03-06 18:02 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-06 17:57 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-06 17:45 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) 0.00
2026-03-06 04:00 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive) 0.00
2026-03-06 03:51 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive) +0.00
2026-03-05 11:15 eval Evaluated by llama-4-scout-wai-psq: +0.28 (Mild positive)
2026-03-05 11:15 eval Evaluated by llama-3.3-70b-wai-psq: +0.32 (Moderate positive)