class virtualA virtual class to represent the public interface of object-oriented gadget states. Use[['a, 'b]]
substate :object
..end
inherit ['i, 'o] substate
or constrain 'self = ('i, 'o)
#substate
to derive a class that implements part of a state in a machine.method virtual next : (< next : 'c; .. >, 'a, 'b, unit) Cf_gadget.t as 'c
obj#next
to transition the state of the machine to obj
.