functor (Job : MapReduce.Job) -> sig val combine : (Job.key * Job.inter) list -> (Job.key * Job.inter list) list end