Ideally, we'd want different impls for each primitive type to avoid all the extra Object creations. If we could have one of these that's abstract that fills in all the methods, and then have one minimal concrete type per primitive, that might be workable.