If you attempt to create an inline function on an interface, you will face an error: 'inline' modifier is not allowed on virtual members. Only private or final members can be inlined
I understand that this is because the function is virtual because it can be overridden.
If we were able to declare "closed" functions, these functions would not be virtual, and therefore able to be inlined which is very useful!
Using "private" gives us a non-virtual, "closed" function, but then the rest of the world can't use it!
So.. is there a way to define "closed" non-virtual inlineable functions for abstract types?
(p.s. I intend to answer this question myself but feel free to share your own answers!)
