Fixing cloning of Rpls which was reversing Rpl order and invoking solve_all prolog predicate to solve all constraints.
Emitting head_rpl_var to prolog and keeping track of VarRpls created using a ptrSet in Symbol table. Also keeping track of effect vars created using a different ptrSet.
Fixing bug: not using default inRpl for the args of objects that take rgn params.
This fixes a bug where the default prevents correct inference in inferece/full/point.cpp
Adding addRplInclusionConstraint functionality
Minor code spacing edits
Adding GenContraints flag to all isIncluded methods and other related functionality.
This is done to control when constraints are produced because for example in EffectConstraintGeneration
we want to check if an effect is covered by the previously added effects, but we don't want to generate
Rpl inclusion constraints if we cannot decide it is indeed the case.
Adding functionality to make rplVars with an added parameter for function parameters.
Generating an Rpl inclusion constraint when two concrete rpls are queried with isIncluded and at least one of them has a substitution.
(The existance of the substitution implies that an RplVar is contained, otherwise it would have been applied.)
Also, fixed the order of the lists for RplDomains emitted to Prolog