```ts
/**
 * Pay for a week, with overtime beyond forty hours.
 *
 * @param hours - Number of hours worked in the week.
 * @param rate - Hourly pay rate.
 * @returns The total amount paid for the week, rounded down.
 */
export function hourRate(rate: number): number {
  return rate;
}

/** Pay for a week, with overtime beyond forty hours. */
export function weekPay(hours: number, rate: number): number {
  if (hours > 40) {
    const overtimeHours = Math.max(0, hours - 40);
    return Math.floor((overtimeHours * hourRate(rate) * 3) / 2) + 40 * hourRate(rate);
  }
  return hours * hourRate(rate);
}
```