The objective of the new interface is to make C-Mix more attractive to
real-world programmers who need a tool, not a research prototype system. We
aim at the kind of programmer who is used to using tools such as make, cpp,
etc.  to maintain his projects, and who expects a new tool to cooperate
relatively seamlessly with those.

This is why we introduce a \emph{script file} that contains \eg the
specification of goal function and initial binding time pattern.  In the
current version these have to be given as command-line parameters, and does
not fit elegantly into a makefile that is mostly driven by dependencies and
implicit rules.

Other proposed changes guided by this line of thought is the opportunity to
specify what the residual entry points should be called, and a mechanism to
provide one's own ·main()· function for the generating extension if one need
to fetch spectime inputs from somewhere else than the command line.

A secondary objective is to provide more fine-grained user annotations. The
only current way to get something to happen at spectime is to abuse the ·pure·
annotation; we provide explicit annotation for most of the needs we can think
of. The new ·spectime· annotations on variables adds to the practical
usability by making \cmix{} tell the user exactly why the value must be
residual.
