Classes
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 NFormatHandlingNamespace that encapsulates all logic referent to Load, Save and Recognize
Multiple Sequence Alignments formats.

It contains the Format Manager ,
class that serves as a wrapper for Base Format Handler and its subclasses.
It also contains the Base Format Handler and all it's formats
 CBaseFormatHandlerAbstract class that serves as template for Format Handlers. Formats must inherit from this class and will be handled by FormatManager
 CFormatManagerClass to handle Format Handlers .
It serves as a proxy to the handlers, so the code outside the FormatManager is format-agnostic
 NreportingInternal classes to handle reporting to user in several ways.
The reporting system is made so a developer that wants to use the system doesn't need to enter to the namespace, but use the global variable debug
 CreportManagerClass that allows us to centralize all the reporting messages that should be used to inform the user of Errors, Warnings and Info.
The object can also be used as a substitute to cout for temporal messages using the << overloaded operator or the log method, and the messages will be behind the IsDebug variable, which should be set to false in Release.
This allows us to protect the user from receiving Debug/Developing messages that shouldn't bother them, in case any of them is not removed by error
 CreportWrapperInternal class used by reporting::reportManager
This class serves as a proxy for message reporting.
It will only output to std::cout if reporting::reportWrapper::CanReport it's true
 NstatisticsNamespace containing all classes related to statistics handling
 CConsistencyClass to calculate the consistency between several MSA containing the same sequences, differently aligned.
Using this statistics, the class is able to select the most consistent alignment between all alignments provided.
It is possible to forcefully select an alignment, but to calculate the statistics for latter use.
After selecting an alignment (most consistent or manually selected), it is possible to use this statistic to trim the alignment, removing columns that are not consistent enough with the other alignments
 CGapsClass to handle gaps statistics
 CManagerClass to handle the interaction with Alignment and statistics objects.
It serves as a wrapper or intermediate between the alignment and each specific stat.
It also encapsulates the similarityMatrix
 CMold Currently not in use
Class to serve as a mold to multiple stats.
This would help to maintain coherence and to ease the understanding of each of the stats.
As the number of stats grows, this standarization will become more valuable.
 CSimilarityClass to handle the calculation relative to similarity.
This class is narrowly connected to similarityMatrix, as the latter contains the information to calculate the similarity of the alignment
 CsimilarityMatrixClass that contains information of similarity matrices.
These are used to calculate the similarity between residues on the same column.
Default matrices for AA, NT and DEG NT are provided, along with method for loading custom matrices
 NutilsUtilities class. This class contains shared methods to be used in multiple parts of the code
 CAlignmentClass containing an alignment
This class stores the alignment sequences with it's names, residues and extra information.
It contains multiple methods regarding the sequences.
It also contains submodules that provide methods for Calculating statistics, Trim the alignment and Printing sequences information
 CsequencesMatrixInternal Alignment Class that represents a sequences matrix
 CCleanerSubmodule contained by Alignment
 CtrimAlManagerMain class of trimAl.
It is strutured to work with 3 calls:
 Caccess_by