There are a few controversial design decisions here. The first is to do with the separation of products from indices, which is the case in pricing libraries I have worked with at Commerzbank, ABN AMRO, Morgan Stanley and Citi. In practice, I have found this distinction irritating and rather specious, so I have classed all tradeable instruments together, as Instrument.
source not stored for this graph (policy: none)
no outgoing calls
no test coverage detected