class BANK_STORE inherit STORABLE create make feature persons: ARRAYED_SET [PERSON] accounts: ARRAYED_SET [ACCOUNT] ranges: TUPLE [ account: attached like account_range; studentaccount: attached like account_range; retireeaccount: attached like account_range ] feature {NONE} -- Implementation account_range: detachable TUPLE [ creditline: attached like range; interest_deposit: attached like range; interest_debit: attached like range ] range: detachable like {ACCOUNT}.range feature {NONE} -- Initialization make(cap: INTEGER) do create persons.make(cap) create accounts.make(cap) create ranges ranges.account := new_range ranges.studentaccount := new_range ranges.retireeaccount := new_range end new_range: attached like account_range do create Result end end