support for a class of circular references

30 files changed