std::size_t operator()(argument_type const& val) { return hash<typename argument_type::shape_type>()(val.shape()) ^ hash<typename argument_type::domain_id_type>()(val.did()); }