void update(id<string>& type,array<T>& units) { check(!type.is_empty()); _type=type; get()=units; }
int compare(self& value) { return ::compare ( _type,value._type, get(),value.get() ); }
string string_() { return get().join(""); }
operator T() { return get(); }