Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Module systems for languages with complex type systems, such as Standard ML,
often lack the ability to express mutually recursive type and function
dependencies across module boundaries. Previous work by Crary, Harper, and
Puri set out a type-theoretic foundation for recursive modules in the context
of a phase-distinction calculus for higher-order modules. Two constructs were
introduced for encoding recursive modules: a \emph{fixed-point module} and a
\emph{recursively-dependent signature}. Unfortunately, the implementations of
both constructs involve the use of equi-recursive type constructors at
higher-order kinds, the equivalence of which is not known to be decidable.
In this paper, we show that the practicality of recursive modules is not
contingent upon that of equi-recursive constructors. We begin with the
theoretical infrastructure described above and study precisely how
equi-recursiveness is used in the recursive module constructs, resulting in a
clarification and generalization of the underlying ideas. We then examine in
depth how the recursive module constructs in the revised type system can serve
as the target of elaboraiton for a recursive module extension to Standard ML.