recursive record types work to some degree. context has been cleaned up