<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def best_coercable(data):
 """ Given an iterable of scalar data, returns the datum representing the most specific data type the list overall can be coerced into, preferring datetimes, then bools, then integers, then decimals, then floats, then strings. 6 Decimal('6.1') datetime.datetime(2014, 6, 7, 0, 0) 'ruining everything' """

    preference = (datetime.datetime, bool, int, Decimal, float, str)
    worst_pref = 0
    worst = ''
    for datum in data:
        coerced = coerce_to_specific(datum)
        pref = preference.index(type(coerced))
        if pref > worst_pref:
            worst_pref = pref
            worst = coerced
        elif pref == worst_pref:
            if isinstance(coerced, Decimal):
                worst = worst_decimal(coerced, worst)
            elif isinstance(coerced, float):
                worst = max(coerced, worst)
            else:  # int, str
                if len(str(coerced)) > len(str(worst)):
                    worst = coerced
    return worst