(*oops-sig-1*) signature OOPS = sig type 'a method type 'a flavor type 'a instance val defflavor: 'a -> 'a flavor val defmethod: string -> 'a flavor -> ('a -> 'a) -> 'a flavor val make_instance: '1a flavor -> '1a instance val send: string -> 'a instance -> 'a instance val setf: 'a instance -> 'a -> 'a instance val describe: 'a instance -> 'a * string list val inst_vars: 'a instance -> 'a end;