Linter.AnnotationAnnotation type. Used to wrap domain with a minimal Empty value.
val pp :
(Format.formatter -> (Jasmin.Location.i_loc * 'domain) -> unit) ->
Format.formatter ->
(Jasmin.Location.i_loc * 'domain annotation) ->
unitPretty printer wraper function for the annotation type following Jasmin.Printer.pp_iprog interface.
val merge :
'domain annotation ->
'domain annotation ->
('domain -> 'domain -> 'domain) ->
'domain annotationWrapper for domain merge functions. merge a Empty f
val included :
'domain annotation ->
'domain annotation ->
('domain -> 'domain -> bool) ->
boolInclusion test for annotations. included a b f return :
a is Emptyb is Empty and a is not Emptya is included in inner domain b according to the function f otherwiseval bind :
'domain annotation ->
('domain -> 'domain annotation) ->
'domain annotationbind a f applies the function f to the value contained in the annotation a and return a new annotation. If a is Empty, it returns Empty.
val unwrap : 'domain annotation -> 'domainUnwrapping function for annotation. It should only be used on annotations that are not Empty. It will otherwise raise an Invalid_argument exception.
val map : 'a annotation -> ('a -> 'b) -> 'b annotationmap a f applies the function f to the value contained in the annotation a. If a is Empty, it returns Empty.