Microsoft Oslo SDK CTP 2008 (Intellipad を使用) では、次のコードは正常にコンパイルされます。
module T {
    type A {
        Id : Integer32 = AutoNumber();
    } where identity Id;
    As : A*;
    type B {
        Id : Integer32 = AutoNumber();
//        A : A;
//    } where A in As && identity Id;
    } where identity Id;
    Bs : B*;
    type C {
        Id : Integer32 = AutoNumber();
        B : B;
    } where B in Bs && identity Id;
    Cs : C*;
}
次の Reach SQL 出力が生成されます。
set xact_abort on;
go
begin transaction;
go
set ansi_nulls on;
go
create schema [T];
go
create table [T].[As]
(
    [Id] int not null identity,
    constraint [PK_As] primary key clustered ([Id])
);
go
create table [T].[Bs]
(
    [Id] int not null identity,
    constraint [PK_Bs] primary key clustered ([Id])
);
go
create table [T].[Cs]
(
    [Id] int not null identity,
    [B] int not null,
    constraint [PK_Cs] primary key clustered ([Id]),
    constraint [FK_Cs_B_T_Bs] foreign key ([B]) references [T].[Bs] ([Id])
);
go
commit transaction;
go
ただし、モジュール T のコメント行を次のように変更した後
        A : A;
    } where A in As && identity Id;
//    } where identity Id;
エラー メッセージ "M2037: SQL Generation Internal Error: Missing generator for variable 'A'" が (Intellipad の Reach SQL ウィンドウに) 表示されます。
何か案は?
よろしく、タンバーグ