  Mathematical models are increasingly used in both academia and the
pharmaceutical industry to understand how phenotypes emerge from systems of
molecular interactions. However, their current construction as monolithic sets
of equations presents a fundamental barrier to progress. Overcoming this
requires modularity, enabling sub-systems to be specified independently and
combined incrementally, and abstraction, enabling general properties to be
specified independently of specific instances. These in turn require models to
be represented as programs rather than as datatypes. Programmable modularity
and abstraction enables libraries of modules to be created for generic
biological processes, which can be instantiated and re-used repeatedly in
different contexts with different components. We have developed a computational
infrastructure to support this. We show here why these capabilities are needed,
what is required to implement them and what can be accomplished with them that
could not be done previously.
