MCPcopy Index your code
hub / github.com/dcreager/expression-problem-rust

github.com/dcreager/expression-problem-rust @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
128 symbols 375 edges 17 files 21 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…

Extension points exported contracts — how you extend this code

EvaluateAny (Interface)
Well that was easy. (Not really! Don't worry, we'll run into wrinkles.) [8 implementers]
src/ch07b_generic_evaluation.rs
EvaluateInt (Interface)
Each kind of term in our language should implement this trait to define how it's evaluated. [7 implementers]
src/ch03_evaluation.rs
Eval (Interface)
Each term type should implement this trait to define how it should be evaluated. If the term has any subexpressions, it [8 …
src/ch08b_open_recursion_evaluation.rs
Expression (Interface)
An Expression represents the AST of one of our mini-languages. It has a `Signature` associated type, which is a `Sum` o [4 …
src/ch08a_expressions.rs
Evaluate (Interface)
(no doc) [4 implementers]
src/old.rs
ProjectPair (Interface)
We don't have a trait that we can reuse for the evaluation rules for First and Second, like we could with std::ops::Add [2 …
src/ch07c_pair_evaluation.rs
Increment (Interface)
I'm going to make the bold claim that most of Swierstra §6 isn't relevant in Rust — we don't typically use monads to exp [1 …
src/ch06_calculator_monad.rs
NotEq (Interface)
(no doc) [1 implementers]
src/ch04_smart_constructors.rs

Core symbols most depended-on inside this repo

integer_literal
called by 84
src/old.rs
add
called by 25
src/old.rs
pair
called by 9
src/ch07a_pairs.rs
integer_literal
called by 8
src/ch01a_before.rs
subtract
called by 7
src/ch01a_before.rs
multiply
called by 6
src/ch05a_multiplication.rs
first
called by 6
src/ch07a_pairs.rs
integer_literal
called by 5
src/ch04_smart_constructors.rs

Shape

Function 66
Method 30
Class 15
Interface 12
Enum 5

Languages

Rust100%

Modules by API surface

src/old.rs18 symbols
src/ch07c_pair_evaluation.rs13 symbols
src/ch07d_safer_pair_evaluation.rs11 symbols
src/ch08b_open_recursion_evaluation.rs10 symbols
src/ch01c_sad_face.rs10 symbols
src/ch07a_pairs.rs9 symbols
src/ch06_calculator_monad.rs9 symbols
src/ch01a_before.rs9 symbols
src/ch05a_multiplication.rs8 symbols
src/ch04_smart_constructors.rs6 symbols
src/ch07b_generic_evaluation.rs5 symbols
src/ch02_open_sum.rs5 symbols

For agents

$ claude mcp add expression-problem-rust \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact