Merlin_analysis.ContextSourcetype t = | Constructor of Ocaml_typing.Types.constructor_description
  * Ocaml_parsing.Location.t| Expr| Label of Ocaml_typing.Types.label_description| Module_path| Module_type| Patt| Type| Constant| Unknownval inspect_browse_tree : 
  cursor:Merlin_utils.Std.Lexing.position ->
  Ocaml_parsing.Longident.t ->
  Merlin_kernel.Mbrowse.t list ->
  t optioninspect_browse_tree lid ~cursor mbrowse tries to provide contextual information given the selected identifier, the position of the cursor and the typed tree. It is used by Locate and Type_enclosing.
The cursor position is used to distinguished whether a module path or an actual constructor name is pointed at when the cursor is in the middle of a longident, e.g. Foo.B|ar.Constructor (with | being the cursor).
FIXME: when cursor at (M.|A 3), the enclosing node returned is const 3, thus breaking the context inference.