Helps us find information about modules in the home package
Constructors
HPTtable :: IORef (DModuleNameEnv HomeModInfo)Domain = modules in this home unit
This is an IORef because we want to avoid leaking HPTs (see the particularly bad #25511). Moreover, the HPT invariant allows mutability in this table without compromising thread safety or soundness. To recall: A query to the HPT should depend only on data relevant to that query, such that there being more or less unrelated entries in the HPT does not influence the result in any way.
Note that the HPT increases monotonically, except at certain barrier points like when restrictHpt is called. At these barriers, it is safe to temporarily violate the HPT monotonicity.
The elements of this table may be updated (e.g. on rehydration).