Constraints.WidenContextLifterSide
module S : Analyses.Spec
module DD : sig ... end
module M : sig ... end
module D : sig ... end
module G = S.G
module C = S.C
module V = S.V
module P : sig ... end
type marshal = S.marshal
val init : S.marshal option -> unit
val finalize : unit -> S.marshal
val inj : ('a -> 'b) -> 'c -> 'd * M.t
val startcontext : unit -> S.C.t
val conv : ('a * 'b, 'c, 'd, 'e) Analyses.ctx -> ('f, 'g, 'h, 'i) Analyses.ctx
val lift_fun :
('a * 'b, 'c, 'd, 'e) Analyses.ctx ->
(('f, 'c, 'd, 'e) Analyses.ctx -> 'g) ->
('h -> 'i) ->
'j * 'k
val query :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
'b Queries.t ->
'b Queries.result
val combine_env :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.exp ->
GoblintCil.fundec ->
GoblintCil.exp list ->
S.C.t option ->
(S.D.t * 'b) ->
Queries.ask ->
S.D.t * 'a
val combine_assign :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.exp ->
GoblintCil.fundec ->
GoblintCil.exp list ->
S.C.t option ->
(S.D.t * 'b) ->
Queries.ask ->
S.D.t * 'a