Source: https://home.mis.u-picardie.fr/~furst/docs/2-ADA_Typage.pdf