Sum Domains
Revised payroll information
Domain Payroll = String x (Day + Night) x Rat
Operation: newemp: String ? Payroll
newemp(n) = (n, inDay(minwage), 0)
// new emps are started on the day shift
movetoday: Payroll ? Payroll
movetoday(emp) =
(emp ? 1,
cases emp ? 2 of
isDay(wage) ? inDay(wage)
isNight(wage) ? inDay(wage)end,
emp ? 3)