# Overview
This crate behaves like a staged compiler that turns Clifford algebra declarations into generated Rust. Macros parse input (spec), build an intermediate multivector representation, run optimisation passes, then emit `TokenStream`s.
Two entry points exist:
- The module attribute macro `#[reefer::algebra]` (attach it to an empty module)
- The generated `expr!` macro that expands symbolic expressions within that module
Both flow through the same pipeline described in “Optimization Pipeline”.