**TypeScript Version:** 2.1.1 / nightly (2.2.0-dev.201xxxxx) **Code** It would be nice to have a shard, standard library type that allows to express deep readonly-ness (not really const, since methods are out of scope, but still...): ```ts interface Y { a: number; } interface X { y: Y; } let x: Readonly<X> = {y: {a: 1}}; x.y.a = 2; // Succeeds, which is expected, but it'd be nice to have a common way to express deep readonly type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]>; } let deepX: DeepReadonly<X> = {y: {a: 1}}; deepX.y.a = 2; // Fails as expected! ```