Source: https://www.irif.fr/~paperman/kleene.pdf