<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def type_decisioner(marc_xml, mono_callback, multimono_callback, periodical_callback):
 """ Detect type of the `marc_xml`. Call proper callback. Args: marc_xml (str):
 Filename or XML string. Don't use ``\\n`` in case of filename. mono_callback (fn reference):
 Callback in case of monographic publications. multimono_callback (fn reference):
 Callback used in case of multi-monographic publications. periodical_callback (fn reference):
 Callback used in case of periodical publications. Returns: obj: Content returned by the callback. Raises: ValueError: In case that type couldn't be detected. """

    marc_xml = _read_content_or_path(marc_xml)
    record = MARCXMLRecord(marc_xml)

    if record.is_monographic or record.is_single_unit:
        return mono_callback()
    elif record.is_multi_mono:
        return multimono_callback()
    elif record.is_continuing:
        return periodical_callback()

    raise ValueError("Can't identify type of the `marc_xml`!")