After #1340 has landed, we might want to generalize our constraint system to support Callstring-like contexts in a more natural manner.
I think the only change would be to change
val context : fundec -> D.t -> C.t
to
val context : fundec -> fundec -> C.t -> D.t -> C.t
where the additonal fundec would be the caller fundec.
That should be sufficiently general to allow call-string style contexts without keeping the callstring in a flat lattice inside the domain.