1234567891011121314151617181920212223242526272829openCommon(* Type classes via objects. See also now interfaces.ml
*
* todo? get more inspiration from Java to put fundamental interfaces
* here ? such as cloneable, equaable, showable, debugable, etc
*)classvirtualobjet=object(o:'o)methodinvariant:unit->unit=fun()->raiseTodo(* method check: unit -> unit = fun () ->
assert(o#invariant());
*)methodof_string:string->unit=raiseTodomethodto_string:unit->string=raiseTodomethoddebug:unit->unit=raiseTodomethodmisc_op_hook:unit->'o=raiseTodomethodmisc_op_hook2:unit=()end