In the mid-eighties, a number of papers introduced the notion of hygienic macro expansion (codice_3), a pattern-based system where the syntactic environments of the macro definition and the macro use are distinct, allowing macro definers and users not to worry about inadvertent variable capture (cf. referential transparency). Hygienic macros have been standardized for Scheme in the R5RS, R6RS, and R7RS standards. A number of competing implementations of hygienic macros exist such as codice_4, codice_5, explicit renaming, and syntactic closures. Both codice_4 and codice_5 have been standardized in the Scheme standards.