Source: http://elies.rediris.es/Language_Design/LD-SI-2016/06-Arnaud.pdf