// two interfaces with the same root module should merge

// root module now multiple module declarations
module M2 {
    export interface A {
        foo: string;
    }

    var a: A;
    var r1 = a.foo;
    var r2 = a.bar;
}

module M2 {
    export interface A {
        bar: number;
    }

    export interface A {
        baz: boolean;
    }

    var a: A;
    var r1 = a.foo;
    var r2 = a.bar;
    var r3 = a.baz; 
}

// same as above but with an additional level of nesting and third module declaration
module M2 {
    export module M3 {
        export interface A {
            foo: string;
        }

        var a: A;
        var r1 = a.foo;
        var r2 = a.bar;
    }
}

module M2 {
    export module M3 {
        export interface A {
            bar: number;
        }

        var a: A;

        var r1 = a.foo
        var r2 = a.bar;
        var r3 = a.baz;
    }
}

module M2 {
    export module M3 {
        export interface A {
            baz: boolean;
        }

        var a: A;
        var r1 = a.foo
        var r2 = a.bar;
        var r3 = a.baz;
    }
}