Source: https://www.uio.no/studier/emner/matnat/ifi/INF3110/h05/lysark/Types.pdf