Rust Extensible Data Types with CGP: Modular Interpreters and Extensible Visitors
2025-07-18

This blog post is part two of a series on programming extensible data types in Rust using CGP. It explores building modular interpreters using extensible variants and the extensible visitor pattern to solve the expression problem. A toy math expression language demonstrates how to decouple variant implementations from enum definitions, creating open-ended, modular visitors that avoid runtime errors or rigid interfaces. CGP enables building extensible, modular interpreter components that compose to create complex interpreter functionality.
Development
Extensible Data Types