```python
def bill_split(total: int, diners: int) -> list:
    """
    Divide a bill between a number of diners so that each pays a whole number of pence.
    Everyone pays the same except the first, who also takes whatever pennies are left over.
    Return what each diner pays, in order.
    """
    if diners <= 0:
        raise ValueError("Number of diners must be greater than zero.")
    
    # Calculate the amount each diner should pay
    amount_per_diner = total // diners
    
    # Calculate the remaining pennies
    remaining_pennies = total % diners
    
    # Create a list to store the payments
    payments = [amount_per_diner] * diners
    
    # The first diner takes the remaining pennies
    payments[0] += remaining_pennies
    
    return payments
```