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 · 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
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
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 · 10/07/2025
Learn about how to build modular interpreters and visitors in Rust using CGP!
000
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
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
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
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 03/05/2025
It is now possible to do OOP-like inheritance at the type-level in #RustLang using #CGP! Our latest PR brings significant improvements to defining and using presets in CGP, with support for multiple-inheritance, and override mechanism to overcome the diamond inheritance problem.
101
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 23/03/2025
A lot of new features have been added to the `#[cgp_getter]` macro! For the basic use cases, you can now define getter methods that return &str or Option<&T>, and the macro will generate getter implementations that read from String or Option<T> fields. github.com/contextgener...
github.com
Refactoring and Improvements on `#[cgp_getter]` by soareschen · Pull Request #81 · contextgeneric/cgp
Summary This PR brings several quality of life improvements on the proc macros #[cgp_getter] and #[cgp_auto_getter], allowing them to support more general getter interfaces to be defined. Specializ...
101
Reposted by Soares Chen
#1 text-overflow: ellipsis; hater @nekotachi.bsky.social · 21/03/2025
new blog post! Explaining a useful rust programming pattern that not many people seem to know about. paper.wf/binarycat/sa... #rust #programming
paper.wf
Safe Delayed Initialization for Lifetime Extension
A niche programming pattern to satisfy the borrow checker. Many Rust programmers don't know the exact semantics of let: A variable in l...
4196
Reposted by Soares Chen
/noclip @noclipvideo.bsky.social · 22/03/2025
[🚨NEW DOC ALERT🕹️] The Origins of Dwarf Fortress WATCH HERE: www.youtube.com/watch?v=MxV2... In the first episode of our four-part series we explore the pre-history of Dwarf Fortress and how two brothers embarked on the game design journey of a lifetime.
youtube.com
The Origins of Dwarf Fortress - Dwarf Fortress Series (Episode One)
YouTube video by Noclip
331491
Soares Chen @maybevoid.com · 19/03/2025
I am seeing Cargo build scripts are getting abused more and more to download and install arbitrary programs from Internet, especially for projects that extend Rust like Risc0 and Cairo. This is so annoying as it is both a security hazard and also breaks seamless Nix integration with Rust projects.
270
Soares Chen @maybevoid.com · 14/03/2025
It was quite refreshing coming back from @bobkonf.bsky.social, being able to socialize with likeminded people about functional programming and temporarily forget about all the business nonsense in the tech world. I should join more FP conferences and revitalize my passion.
010
Reposted by Soares Chen
/noclip @noclipvideo.bsky.social · 12/03/2025
COMING SOON: The Story of DWARF FORTRESS - 4 part Series - 2 hours total runtime - Filmed over 3 years - Covers 20+ Years of Development - Episodes released over the next few weeks - Produced for fans, and total newbies. Episode One is also available right now for Early Access Patrons.
161074219
Soares Chen @maybevoid.com · 13/03/2025
Finally return type notation is getting stabilized in Rust soon! github.com/rust-lang/ru... Hopefully this will finally allows me to get rid of the `Send + Sync` bounds everywhere in my #CGP code, including all the associated type trait bounds.
github.com
Stabilize return type notation (RFC 3654) by compiler-errors · Pull Request #138424 · rust-lang/rust
Return Type Notation (RTN) Stabilization Report Stabilization summary This PR stabilizes return-type notation in where clause and item bound position, both in path and associated type bound forms f...
020
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 12/03/2025
A great article that gives an overview of the coherence problem in typeclasses/traits has been surfaced on Hacker News. I am trying to take the opportunity to pitch about CGP and how it helps solve the given coherence problems. Help give me an upvote here: news.ycombinator.com/item?id=4334...
news.ycombinator.com
Shameless plug: I am working on a solution in Rust that solves the coherence pro... | Hacker News
111
Reposted by Soares Chen
amos @fasterthanli.me · 11/03/2025
brb launching a movement: github.com/fasterthanli...
A screenshot of Shapely's README showing a badge that reads "free of syn" and the syn is hot pink.The same badge printed by the test suite of Shapely (it's enforced in CI)
6999
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 09/03/2025
CGP now has a new logo! The website has been updated with the new logo and color theme: contextgeneric.dev There are many exciting features in the upcoming v0.4.0 release. In particular, CGP now shows much more informative compile errors that makes it much easier to debug CGP code.
112
Soares Chen @maybevoid.com · 28/02/2025
Oops, the new AsyncFn in Rust 1.85 does not return Future that implements Send. It also seems like there is no way for me to specify that additional trait bound, since I can't access CallRefFuture. Guess that means I can't use AsyncFn just yet..
010
Soares Chen @maybevoid.com · 20/02/2025
Oh wow the new `#[diagnostic::do_not_recommend]` pragma in Rust 1.85 is perfect for helping me remove the misleading "Deref is not implemented" error for my `HasField` trait in CGP! blog.rust-lang.org/2025/02/20/R...
blog.rust-lang.org
Announcing Rust 1.85.0 and Rust 2024 | Rust Blog
Empowering everyone to build reliable and efficient software.
120
Soares Chen @maybevoid.com · 15/02/2025
I have found a pretty neat way to re-export everything inside a Rust module, including its private items, by adding a child module like: pub mod reexport_all { pub use super::*; }
100
Reposted by Soares Chen
Tim Abell @0x5.uk · 31/01/2025
I was reading some code recently that had a bunch of problems at various layers, and in spite of all my years of coding and the fact that it’s not even my project, I still find myself getting strong feelings of anguish and “pain”. I found myself wondering why. And now I know: 0x5.uk/2025/01/31/w...
0x5.uk
Why is reading bad so code painful?!
I was reading some code recently that had a bunch of problems at various layers, and in spite of all my years of coding and the fact that it’s not even my project, I still find myself getting strong f...
031
Reposted by Soares Chen
Max | Emergent Garden @emergentgarden.bsky.social · 18/01/2025
❗Some big news: I quit my desk job to do youtube full time, and to work on projects like mindcraft! I have been wanting to do this for a while, and finally took the plunge. It is exciting and scary! Announcement video and channel trailer: www.youtube.com/watch?v=34Kh...
youtube.com
I Quit my Job to make Weird Programs
YouTube video by Emergent Garden
10464
Soares Chen @maybevoid.com · 13/01/2025
Who the hell at Apple think it is a good idea to bind the key `Cmd + R` to automatically rotate videos without confirmation in MacOS Finder?!
010
Reposted by Soares Chen
Context-Generic Programming @contextgeneric.dev · 11/01/2025
You should still care about modularity, even if you don't write modular code yourself. Because modularity allows you to reuse modular code written by *others*, so that you can write much less non-modular code yourself. #CGP #RustLang
132
Reposted by Soares Chen
Steve Klabnik @steveklabnik.com · 03/01/2025
instead of seeing the compiler as a partner in a feedback loop, they feel like any opposition is just "getting in their way"; it's adversarial rather than cooperative
8483