Lifting deduce from intra_constraint to any_constraint
Summary:
In
D38357535 (https://github.com/facebook/hhvm/commit/
507ab1bedbc4c22085cfa1f18e1e7dad620d0702) we assumed a generic `deduce` function with type `val deduce : any_constraint list -> any_constraint list` that we then post-composed with substitution.
In this diff, we weaken the assumption: we only assume a function of type `val deduce : intra_constraint list -> intra_constraint list`, and provide a lifting to `any_constraint list -> any_constraint list`.
The lifting follows the following construction:
`any_constraint list`
`-> {destruct}`
`intra_constraint list * inter_constraint_list`
`-> {deduce x identity}`
`intra_constraint list * inter_constraint_list`
`-> {construct}`
`any_constraint list`
Reviewed By: madgen
Differential Revision:
D38392310
fbshipit-source-id:
aac05099497f7bb859c0a6b014cdc6189ea37caa