Source: https://www.cs.bham.ac.uk/~mhe/talks/escardo-ihp2014.pdf