Encoding datatypes in term of other datatypes and generalising their properties
youtube.com