Version française
Home     About     Download     Resources     Contact us    
Browse thread
Interpretation of an error message "type ('a, 'b) t should be ('a, 'c) t" in a signature?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jean Balthazar <jean.balthazar.fr@g...>
Subject: Interpretation of an error message "type ('a, 'b) t should be ('a, 'c) t" in a signature?
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