Right now we store dependencies among functions via Rc and Weak pointers in Rust. This causes problems with #84: for instance, the derivatives of $\sin$ and $\cos$ depend on each other, causing a cycle that would never be freed. We can keep individual function definitions living in Rust, but we should move the graph itself into JavaScript so it can be managed by the garbage collector.