exception BadInput { string message; }; abstract interface base { string base_op (in string inarg) raises (BadInput); }; interface foo : base { string foo_op (in string inarg) raises (BadInput); }; interface passer { void pass_ops (out base outarg); void pass_state (out base outarg); void pass_nil (out base outarg); oneway void shutdown (); }; valuetype BaseNode { public BaseNode left; public BaseNode right; }; valuetype StringNode : BaseNode { public string name; }; valuetype TreeController supports base { public BaseNode root; };