From SICP: Tackling complexity by creating “layers of language”