  Linearity and dependency analyses are key to several applications in computer
science, especially, in resource management and information flow control. What
connects these analyses is that both of them need to model at least two
different worlds with constrained mutual interaction. Though linearity and
dependency analyses address similar problems, the analyses are carried out by
employing different methods. For linearity analysis, type systems employ the
comonadic exponential modality from Girard's linear logic. For dependency
analysis, type systems employ the monadic modality from Moggi's computational
metalanguage. Owing to this methodical difference, a unification of the two
analyses, though theoretically and practically desirable, is not
straightforward.
  Fortunately, with recent advances in graded-context type systems, it has been
realized that linearity and dependency analyses can be viewed through the same
lens. However, existing graded-context type systems fall short of a unification
of linearity and dependency analyses. The problem with existing graded-context
type systems is that though their linearity analysis is general, their
dependency analysis is limited, primarily because the graded modality they
employ is comonadic and not monadic. In this paper, we address this limitation
by systematically extending existing graded-context type systems so that the
graded modality is both comonadic and monadic. This extension enables us to
unify linearity analysis with a general dependency analysis. We present a
unified Linear Dependency Calculus, LDC, which analyses linearity and
dependency using the same mechanism in an arbitrary Pure Type System. We show
that LDC is a general linear and dependency calculus by subsuming into it the
standard calculi for the individual analyses.

Programming Languages