mappingFromPrefixMap :: Map AnimId AnimId -> AnimId -> AnimId
mappingFromPrefixMap m animId =
    do
        (animIdPrefixCandidate, newAnimId) <- Map.lookupLE animId m
        suffix <- animId ^? prefixed animIdPrefixCandidate
        newAnimId <> suffix & Just
    & fromMaybe animId
mappingFromPrefixMap :: Map AnimId AnimId -> AnimId -> AnimId
mappingFromPrefixMap m animId =
    do
        (animIdPrefixCandidate, newAnimId) <- Map.lookupLE animId m
        suffix <- animId ^? prefixed animIdPrefixCandidate
        newAnimId <> suffix & Just
    & fromMaybe animId
mappingFromPrefixMap m animId =
    do
        (animIdPrefixCandidate, newAnimId) <- Map.lookupLE animId m
        suffix <- animId ^? prefixed animIdPrefixCandidate
        newAnimId <> suffix & Just
    & fromMaybe animId