Model-driven software development is a promising new application
area for partial evaluation. In this papers, we develop an approach
to generic programming using models instead of types. The work is
done in the context of Pummel, a first-order subset of Scheme with
objects and monoid comprehensions. We define generic operations
for validation, reading, and equality of values described by models.
These generic operations are specialized to particular models by an
online partial evaluator. The specializer can choose to residualize
or execute imperative operations on objects, through a conditional
binding time attribute. A future construct allows dynamic values
to be manipulated statically, if the dynamic values are functionally
dependent on static state.