A flexible approach to interprocedural data flow analysis and programs with recursive data structures | Synapse