Funqual: User-Defined, Statically-Checked Call Graph Constraints in C++