def apply_disorient(target, rules, added_effects, left):
    """
    Apply the effects of disorient to the target:
    Next turn, target’s dodge does not beat attack.

    :param target: The character being affected
    :param rules: The ruleset to edit
    :param added_effects: Additional ability effects
    :param left: Position of the target (left or right, corresponding to left/right keys in rules dict)

    :return: Updated target and ruleset
    """
    # "dodge": {"beats": ["block"], "loses": ["area", "disrupt", "attack"]}
    if left:
        # Remove area from the block: beats dict
        if "attack" in rules["dodge"]["beats"]:
            rules["dodge"]["beats"].remove("attack")

        # Add area to the block: loses dict
        if "attack" not in rules["dodge"]["loses"]:
            rules["dodge"]["loses"].append("attack")

    # "attack": {"beats": ["area", "disrupt", "dodge"], "loses": ["block"]}
    else:
        # Remove block from the area: loses dict
        if "dodge" in rules["attack"]["loses"]:
            rules["attack"]["loses"].remove("dodge")

        # Add block to the area: beats dict
        if "dodge" not in rules["attack"]["beats"]:
            rules["attack"]["beats"].append("dodge")

    return target, rules, added_effects