//// [mergedModuleDeclarationCodeGen4.ts]
module superContain {
    export module contain {
        export module my.buz {
            export module data {
                export function foo() { }
            }
        }
        export module my.buz {
            export module data {
                export function bar(contain, my, buz, data) {
                    foo();
                }
            }
        }
    }
}

//// [mergedModuleDeclarationCodeGen4.js]
var superContain;
(function (superContain) {
    var contain;
    (function (_contain) {
        var my;
        (function (my) {
            var buz;
            (function (buz) {
                var data;
                (function (data) {
                    function foo() {
                    }
                    data.foo = foo;
                })(data = buz.data || (buz.data = {}));
            })(buz = my.buz || (my.buz = {}));
        })(my = _contain.my || (_contain.my = {}));
        var my;
        (function (_my) {
            var buz;
            (function (_buz) {
                var data;
                (function (_data) {
                    function bar(contain, my, buz, data) {
                        _data.foo();
                    }
                    _data.bar = bar;
                })(data = _buz.data || (_buz.data = {}));
            })(buz = _my.buz || (_my.buz = {}));
        })(my = _contain.my || (_contain.my = {}));
    })(contain = superContain.contain || (superContain.contain = {}));
})(superContain || (superContain = {}));
