Traces given module function using given tracer.

    :param module: Module of the function.
    :type module: object
    :param function: Function to trace.
    :type function: object
    :param tracer: Tracer.
    :type tracer: object
    :return: Definition success.
    :rtype: bool

def trace_function(module, function, tracer=tracer):
    """
    Traces given module function using given tracer.

    :param module: Module of the function.
    :type module: object
    :param function: Function to trace.
    :type function: object
    :param tracer: Tracer.
    :type tracer: object
    :return: Definition success.
    :rtype: bool
    """

    if is_traced(function):
        return False

    name = get_object_name(function)
    if is_untracable(function) or name in UNTRACABLE_NAMES:
        return False

    setattr(module, name, tracer(function))
    return True