e production tree associated with the computation of the total energy is shown in Fig. . Within the IRPF90 framework, the programmer writes a provider for each entity, i.e., a node of the production tree. e provider is a subroutine whose only goal is to compute the value associated with the entity, assuming the values of the entities on which it depends are computed and valid. Hence, when an entity is used somewhere in the program (in a subroutine, a function or a provider), a call to its provider is inserted in the code before it is used such that the corresponding value is guaranteed to be valid. P is a library of providers designed to make the development of new wave function theory and DFT methods simple. Only a few programs using these providers are part of the core modules of P , such as the sCI module using the CIPSI algorithm or the module containing the semi-stochastic implementation of the second-order perturbative correction. e main goal of P is to be used as a library of providers, and programmers are encouraged to develop their own modules using P .