only support Show for vec[T] if T is Debug, likewise for map for set and map first param for set and map should support Hash and Equals