function main( context ) {
	/**
	* Reports the error message.
	*
	* @private
	* @param {ASTNode} node - node to report
	*/
	function report( node ) {
		context.report({
			'node': node,
			'message': 'stdlib constants must be uppercase',
			'fix': fix
		});

		/**
		* Fixes the error message.
		*
		* @private
		* @param {Function} fixer - ESLint fixer
		* @returns {Object} fix
		*/
		function fix( fixer ) {
			var src;
			var rep;
			var id;

			id = node.declarations[ 0 ].id;
			src = context.getSourceCode().getText( id );
			rep = src.toUpperCase();
			return fixer.replaceText( id, rep );
		}
	}

	/**
	* Checks that a required `stdlib` constant is uppercase.
	*
	* @private
	* @param {ASTNode} node - node to examine
	*/
	function validate( node ) {
		var callExpression;
		var requirePath;
		var declaration;
		var name;

		declaration = node.declarations[ 0 ];
		if ( declaration.type === 'VariableDeclarator' ) {
			callExpression = declaration.init;
			if (
				callExpression &&
				callExpression.callee &&
				callExpression.callee.name === 'require'
			) {
				name = declaration.id.name;
				requirePath = callExpression.arguments[ 0 ].value;
				if (
					isString( requirePath ) &&
					RE_CONSTANT_PKG.test( requirePath ) &&
					!isUppercase( name )
				) {
					report( node );
				}
			}
		}
	}

	return {
		'VariableDeclaration': validate
	};
}
Rule for validating that required `stdlib` constants have uppercase variable names.

@param {Object} context - ESLint context
@returns {Object} validators