Behavioral extension
\zline{\fbox{ACT++}}class extended_buffer : bounded_buffer { behavior: full_buffer = {get(), get_rear()}; partial_buffer = {get(), get_rear(), put()}; public: int get_rear() { reply buf[--in%MAX]; out %= MAX; if (in == out) become empty_buffer; else become partial_buffer; } };