values.putValue(e.getKey(), e.getValue().typecheck(s));
}
// check uninitialized fields
for (String field : template.properties.keySet()) {
if (values.lookupLocal(field) == null) {
Util.abort(this, "field is not initialized: " + field);
}
}
// instantiate