Implemented constructor returning check

We use residualization for this (and then data flow analysis).
We cannot apply dfa to hypergraph directly because there may
be vacuous cycles. I also implemented a specialized multi-result
residualizer that ignores let arguments but it works worse than
the default single-result residualizer.