def infer_value_types(values, depth=0):
 inferred = Unknown()
 for value in sample(values):
  type = infer_value_type(value, depth)
  inferred = combine_types(inferred, type)
 return inferred

def infer_value_types ( values , depth = 0 ) : inferred = Unknown ( ) for value in sample ( values ) : type = infer_value_type ( value , depth ) inferred = combine_types ( inferred , type ) return inferred
infer a single type for an iterable of values .