=== tests/cases/compiler/assignmentCompatability5.ts ===
module __test1__ {
>__test1__ : typeof __test1__

    export interface interfaceWithPublicAndOptional<T,U> { one: T; two?: U; };  var obj4: interfaceWithPublicAndOptional<number,string> = { one: 1 };;
>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional<T, U>
>T : T
>U : U
>one : T
>T : T
>two : U
>U : U
>obj4 : interfaceWithPublicAndOptional<number, string>
>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional<T, U>
>{ one: 1 } : { one: number; }
>one : number

    export var __val__obj4 = obj4;
>__val__obj4 : interfaceWithPublicAndOptional<number, string>
>obj4 : interfaceWithPublicAndOptional<number, string>
}
module __test2__ {
>__test2__ : typeof __test2__

    export                   interface interfaceOne<T> { one: T; };                var obj1: interfaceOne<number> = { one: 1 };;
>interfaceOne : interfaceOne<T>
>T : T
>one : T
>T : T
>obj1 : interfaceOne<number>
>interfaceOne : interfaceOne<T>
>{ one: 1 } : { one: number; }
>one : number

    export var __val__obj1 = obj1;
>__val__obj1 : interfaceOne<number>
>obj1 : interfaceOne<number>
}
__test2__.__val__obj1 = __test1__.__val__obj4
>__test2__.__val__obj1 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional<number, string>
>__test2__.__val__obj1 : __test2__.interfaceOne<number>
>__test2__ : typeof __test2__
>__val__obj1 : __test2__.interfaceOne<number>
>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional<number, string>
>__test1__ : typeof __test1__
>__val__obj4 : __test1__.interfaceWithPublicAndOptional<number, string>

