Why are my IRoleTypes records and not abstract classes? In my mind, there is no logical reason why they should ever have to be instantiated. Is not being static a requirement for implementing an interface (IRoleType)? Or is it helpful for things like GetTradeInstance/Type members which I need / do I need instantiation to resolve T ?? Review and when I have the answer, maybe document it somewhere in the Wiki in a new section on 'non obvious' design choices or similar?
Why are my IRoleTypes records and not abstract classes? In my mind, there is no logical reason why they should ever have to be instantiated. Is not being static a requirement for implementing an interface (IRoleType)? Or is it helpful for things like GetTradeInstance/Type members which I need / do I need instantiation to resolve T ?? Review and when I have the answer, maybe document it somewhere in the Wiki in a new section on 'non obvious' design choices or similar?