module Make_Narrow: functor (
X
:
sig
include Lattice_type.With_Top
include Lattice_type.With_Narrow
end
) ->
sig
.. end
val narrow : t -> t -> t
Over-approximation of the intersection of abstract values, without
considering (bitwise) reinterpretations. In particular, values with
equivalent representations (e.g. -1
and 0xFF
on 8 bits) may be
considered different, leading to empty intersections.
This may result in unsound results; the function narrow_reinterpret
below should be preferred in general.
val narrow_reinterpret : t -> t -> t
Variant of the function above that bitwise-reinterprets values before
performing the intersection (in order to get normal forms). This may
lead to situations where the result is not included in the arguments,
but this function should be preferred to narrow
.