SpecLifters.WidenContextLifterSidemodule S : Analyses.Specmodule DD : sig ... endmodule M : sig ... endmodule D : sig ... endmodule G = S.Gmodule C = S.Cmodule V = S.Vmodule P : sig ... endtype marshal = S.marshalval init : S.marshal option -> unitval finalize : unit -> S.marshalval inj : ('a -> 'b) -> 'a -> 'b * M.tval startcontext : unit -> S.C.tval startstate : GoblintCil.varinfo -> S.D.t * M.tval exitstate : GoblintCil.varinfo -> S.D.t * M.tval morphstate : GoblintCil.varinfo -> (S.D.t * 'a) -> S.D.t * 'aval conv : ('a * 'b, 'c, 'd, 'e) Analyses.ctx -> ('a, 'c, 'd, 'e) Analyses.ctxval context :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.fundec ->
(S.D.t * 'b) ->
S.C.tval lift_fun :
('a * 'b, 'c, 'd, 'e) Analyses.ctx ->
(('a, 'c, 'd, 'e) Analyses.ctx -> 'f) ->
('f -> 'g) ->
'g * 'bval sync :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
[ `Join | `JoinCall of CilType.Fundec.t | `Normal | `Return ] ->
S.D.t * 'aval query :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
'b Queries.t ->
'b Queries.resultval assign :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
S.D.t * 'aval vdecl :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.varinfo ->
S.D.t * 'aval branch :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.exp ->
bool ->
S.D.t * 'aval body :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.fundec ->
S.D.t * 'aval return :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
S.D.t * 'aval special :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
S.D.t * 'aval threadenter :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
multiple:bool ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
(S.D.t * 'a) listval threadspawn :
(S.D.t * 'a, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
multiple:bool ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
(S.D.t * 'b, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
S.D.t * 'aval enter :
(S.D.t * M.t, S.G.t, S.C.t, S.V.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
((S.D.t * M.t) * (S.D.t * M.t)) listval 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 * 'aval 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