1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
File "pr4018_bad.ml", line 42, characters 11-17:
42 | let f (x : entity entity_container) = ()
^^^^^^
Error: This type "entity" = "< destroy_subject : id subject; entity_id : id >"
should be an instance of type
"< destroy_subject : < add_observer : 'a entity_container -> 'b; .. >;
.. >
as 'a"
Type
"id subject" =
"< add_observer : (id subject, id) observer -> unit;
notify_observers : id -> unit >"
is not compatible with type
"< add_observer : < destroy_subject : 'c; .. > entity_container -> 'b;
.. >
as 'c"
Type "(id subject, id) observer" = "< notify : id subject -> id -> unit >"
is not compatible with type
"(< destroy_subject : < add_observer : 'd -> 'b; .. >; .. > as 'a)
entity_container as 'd" =
"< add_entity : 'a -> 'b; notify : 'a -> id -> unit >"
The method "add_observer" has type "(id subject, id) observer -> unit",
but the expected method type was
"< destroy_subject : < add_observer : 'e; .. >; .. > entity_container ->
'b as 'e"
|