Source: https://taoxie.cs.illinois.edu/publications/ecoop18-put.pdf