Abstract algebra for Rust