Some short comment would be nice. I'm not quite clear yet about the special handling of primitive types (also in the templates). What's the reason for that (some comment on that would be nice as well).