indentation – How to make Vim (with TComment) make the appropriate block comments in OCaml?

(I've installed TComment and I'm on NeoVim 0.4.0.)

Given this code, for example:

leave the same key st =
let is_matching_key = function
| Positional _ -> false
| Indicator f -> f.name == key
in
(* FIXME: It's slow, but Array.exists is not available before OCaml 4.03 and I'm lazy. *)
List.exists is_matching_key (Array.to_list st.args)

When I select the code above and I type gcc, I receive:

(* leave the same key st = *)
(* let is_matching_key = function *)
(* | Position _ -> false *)
(* | Flag f -> f.name == key *)
(*    in *)
(* (* FIXME: It's slow, but Array.exists is not available before OCaml 4.03, and I'm lazy.) *) *)
(* List.exists is_matching_key (Array.to_list st.args) *)
(* *)

Instead, I'd like to get something like,

(* leave the same key st =
let is_matching_key = function
| Positional _ -> false
| Indicator f -> f.name == key
in
(* FIXME: It's slow, but Array.exists is not available before OCaml 4.03 and I'm lazy. *)
List.exists is_matching_key (Array.to_list st.args) *)

… where there are only comment-delimiters at the beginning and end of the entire text.

How do I realize this?


Plus, I'd like Vim to continue to maintain this style of withdrawal when you hit Return in the docblocks. Yes is the point of insertion in the following text …

(** This is a documentation block for this function.⁁

… I am currently receiving this after hitting Return

(** This is a documentation block for this function.
*

(Note the extra asterisk added on each line; note also that the indentation is "one off", it does not line up on the T in the line above.) I would like to get this:

(** This is a documentation block for this function.
⁁

I have tried to browse the TComment documentation, but I have no chance of improving this behavior.