
#define ex_body {unsigned long minor; completion_status completed;}
enum completion_status {COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE};
enum exception_type {NO_EXCEPTION, USER_EXCEPTION, SYSTEM_EXCEPTION};

exception UNKNOWN ex_body;

exception access_error {
    long file_access_code;
    string access_error_description;
    };

exception a_simple_exception{};

interface stack {
    typedef long element;
    exception overflow{long upper_bound;};
    exception underflow{};
    void push (in element the_element)
        raises (overflow);
    void pop  (out element the_element)
        raises (underflow);
};
