Some actions provided by the plug-in are duplicate with what is already available via the built-in LSP.
That doesn't mean they are not useful, sometimes the code actions are hard to discover (you only know what is available if you try it in various different situations)
E.g.:
:InferIntf is equivalent to gra (code action), and then selecting 1 Insert inferred interface
:AlternateFile is equivalent to gra, and then selecting 2 Create <filename.mli> . Except the position is not predictable with code actions (sometimes it might be 3, e.g. if Destruct is available), or 2 Open <filename.mli> (same for .ml when you are in the mli)
Some actions provided by the plug-in are duplicate with what is already available via the built-in LSP.
That doesn't mean they are not useful, sometimes the code actions are hard to discover (you only know what is available if you try it in various different situations)
E.g.:
:InferIntfis equivalent togra(code action), and then selecting1 Insert inferred interface:AlternateFileis equivalent togra, and then selecting2 Create <filename.mli>. Except the position is not predictable with code actions (sometimes it might be 3, e.g. if Destruct is available), or2 Open <filename.mli>(same for .ml when you are in the mli)