HoverContentsEmpty, a constructor added in this commit, does not exist in original Language Server Protocol.
interface Hover {
contents: MarkedString | MarkedString[] | MarkupContent;
range?: Range;
}
This results in hie sending an invalid message to the client.
Isn't it better to remove this constructor?
Semigroup would be enough if we want to combine results from multiple sources.