The (basic) organization of the code is as follows:
Module infer is in charge of interfacing with the rest of CiaoPP. Module modes implements a mode analysis based on sharing information. Module vartypes implements a moded type analysis based on freeness and regular type information. Module infer_db is the centralized repository for all analysis information. Module typeslib implements a library for manipulation of regular types.