Purity Analysis
I created a tool for dynamic purity analysis of functions in Python. It traces the scope of variable mutations in functions. Functions whose side effects do not propagate outside their scope are pure. The implementation is based on bytecodes analysis and leverages the functionality of the garbage collector.