If type is keymap , then the function is really a keymap. If symbol already has a non- nil function definition that is not an autoload object, autoload does nothing and returns nil . You may load a file more than once in an Emacs session. When writing the forms in a library, keep in mind that the library might be loaded more than once. But this would add multiple elements if the library is reloaded.
Features provide and require are an alternative to autoload for loading files automatically.
They work in terms of named features . Autoloading is triggered by calling a specific function, but a feature is loaded the first time another program asks for it by name. The use of named features simplifies the task of determining whether required definitions have been defined. A feature name is a symbol that stands for a collection of functions, variables, etc. A program that needs the collection may ensure that they are defined by requiring the feature.