=== tests/cases/compiler/genericConstraintOnExtendedBuiltinTypes.ts ===
declare module EndGate {
>EndGate : typeof EndGate

    export interface ICloneable {
>ICloneable : ICloneable

        Clone(): any;
>Clone : () => any
    }
}

interface Number extends EndGate.ICloneable { }
>Number : Number
>EndGate : unknown
>ICloneable : EndGate.ICloneable

module EndGate.Tweening {
>EndGate : typeof EndGate
>Tweening : typeof Tweening

    export class Tween<T extends ICloneable>{
>Tween : Tween<T>
>T : T
>ICloneable : ICloneable

        private _from: T;
>_from : T
>T : T


        constructor(from: T) {
>from : T
>T : T

            this._from = from.Clone();
>this._from = from.Clone() : any
>this._from : T
>this : Tween<T>
>_from : T
>from.Clone() : any
>from.Clone : () => any
>from : T
>Clone : () => any
        }
    }
}

module EndGate.Tweening {
>EndGate : typeof EndGate
>Tweening : typeof Tweening

    export class NumberTween extends Tween<number>{
>NumberTween : NumberTween
>Tween : Tween<T>

        constructor(from: number) {
>from : number

            super(from);
>super(from) : void
>super : typeof Tween
>from : number
        }
    }
}
