Product Domains
Payroll information (name, payrate, hours)
Domain Payroll = String x Rat x Rat
Operations
newemp: String ? Payroll
newemp(name) = (name, minwage, 0)
where minwage ? Rat and 0 = makerat(0)(1)
updpayrate: Rat x Payroll ? Payroll
updpayrate(pay, emp) = (emp?1, pay, emp ?3)
updhours: Rat x Payroll ? Payroll
updhours(hours, emp) = (emp?1,emp?2, addrat(hours)(emp?3))