module Editor { export class List { next: List; prev: List; constructor(public isHead: boolean, public data: T) { } static MakeHead(): List { var entry: List = new List(true, null); // can't access T here entry.prev = entry; entry.next = entry; return entry; } } }