+ /// Removes modules excluded by, provided by, etc, the base class.
+ /// \param lay The document class against which to check.
+ /// \return true, if modules were consistent, false if changes had
+ /// to be made.
+ bool removeBadModules(LayoutFile const * const lay);
+ /// Adds default modules, if they're addable.
+ /// \param lay The base class from which to get default modules.
+ /// \param removedModules Modules the user has explicitly removed.
+ void addDefaultModules(LayoutFile const * const lay,
+ std::list<std::string> removedModules);
+ /// Checks for consistency among modules: makes sure requirements
+ /// are met, no modules exclude one another, etc, and resolves any
+ /// such conflicts, leaving us with a consistent collection.
+ /// \param lay The base class against which to check.
+ /// \return true if modules were consistent, false if changes had
+ /// to be made.
+ bool checkModuleConsistency(LayoutFile const * const lay);
+ ///