That's a follow-up to a discussion we had we @chandlerc on Callinst and InvokeInst. Still not in a final stage but published here to gather advices.
Possible follow-up if we add a virtual non-template base class to the CallableInst, then with the proper isa overload we may be able to remove the need of CallSite and ImmutableCallSite