refactorings
infer set constraints on deep structures too