Source: https://www.normalesup.org/~glafon/eiffel13/applis_lineaires.pdf