<NME> types.ts
<BEF> export type IndexedObject = Object & {[key: string]: any};

export interface AbstractType<T> extends Function {
    prototype: T;
}

<MSG> Implement lazy types

<DFF> @@ -1,5 +1,9 @@
+import {TypeDescriptor} from './type-descriptor';
+
 export type IndexedObject = Object & {[key: string]: any};
 
+export type TypeThunk = () => Serializable<any> | TypeDescriptor;
+
 export interface AbstractType<T> extends Function {
     prototype: T;
 }

Implement lazy types