functor (Job : Job) -> sig val map_reduce : MapReduce.Job.input list -> (MapReduce.Job.key * MapReduce.Job.output) list Async.Std.Deferred.t end