Sign in

Soares Chen

@maybevoid.com
152 followers 227 following 107 posts

Rust Nerd ∘ Creator of Context-Generic Programming @contextgeneric.dev ∘ Interested in Haskell, functional programming, type theory, category theory, programming language theory ∘ maybevoid.com ∘ contextgeneric.dev

PostsRepliesMedia
Reposted by Soares Chen
Cartero @news.karthihegde.dev · 14/03/2026
Torturing rustc by Emulating HKTs, Causing an Inductive Cycle and Borking the Compiler Discussion | lobsters | Author: WeetHet
harudagondi.space
Torturing rustc by Emulating HKTs, Causing an Inductive Cycle and Borking the Compiler
I just wanted higher kinded types. I borked the compiler instead.
011
Soares Chen @maybevoid.com · 08/03/2026
How to stop fighting with coherence and start writing context-generic trait impls in Rust contextgeneric.dev/blog/rustlab... This blog post contains the slides and transcript for my presentation of Context-Generic Programming at RustLab 2025.
contextgeneric.dev
How to stop fighting with coherence and start writing context-generic trait impls - RustLab 2025 transcript | Context-Generic Programming
This blog post contains the slides and transcript for my presentation of Context-Generic Programming at RustLab 2025.
031
Soares Chen @maybevoid.com · 04/03/2026
My RustLab presentation on **How to stop fighting with coherence and start writing context-generic trait impls** is now available on YouTube: www.youtube.com/watch?v=gXIf...
youtube.com
How to stop fighting with coherence and star writing context-generic trait impls - Soares Chen
YouTube video by RustLab Conference
020
Soares Chen @maybevoid.com · 02/03/2026
Supercharge Rust functions with implicit arguments using CGP v0.7.0 🚀 contextgeneric.dev/blog/v0.7.0-...
contextgeneric.dev
Supercharge Rust functions with implicit arguments using CGP v0.7.0 | Context-Generic Programming
CGP v0.7.0 has been released, bringing a major expansion to the CGP macro toolkit. The centerpiece of this release is a suite of new annotations — #[cgpfn], #[implicit], #[uses], #[extend], #[useprovi...
000
Soares Chen @maybevoid.com · 25/02/2026
Thanks for the feedback! I have reduced the image sizes to 480p, and each image is now around 300 KiB.
020
Soares Chen @maybevoid.com · 21/02/2026
Context-Generic Programming (CGP) now has a new website! We have now migrated from Zola to Docusaurus. This blog post explains the reasons behind the move. contextgeneric.dev/blog/2026/02...
131
Soares Chen @maybevoid.com · 02/02/2026
We're excited to announce the release of cgp v0.6.1, which brings several quality-of-life improvements to Context-Generic Programming in Rust. contextgeneric.dev/blog/v0-6-1-...
contextgeneric.dev
CGP v0.6.1 Release: Improving Ergonomics and Debugging | Context-Generic Programming
000
Reposted by Soares Chen
Lambda Days @lambdadays.bsky.social · 11/12/2025
We have some bittersweet news: Lambda Days will take a break in 2026. But - we’re releasing something special 💛 🎥 All Lambda Days 2025 talk recordings are now public! 👉 youtube.com/playlist?lis...
youtube.com
Lambda Days 2025 - YouTube
042
Reposted by Soares Chen
RustNL @rustnl.bsky.social · 03/11/2025
The Call for Proposals for RustWeek 2026 is now open! If you’d like to give a talk, please submit your proposal via sessionize.com/rustweek-2026/ The CFP closes Dec 31. #rustweek2026 #rustlang
sessionize.com
Rust Week 2026: Call for Speakers
RustWeek is back!Two days of talks (Tue 19 and Wed 20) and one day with workshops (Mon 18),as well as social events and activities all week (Mon 19 - ...
0159
Soares Chen @maybevoid.com · 03/11/2025
In short, cgp-serde extends Serde’s original Serialize and Deserialize traits with CGP, making it possible to write overlapping or orphaned implementations of these traits and thus bypass the standard Rust coherence restrictions.
000
Soares Chen @maybevoid.com · 03/11/2025
I am excited to announce the release of cgp-serde, a modular serialization library for Serde that leverages the power of Context-Generic Programming (CGP). contextgeneric.dev/blog/cgp-ser...
contextgeneric.dev
Announcing cgp-serde: A modular serialization library for Serde powered by CGP | Context-Generic Programming
110
Reposted by Soares Chen
RustLab Conference @rustlab.it · 03/11/2025
No more fighting the compiler! 😄 Soares Chen showed how Context-Generic Programming lets Rust devs go beyond coherence limits — safely and elegantly. #RustLab2025 #RustLang @maybevoid.com
011
Soares Chen @maybevoid.com · 26/10/2025
I’m excited to announce the release of CGP v0.6.0! This version introduces major ergonomic improvements that make provider and context implementations simpler and more intuitive to write. #RustLang contextgeneric.dev/blog/v0-6-0-...
contextgeneric.dev
CGP v0.6.0 Release - Major ergonomic improvements for provider and context implementations | Context-Generic Programming
021
Soares Chen @maybevoid.com · 12/10/2025
I am thrilled to announce the release of CGP v0.5.0! This new release includes many exciting features and improvements, including auto dispatchers, extensible datatype improvements, monadic computation, emulation of RTN, sneak preview of cgp-serde, and more. contextgeneric.dev/blog/v0-5-0-...
contextgeneric.dev
CGP v0.5.0 Release - Auto dispatchers, extensible datatype improvements, monadic computation, RTN emulation, modular serde, and more | Context-Generic Programming
010
Soares Chen @maybevoid.com · 10/10/2025
So in a way, ML engineers have been writing monadic code in Python without being aware of it.
000
Soares Chen @maybevoid.com · 10/10/2025
If you treat the tensor monad as fully abstract, you then pretty much get free monad and algebraic effects. You can then do different kinds of abstract interpretation on the free monad, and do things other than the actual computation, such as compiling it to various optimized compute kernels.
100
Soares Chen @maybevoid.com · 10/10/2025
My observation of ML frameworks from the POV of a functional programmer: PyTorch tensors are actually some kind of monad, with the dimensions being the "type" of the contained values.
100
Reposted by Soares Chen
Michael (compiler-errors) Goulet @errs.io · 05/09/2025
Today’s my last day at AWS working on the Rust compiler. Unfortunately, back in July I received notice that I had to choose between moving to Boston from NYC, or leaving the company due to RTO policy. I unfortunately couldn’t abandon the city I plan on being my long term home.
113911
Reposted by Soares Chen
RustLab Conference @rustlab.it · 26/08/2025
Tired of fighting Rust’s coherence rules? S@maybevoid.com introduces Context-Generic Programming: a new way to write flexible trait impls without breaking the rules. 🧩 How to Stop Fighting with Coherence and Start Writing Context-Generic Trait Impls #rustlang #rustlab2025
122
Soares Chen @maybevoid.com · 23/08/2025
I will be presenting at @rustlab.it on how to stop fighting with coherence and start writing context-generic programs with @contextgeneric.dev. Use the discount code SP20FR to attend the conference with 20% discount! rustlab.it/talks/how-to...
rustlab.it
RustLab | How to Stop Fighting with Coherence and Start Writing Context-Generic Trait Impls
Soares Chen at RustLab 2025
142
Reposted by Soares Chen
RustLab Conference @rustlab.it · 16/05/2025
🦀 We are proud to announce the Schedule for RustLab 2025! It’s not completed yet: there will be some minor changes or additions, especially in the workshops and social events areas, but this is it! Take a look at it and join us now! 🤗 👉 rustlab.it/schedule
rustlab.it
RustLab | Schedule
Check the schedule of the international conference on Rust in Florence, Italy
054
Soares Chen @maybevoid.com · 21/08/2025
Oh wow, so even Java has type classes now, or it looks more like Scala implicits. At least it is still good that Java is becoming more FP-friendly. Now when is Go's turn? www.youtube.com/watch?v=Gz7O...
youtube.com
Growing the Java Language #JVMLS
YouTube video by Java
020
Soares Chen @maybevoid.com · 05/08/2025
The third and fourth parts of Extensible Data Types for Rust - the design and implementation of extensible records and variants - has been published! contextgeneric.dev/blog/extensi... contextgeneric.dev/blog/extensi...
contextgeneric.dev
Programming Extensible Data Types in Rust with CGP - Part 3: Implementing Extensible Records | Context-Generic Programming
000
Soares Chen @maybevoid.com · 11/07/2025
Though most programmers would rather go through all hoops to continue programming with dynamic types than to learn to write generic code.
130
Soares Chen @maybevoid.com · 11/07/2025
My work on Context-Generic Programming can remove pretty much all needs to use dyn traits or vtable or reflection: contextgeneric.dev
contextgeneric.dev
Context-Generic Programming
Context-Generic Programming: Modular programming paradim for Rust
110
Soares Chen @maybevoid.com · 10/07/2025
Learn about how to build modular interpreters and visitors in Rust using CGP!
000
Soares Chen @maybevoid.com · 09/07/2025
CGP also has the lift operator, called `Promote`, to lift the `m` in `(Ctx => a -> m b)`. With that, you can probably see how we can support everything essential about monads with CGP in Rust!
000
Soares Chen @maybevoid.com · 09/07/2025
Actually, the monadic form in CGP is more than just (a -> m b) - it is more like (Ctx => a -> m b). That makes it much more powerful and practical for monadic computation, because we can do dependency injection with the implicit constraints!
100
Soares Chen @maybevoid.com · 09/07/2025
Also, the composition operator for CGP monads is not (>>=) or (>>), but rather it is just pipe (|) :: (a -> m b) -> (b -> m c) -> (a -> m c). Despite that, pipe is probably much as powerful as bind, just with different syntax.
100
Soares Chen @maybevoid.com · 09/07/2025
Surprisingly, it turns out CGP already supports fully monadic computation in Rust! It is just that the CGP monads are in the form `a -> m b` instead of the usual `m a`.
100
Soares Chen @maybevoid.com · 07/07/2025
CGP v0.4.2 has been released, with brand new support for extensible records and variants. Check out the blog post to find out more! contextgeneric.dev/blog/extensi...
contextgeneric.dev
Programming Extensible Data Types in Rust with CGP - Part 1: Highlights and Extensible Records Demo | Context-Generic Programming
000
Reposted by Soares Chen
Michael (compiler-errors) Goulet @errs.io · 02/07/2025
Howdy all. I'm unfortunately not going to be with my employer for much longer due to team relocation. If anyone has any info on roles that would allow me to continue my Rust compiler work (in New York City), they'd be greatly appreciated.
19345
Soares Chen @maybevoid.com · 01/07/2025
Oh wow, since when did Firefox implement native integration with all major LLMs like ChatGPT? Did they get any funding from that integration? How come I never seen any such news or discussion on Hacker News?
000
Soares Chen @maybevoid.com · 17/06/2025
Finally I can get back to hacking the core CGP implementation! This time with a new CGP builder pattern for constructing Rust structs!
000
Soares Chen @maybevoid.com · 15/06/2025
At least this is the first time I'm able to break the compiler with sufficiently "simple" applications. Might be time for me to finally get my hand dirty on Rustc.
000
Soares Chen @maybevoid.com · 15/06/2025
Damn.. I think I managed to get the Rust compiler to hang indefinitely when trying to write slightly more complex examples of Hypershell. 😅
110
Soares Chen @maybevoid.com · 14/06/2025
I have created Hypershell as a proof of concept to showcase how CGP can be used to build highly modular and extensible DSLs, with the DSL programs expressed as Rust types!
030
Soares Chen @maybevoid.com · 12/06/2025
If it is going to happen, then nothing can stop that from happening. So might as well enjoy the ride and find the best use of AI for the good.
000
Soares Chen @maybevoid.com · 12/06/2025
As for the future where AI becomes smarter than average humans and take over programming jobs? I don't like that kind of future, but I also think that it is futile for me to personally fight against that.
100
Soares Chen @maybevoid.com · 12/06/2025
So I guess I will probably fight for a future where people no longer complain that things are too difficult for them to learn, because there is always an AI companion there to teach them everything they need.
100
Soares Chen @maybevoid.com · 12/06/2025
Of course, there is always a risk of backfiring that some people would just acknowledge that AI is smarter than them and let it do all the jobs. But my hope is that at least there will also be a growing number of people who are more *willing* to learn hard topics thanks to the AI tutors.
100
Soares Chen @maybevoid.com · 12/06/2025
Beginners should have two choices that either you bite the bullet and learn Rust through either humans or the AI tutor, or you'd be essentially acknowledging that the AI is *smarter* than you if you still find it to be too hard to learn.
100
Soares Chen @maybevoid.com · 12/06/2025
So I would rather be in a world where we can confidently tell beginners that: "Look, Rust is not *that* hard if the AI is smart enough to learn it and *teach* you all essential concepts".
100
Soares Chen @maybevoid.com · 12/06/2025
I don't like the dilemma of the fact that if the AI is good enough at teaching programming, then it is also good enough to take over the programming job. But I also don't like seeing people complaining that a language like Rust is bad because it is "too hard to learn".
100
Soares Chen @maybevoid.com · 12/06/2025
I think AI could be a great tutor on topics that people claim to be too hard to learn, such as programming in Rust or CGP. Granted, the AI's understanding of the advanced topics are not perfect, but this is where we human experts can step in to help train the AI to better train the beginners.
100
Soares Chen @maybevoid.com · 12/06/2025
I am thinking of using AI to figure out which concepts in @contextgeneric.dev are hard to understand, by asking it to read the documentation and explain the code base. If the AI cannot explain the concepts clearly, I would add new documentation until all the misunderstanding are clarified.
100
Soares Chen @maybevoid.com · 12/06/2025
The vibe coding debate focused mostly on beginners who code with AI without understanding programming fundamentals, and experts who bash that the code generated by AI is incorrect. But why not we *train* the AI to be good at teaching beginners on *hard* topics, e.g. Rust and functional programming?
100
Soares Chen @maybevoid.com · 02/06/2025
Here are some sneak previews of what I have been working on for the past 2 weeks. Hypershell is a compile-time DSL for writing shell-script-like programs as Rust types. It is powered by context-generic programming, and is highly customizable and extensible!
020
Reposted by Soares Chen
Alexis King @lexi-lambda.bsky.social · 29/05/2025
I have published my first new blog post in four years lexi-lambda.github.io/blog/2025/05...
lexi-lambda.github.io
A break from programming languages
2012022
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 09/05/2025
I am excited to share about the new release of #CGP v0.4.0! This update solves a major challenge in debugging CGP-related errors in Rust, simplifies the developer experience with new macros, and added new features such as presets and datatype-generic programming. contextgeneric.dev/blog/v0-4-0-...
contextgeneric.dev
CGP v0.4.0 is Here: Unlocking Easier Debugging, Extensible Presets, and More! | Context-Generic Programming
CGP v0.4.0 is officially released, bringing transformative improvements! Experience dramatically easier debugging, powerful new features, and a smoother developer journey for modular Rust programming.
001