I'm learning about Calcite, but got confused by the ConverterRule and RelOptRule.
I've already got that RelOptRule is the rule to transform an expression to another, and RelOptRule is used by RelOptPlanner.
But I've seen that in ConverterRule's java doc
/**
* Abstract base class for a rule which converts from one calling convention to
* another without changing semantics.
*/
What's the difference between ConverterRule and RelOptRule? And how should I use them?