module Diagnosis: sig .. end
type ('a, 'b) reason =
| |
Not_available of 'a |
| |
Requested of 'a |
| |
Dependency of 'a * 'a list |
| |
Empty_disjunction of 'a * 'b list |
| |
Conflict of 'a * 'a |
type ('a, 'b, 'c) diagnosis = {
|
dg_closure_size : int; |
|
dg_conflicts : int; |
|
dg_disjunctions : int; |
|
dg_dependencies : int; |
|
dg_failures : ('a * ('b, 'c) reason list) array; |
}
val empty_diagnosis : ('a, 'b, 'c) diagnosis
val io_reason : 'a Io.literate -> 'b Io.literate -> ('a, 'b) reason Io.literate
val io_diagnosis : 'a Io.literate ->
'b Io.literate ->
'c Io.literate -> ('a, 'b, 'c) diagnosis Io.literate