* ::type() returns the object type if any, type_id<void>() otherwise * avoid indirection when accessing the type