How to stop fighting with coherence and start writing context-generic trait impls in Rust
https://t.co/koliDYdGMP
This blog post contains the slides and transcript for my presentation of Context-Generic Programming at RustLab 2025.
My RustLab presentation on **How to stop fighting with coherence and start writing context-generic trait impls** is now available on YouTube:
https://t.co/KPmD61fK1j
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.
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).
https://t.co/KHCiyWPuIt
No more fighting the compiler! 😄
@soareschen showed how Context-Generic Programming lets Rust devs go beyond coherence limits — safely and elegantly.
#RustLab2025#RustLang
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.
https://t.co/8iQ3JWNrAr
I am thrilled to announce the release of CGP v0.5.0! This new release includes many exciting features, including auto dispatchers, extensible datatype improvements, monadic computation, emulation of RTN, sneak preview of cgp-serde, and more. https://t.co/Ojnq8fR9hG
I will be presenting at RustLab on how to stop fighting with coherence and start writing context-generic programs with CGP. Use the discount code SP20FR to attend the conference with 20% discount!
Tired of fighting Rust’s coherence rules?
@soareschen 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
This also enables safe enum upcasting and downcasting, as well as modular builder and visitor patterns in Rust. Check out the blog post to find out more!
I'm excited to share the release of CGP v0.4.2, with new support for extensible records and variants! https://t.co/zRZ39amkyo
In short extensible data types allows us to read, construct, and deconstruct a *generic* struct or enum without needing access to the concrete type.
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!
Announcing Context-Generic Programming (CGP) - a new modular programming paradigm for #RustLang!
#CGP allows strongly-typed Rust components to be implemented and composed in a modular, generic, and type-safe way. Check out https://t.co/AGqTlB2p1b to learn more.
For the last 2 years, I have been working on a new specification language called Quint, based on TLA.
Today, we are doing a first general announcement because we finally feel that it is good enough for people to use it and enjoy it :)
https://t.co/f4qJgvIzAh
Remember #Quint?
Quint is a tool created by @informalinc that helps developers design and check if distributed applications work correctly, especially programs running on blockchains.
Here is an update 🧵
The Rust async fn and return-position impl Trait in trait PR has passed through review and in its final comment period. Looking forward for it to get merged soon!
https://t.co/I1cRsDZM3c
Stumbled upon this fantastic (& underrated) Youtube playlist covering the details of Hindley-Milner type inference (eg. unification).
Loads of examples on paper & in code, they even go through the notation in the original HM paper -- would recommend!
https://t.co/ZJHEko9nca