==== tests/cases/compiler/listFailure.ts (10 errors) ====
    module Editor {
    
        export class Buffer {
            lines: List<Line> = ListMakeHead<Line>();
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! listFailure.ts(4,6): error TS2025: Public property 'lines' of exported class has or is using private type 'List<Line>'.
            
            addLine(lineText: string): List<Line> {
                                       ~~~~~~~~~~
!!! listFailure.ts(6,36): error TS2056: Return type of public method from exported class has or is using private type 'List<Line>'.
                
                var line: Line = new Line();
                var lineEntry = this.lines.add(line);
    
                return lineEntry;
                ~~~~~~~~~~~~~~~~~
!!! listFailure.ts(11,13): error TS2056: Return type of public method from exported class has or is using private type 'List<Line>'.
            }    
        }
        
        export function ListRemoveEntry<U>(entry: List<U>): List<U> { 
                                           ~~~~~~~~~~~~~~
!!! listFailure.ts(15,40): error TS2040: Parameter 'entry' of exported function has or is using private type 'List<U>'.
                                                            ~~~~~~~
!!! listFailure.ts(15,57): error TS2058: Return type of exported function has or is using private type 'List<U>'.
            return entry;
         ~~~~~~~~~~~~~
!!! listFailure.ts(16,6): error TS2058: Return type of exported function has or is using private type 'List<U>'.
        }
    
        export function ListMakeHead<U>(): List<U> {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           ~~~~~~~
!!! listFailure.ts(19,40): error TS2058: Return type of exported function has or is using private type 'List<U>'.
            return null;
    ~~~~~~~~~~~~~~
        }
    ~~~~~
!!! listFailure.ts(19,5): error TS2058: Return type of exported function has or is using private type 'List<U>'.
    
        export function ListMakeEntry<U>(data: U): List<U> {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                   ~~~~~~~
!!! listFailure.ts(23,48): error TS2058: Return type of exported function has or is using private type 'List<U>'.
            return null;
    ~~~~~~~~~~~~~~
        }    
    ~~~~~
!!! listFailure.ts(23,5): error TS2058: Return type of exported function has or is using private type 'List<U>'.
    
        class List<T> { 
            public next: List<T>; 
    
            add(data: T): List<T> {
                this.next = ListMakeEntry(data);
                return this.next;
            }
    
            popEntry(head: List<T>): List<T> {
                return (ListRemoveEntry(this.next));
            }      
        }
    
        export class Line {}
    }