Dear caml-list,

I try to define the signature of three interdependant classes that should then be derived and completed for various implementation. The code below causes the strange error messsage:

         File "tmp.ml", line 4, characters 7-92:
         In the definition of job, type ('a, 'b) batch should be ('a, 'c) batch

Can you explain what is wrong with this signature?
I was unable to find an answer to a similar problem in the archives.

Thank you very much.
Jean

----------------------------------------------------------------------------
 
module type JOB =
sig

  type ('a, 'b) batch =  private < build : 'a job -> ('a priority * 'a) list -> 'b job; .. >
  and 'b priority = private < next : 'b priority;  ..  >
  and 'a job =  private < create_batch : 'c.('a -> 'c) -> ('a, 'c) batch; ..  >

end