Permits you to write special compilers for different types of data, including things like archive construction and preprocessing.