Contracts in Perl 'Class::Agreement' #18

The Conway Channel

package MutableNumber;
use Class::Contract;
contract {
    attr item => SCALAR;
    method 'decrement';
        pre { self->size > 0 };
        impl { ${self->item}-- };
        post { self->item == old->item - 1 };
    ...
}
Copyright © 2005 Ian Langworth