Those commits can change the blame assignment in
incorrect ways

This reverts commit 0aee13bf224960d5c7d93815170b9a20ed41d08f.
This reverts commit a0880f74037e1e3fe8d2f1d10f621428e6ad74dc.
fix bug in ->i expansion when the name ctc is used in certain ways
add a proper stronger implementation based for recursive-contract

Following _Subtyping Recursive Types_ by Roberto M. Amadio and Luca Cardelli