```python
def fold_ends(values: list) -> list:
    if not values:
        return []

    total = values[0]
    for i in range(1, len(values)):
        total += values[i]

    return [total] + fold_ends(values[1:])

# Example usage:
print(fold_ends([]))  # []
print(fold_ends([1]))  # [1]
print(fold_ends([1, 2]))  # [1, 3]
print(fold_ends([1, 2, 3]))  # [1, 3, 6]
print(fold_ends([1, 2, 3, 4]))  # [1, 3, 6, 10]
print(fold_ends([1, 2, 3, 4, 5]))  # [1, 3, 6, 10, 15]
print(fold_ends([1, 2, 3, 4, 5, 6]))  # [1, 3, 6, 10, 15, 21]
print(fold_ends([1, 2, 3, 4, 5, 6, 7]))  # [1, 3, 6, 10, 15, 21, 28]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8]))  # [1, 3, 6, 10, 15, 21, 28, 36]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120, 130]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120, 130, 140]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200]
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220])
print(fold_ends([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 220, 230]))  # [1, 3, 6, 10, 15, 21, 28, 36, 45, 