interface account { readonly attribute short balance; boolean deposit(in short amount); boolean withdraw(in short amount); }; struct trans { short type; account customer; short amount; }; interface bank { exception InvalidTransaction { trans transaction; }; deferred boolean transaction(in trans transaction) raises (InvalidTransaction); short lastTransaction(); };