Mlsem_system.Analyzerval analyze : Ast.t -> Annot.Annot.t -> msg list * Visited.tanalyze e a reports the notices raised by the annotated expression e, together with the sub-expressions of e that a covers. The annotation must already have been type-checked, since the analysis reads the types cached in it.
get_unreachable visited e reports the sub-expressions of e that are not in visited, i.e. that no annotation covers. A same expression may be analyzed under several annotations (typically once per signature of a definition); visited must then be the union of the sets returned by the corresponding calls to analyze, otherwise the parts that only some of them reached are wrongly reported as unreachable.